imx8m low power mode in Linux

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

imx8m low power mode in Linux

Jump to solution
2,339 Views
akbar123
Contributor III

Hello,

I want to figure out how imx8m power management is done in Linux and cores are put into low power:

Q1- As I guessed, low power mode relates to power and clock. Is there any things except them?

Q2- Which Linux source files implement the reference manual stuffs relating to power and clock?

Q3- Is there any other document except reference manual about imx8m low power mode?

Thanks in advance

 

0 Kudos
1 Solution
2,313 Views
igorpadykov
NXP Employee
NXP Employee
0 Kudos
7 Replies
2,325 Views
akbar123
Contributor III

Hi igor,

The document describes some benchmarks. My question is about the low power functionality in i.MX8M.

Q1- How does the power management and clock system work at both sides Hardware and Linux?

Q2- Is there any other document except reference manual about these topics?

 

Thanks

0 Kudos
2,314 Views
igorpadykov
NXP Employee
NXP Employee
0 Kudos
2,306 Views
akbar123
Contributor III

Hi igor,

My ultimate goal is to run a program on Cortex-M4 (CM4) to control a peripheral (e.g. GPIO, UART, CAN or etc) when Cortex-A (CA) cores are in sleep (i.e. echo mem > /sys/power/state).

The current implementation puts CM4 in sleep when Linux goes into sleep. As I searched the kernel source code, there are two important files: (These are just my guesses)

1- psci.c: is used to manage CA cores, e.g. put them into sleep

2- gpc-psci.c: is used to manage imx8 power domains, e.g. to turn off power of domain and put that domain into sleep

 

Q1- Are the power management operations (e.g. putting CA and CM4 into sleep) implemented in Linux source code (psci.c and gpc-psci.c) or in ATF (gpc.c)? I can't realize Linux and ATF relationship in handling power management.

Q2- I guess CA core0 is always ON and not put into sleep even if I use "echo mem > /sys/power/state". Is that right?

Q3- Are there any documents about imx8mq power domains except the reference manual?

0 Kudos
2,296 Views
igorpadykov
NXP Employee
NXP Employee

Hi asghar 

 

> My ultimate goal is to run a program on Cortex-M4 (CM4) to control a peripheral
>(e.g. GPIO, UART, CAN or etc) when Cortex-A (CA) cores are in sleep
>(i.e. echo mem > /sys/power/state).

 

such use case (example with audio) is provided in AN12195  Implement Low-Power Audio on i.MX8M

AN12195SW

 

>Are there any documents about imx8mq power domains except the reference manual?

 

not, sorry.

 

Best regards
igor

0 Kudos
2,289 Views
akbar123
Contributor III

Hi igor,

Thanks for your help.

what about this question:

Q2- I guess CA core0 is always ON and not put into sleep even if I use "echo mem > /sys/power/state". Is that right?

0 Kudos
2,286 Views
igorpadykov
NXP Employee
NXP Employee

Hi asghar 

 

> I guess CA core0 is always ON and not put into sleep even

>if I use "echo mem > /sys/power/state". Is that right?

 

not, sorry.

 

Best regards
igor

0 Kudos
2,331 Views
igorpadykov
NXP Employee
NXP Employee

Hi Asghar

 

for description of i.MX8MQ low power modes one can look at

AN12118  i.MX 8M Quad Power Consumption Measurement

sect.2.5.1 Low Level Power Management (PM), sect.2.5.1.3 Source Code Structure

i.MX Linux Reference Manual​

 

Best regards
igor

0 Kudos