IMX8X電源管理

2021-10-04 10:25:46 字數 4303 閱讀 1838

on i.mx 8 and i.mx 8x:

• 沒有硬體低功耗可用

• 所以的電源管理都是通過scfw來實現

• 當系統掛起時,scfw關閉集群/ cpu。

由此可見:i.mx8必須使用scfw來實現電源管理。

檢視scfw相關的資訊:

scfw提供電源控制時鐘控制復位控制

電源管理的所有方面,包括電源控制、偏置控制、時鐘控制、復位控制和喚醒事件監視,都歸在sc電源管理服務中。

•電源控制- scfw負責對電源控制和外部電源管理裝置進行集中管理。它管理功率域的功率狀態和電壓以及偏置控制。由於電源狀態轉換,它還可以根據需要重置外圍裝置。這一切都是通過api來完成的,即通訊各個資源的電源狀態需求。

•時鐘控制- sc韌體負責集中管理時鐘控制。這包括時鐘源,如振盪器和鎖相環,以及時鐘分頻器、muxes和gates。這一切都是通過api來完成的,它通過通訊各個資源的時鐘需求來實現。

•復位控制- sc韌體負責復位控制。這包括啟動/重新啟動乙個分割槽、獲得重置原因以及啟動/停止cpu

scfw提供如下api:

power functions

• sc_err_t sc_pm_set_sys_power_mode (sc_ipc_t ipc, sc_pm_power_mode_t mode)

此功能設定系統電源模式.

• sc_err_t sc_pm_set_partition_power_mode (sc_ipc_t ipc, sc_rm_pt_t pt, sc_pm_power_mode_t mode)

此函式設定分割槽的電源模式。

• sc_err_t sc_pm_get_sys_power_mode (sc_ipc_t ipc, sc_rm_pt_t pt, sc_pm_power_mode_t ∗mode)

此函式獲取分割槽的模式。

• sc_err_t sc_pm_set_resource_power_mode (sc_ipc_t ipc, sc_rsrc_t resource, sc_pm_power_mode_t mode)

此函式設定資源的電源模式。

• sc_err_t sc_pm_set_resource_power_mode_all (sc_ipc_t ipc, sc_rm_pt_t pt, sc_pm_power_mode_t mode, sc -

rsrc_t exclude)

此函式為子分割槽擁有的所有資源設定power模式。

• sc_err_t sc_pm_get_resource_power_mode (sc_ipc_t ipc, sc_rsrc_t resource, sc_pm_power_mode_t ∗mode)

此函式獲取資源的電源模式。

• sc_err_t sc_pm_req_low_power_mode (sc_ipc_t ipc, sc_rsrc_t resource, sc_pm_power_mode_t mode)

該函式請求一些資源可以根據其狀態進入的低功耗模式。

• sc_err_t sc_pm_req_cpu_low_power_mode (sc_ipc_t ipc, sc_rsrc_t resource, sc_pm_power_mode_t mode, sc -

pm_wake_src_t wake_src)

這個函式請求cpu/集群資源的低功耗模式。

• sc_err_t sc_pm_set_cpu_resume_addr (sc_ipc_t ipc, sc_rsrc_t resource, sc_faddr_t address)

此函式用於設定cpu的恢復位址。

• sc_err_t sc_pm_set_cpu_resume (sc_ipc_t ipc, sc_rsrc_t resource, sc_bool_t isprimary, sc_faddr_t address)

該函式用於設定cpu從低功耗模式恢復的引數。

• sc_err_t sc_pm_req_sys_if_power_mode (sc_ipc_t ipc, sc_rsrc_t resource, sc_pm_sys_if_t sys_if, sc_pm -power_mode_t hpm, sc_pm_power_mode_t lpm)

該函式請求系統級介面(包括訊息傳遞單元、互連和記憶體)的電源模式配置。

clock/pll functions

• sc_err_t sc_pm_set_clock_rate (sc_ipc_t ipc, sc_rsrc_t resource, sc_pm_clk_t clk, sc_pm_clock_rate_t ∗rate)

這個函式設定資源的時鐘/鎖相環的速率。

• sc_err_t sc_pm_get_clock_rate (sc_ipc_t ipc, sc_rsrc_t resource, sc_pm_clk_t clk, sc_pm_clock_rate_t ∗rate)

