System Controller API in IMX8QM-MEK

cancel
Showing results for 
Search instead for 
Did you mean: 

System Controller API in IMX8QM-MEK

196 Views
Senior Contributor III

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 OFF
                       sc_pm_set_sys_power_mode(ipc_handle, SC_PM_PW_MODE_OFF)
Board Reboot
                        sc_pm_set_sys_power_mode(ipc_handle, SC_PM_PW_MODE_STBY)
No response
                       sc_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)     
 
I don't the perfect the perfect API to suspend resume the A53, A72 CPU's
I am following the following reference,
              https://community.nxp.com/docs/DOC-345249 
Will you please provide proper SCU API for control Application Processor in Suspend and Wakeup from MCU.
Thanks & Regards,
VinothS,
Vinoth S
0 Kudos
7 Replies

40 Views
Senior Contributor III

Solution here,

IMX8QM-MEK Power Management difference between Linux and Android 

Regards,

VinothS.

Vinoth S
0 Kudos

40 Views
Senior Contributor III

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)     
SC_ERR_NOACCESS     
#define SC_ERR_NOACCESS     4U      /*!< Permission error (no access) */
How to resolve the this error?
Thanks & Regards,
VinothS,
Vinoth S
0 Kudos

40 Views
NXP TechSupport
NXP TechSupport

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!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

40 Views
Senior Contributor III

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,

Vinoth S
0 Kudos

40 Views
NXP TechSupport
NXP TechSupport

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

0 Kudos

40 Views
Senior Contributor III

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,

Vinoth S
0 Kudos

40 Views
Senior Contributor III

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,

Vinoth S
0 Kudos