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
4,728 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
Reply
1 Solution
4,702 Views
igorpadykov
NXP Employee
NXP Employee
0 Kudos
Reply
7 Replies
4,714 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
Reply
4,703 Views
igorpadykov
NXP Employee
NXP Employee
0 Kudos
Reply
4,695 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
Reply
4,685 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
Reply
4,678 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
Reply
4,675 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
Reply
4,720 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
Reply