Hi All,
I am working on Power Management - IMX8QM MEK board. I have to integrate system controller API to put system low power mode.
I integrated successfully and I got the following response,
M4F and A53, A72 is OFFsc_pm_set_sys_power_mode(ipc_handle, SC_PM_PW_MODE_OFF)Board Rebootsc_pm_set_sys_power_mode(ipc_handle, SC_PM_PW_MODE_STBY)No responsesc_pm_set_resource_power_mode(ipc_handle, SC_R_A53_0, SC_PM_PW_MODE_OFF)sc_pm_set_resource_power_mode(ipc_handle, SC_R_A53_0, SC_PM_PW_MODE_STBY)
Solution here,
IMX8QM-MEK Power Management difference between Linux and Android
Regards,
VinothS.
Hi,
When I execute I got the error for the API,
err = sc_pm_set_resource_power_mode(ipc_handle, SC_R_A53_0, SC_PM_PW_MODE_OFF)err = sc_pm_set_resource_power_mode(ipc_handle, SC_R_A53_0, SC_PM_PW_MODE_STBY)
Hi VinothS
additional examples can be found in linux sources, one can look at
sect.2.5.1 Low Level Power Management (PM) Linux Manual
in Linux 5.4.3_1.0.0 Documentation
atf sources:
imx\plat - imx-atf - i.MX ARM Trusted firmware
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Thank you Igor for the reply.
I am following same API for Suspend the CPU-A35 and CPU-A72. But, I don't know my implementation is not giving any effect.
This is my implementation for power off CPU's from M4 MCU,
RTN_ERR(sc_pm_req_low_power_mode(ipc_handle, SC_R_A53, SC_PM_PW_MODE_OFF));
RTN_ERR(sc_pm_req_low_power_mode(ipc_handle, SC_R_A53_0, SC_PM_PW_MODE_OFF));
RTN_ERR(sc_pm_req_low_power_mode(ipc_handle, SC_R_A53_1, SC_PM_PW_MODE_OFF));
RTN_ERR(sc_pm_req_low_power_mode(ipc_handle, SC_R_A53_2, SC_PM_PW_MODE_OFF));
RTN_ERR(sc_pm_req_low_power_mode(ipc_handle, SC_R_A53_3, SC_PM_PW_MODE_OFF));
RTN_ERR(sc_pm_req_low_power_mode(ipc_handle, SC_R_A53_0, SC_PM_PW_MODE_OFF));
RTN_ERR(sc_pm_req_low_power_mode(ipc_handle, SC_R_A72, SC_PM_PW_MODE_OFF));
RTN_ERR(sc_pm_req_low_power_mode(ipc_handle, SC_R_A72_0, SC_PM_PW_MODE_OFF));
RTN_ERR(sc_pm_req_low_power_mode(ipc_handle, SC_R_A72_1, SC_PM_PW_MODE_OFF));
RTN_ERR(sc_pm_req_cpu_low_power_mode(ipc_handle, SC_R_A53, SC_PM_PW_MODE_OFF, SC_PM_WAKE_SRC_NONE));
RTN_ERR(sc_pm_req_cpu_low_power_mode(ipc_handle, SC_R_A53_0, SC_PM_PW_MODE_OFF, SC_PM_WAKE_SRC_NONE));
RTN_ERR(sc_pm_req_cpu_low_power_mode(ipc_handle, SC_R_A53_1, SC_PM_PW_MODE_OFF, SC_PM_WAKE_SRC_NONE));
RTN_ERR(sc_pm_req_cpu_low_power_mode(ipc_handle, SC_R_A53_2, SC_PM_PW_MODE_OFF, SC_PM_WAKE_SRC_NONE));
RTN_ERR(sc_pm_req_cpu_low_power_mode(ipc_handle, SC_R_A53_3, SC_PM_PW_MODE_OFF, SC_PM_WAKE_SRC_NONE));
RTN_ERR(sc_pm_req_cpu_low_power_mode(ipc_handle, SC_R_A72, SC_PM_PW_MODE_OFF, SC_PM_WAKE_SRC_NONE));RTN_ERR(sc_pm_req_cpu_low_power_mode(ipc_handle, SC_R_A72_0, SC_PM_PW_MODE_OFF, SC_PM_WAKE_SRC_NONE));
RTN_ERR(sc_pm_req_cpu_low_power_mode(ipc_handle, SC_R_A72_1, SC_PM_PW_MODE_OFF, SC_PM_WAKE_SRC_NONE));
Thanks & Regards,
VinothS,
one can look at imx_pwr_domain_off() in
imx8qm_psci.c\imx8qm\imx\plat - imx-atf - i.MX ARM Trusted firmware
Best regards
igor
Hi Igor,
from this document,
System Controller Firmware 101 - Power management service
A cores and GPUs are the only ones with a dedicated external power supplies
So, I unable to handle the power mode of A cores by using SCF API.
Thanks & Regards,
VinothS,
Hi Igor,
Yes I am using the same API (sc_pm_req_low_power_mode, sc_pm_req_cpu_low_power_mode) only.
Thanks & Regards,
VinothS,