此函式獲取資源時鐘/鎖相環的速率。

• sc_err_t sc_pm_clock_enable (sc_ipc_t ipc, sc_rsrc_t resource, sc_pm_clk_t clk, sc_bool_t enable, sc_bool_tautog)

此函式啟用/禁用資源的時鐘。

• sc_err_t sc_pm_set_clock_parent (sc_ipc_t ipc, sc_rsrc_t resource, sc_pm_clk_t clk, sc_pm_clk_parent_t parent)

這個函式設定資源時鐘的父程序。

• sc_err_t sc_pm_get_clock_parent (sc_ipc_t ipc, sc_rsrc_t resource, sc_pm_clk_t clk, sc_pm_clk_parent t ∗parent)

這個函式獲取資源時鐘的父程序。

reset functions

• sc_err_t sc_pm_reset (sc_ipc_t ipc, sc_pm_reset_type_t type)

此函式服務系統.

• sc_err_t sc_pm_reset_reason (sc_ipc_t ipc, sc_pm_reset_reason_t ∗reason)

獲取系統服務的原因.

• sc_err_t sc_pm_get_reset_part (sc_ipc_t ipc, sc_rm_pt_t ∗pt)

此函式獲取導致重置的分割槽。

• sc_err_t sc_pm_boot (sc_ipc_t ipc, sc_rm_pt_t pt, sc_rsrc_t resource_cpu, sc_faddr_t boot_addr, sc_rsrc_ t resource_mu, sc_rsrc_t resource_dev)

此函式用於引導分割槽

• sc_err_t sc_pm_set_boot_parm (sc_ipc_t ipc, sc_rsrc_t resource_cpu, sc_faddr_t boot_addr, sc_rsrc_ t resource_mu, sc_rsrc_t resource_dev)

此函式用於更改分割槽的啟動引數。

• void sc_pm_reboot (sc_ipc_t ipc, sc_pm_reset_type_t type)

此函式用於重新啟動呼叫者的分割槽。

• sc_err_t sc_pm_reboot_partition (sc_ipc_t ipc, sc_rm_pt_t pt, sc_pm_reset_type_t type)

此函式用於重新啟動分割槽。

• sc_err_t sc_pm_reboot_continue (sc_ipc_t ipc, sc_rm_pt_t pt)

此函式用於繼續重新啟動分割槽。

• sc_err_t sc_pm_cpu_start (sc_ipc_t ipc, sc_rsrc_t resource, sc_bool_t enable, sc_faddr_t address)

這個函式用於啟動/停止cpu。

• void sc_pm_cpu_reset (sc_ipc_t ipc, sc_rsrc_t resource, sc_faddr_t address)

這個函式用於復位cpu。

• sc_bool_t sc_pm_is_partition_started (sc_ipc_t ipc, sc_rm_pt_t pt)

這個函式返回乙個bool,指示是否啟動了乙個分割槽

這些函式的api都是在kernel裡面呼叫的,我的選擇是寫了乙個字元型驅動,來呼叫這些函式,來實現電源控制的目的。

imx8 GPIO 裝置驅動介紹

目的 通過 gpio 驅動配置實現控制 imx8 晶元引腳電平變化 硬體平台 imx8qmmek evm board 軟體環境 imx p9.0.0 2.1.0 auto ga 我這裡使用的是通過 dts 檔案來進行裝置硬體資源的申請及分配,使用者可以在 fsl imx8qm mek.dtsi 檔案...

IMX6Solo啟動流程 從上電到Uboot

ivt主要包含 詳見 8.6.1.1 image vector table structure 名稱含義 header ivt頭部,標識ivt和ivt長度 entry 第一條指令的入口位址,即uboot的入口 dcddcd資料的位址,緊跟在boot data後面 boot data boot dat...

8X8 LED點陣顯示技術

1 實驗任務 在8x8 led點陣上顯示柱形,讓其先從左到右平滑移動三次,其次從右到左平滑移動三次,再次從上到下平滑移動三次,最後從下到上平滑移動三次,如此迴圈下去。2 電路原理圖 硬體電路連線 1 把 微控制器系統 區域中的 p1埠用 8芯排芯連線到 點陣模組 區域中的 dr1 dr8 埠上 2 ...