M4 Low Power Demo on i.MX8MM

Document created by terry_lr Employee on May 19, 2019Last modified by terry_lr Employee on Aug 27, 2020
Version 3Show Document
  • View in full screen mode

Low power demo on i.MX8MM.


We use it to test power consumption on i.MX8MM EVK.



1. Kernel:

echo "mem" > /sys/power/state


2. M4:

Select a power mode from menu and wait for wakeup.

Default wakeup method is GPT.


Add more patches, which will add functions for the case:

1. M core RUN and A core in suspend with DDR OFF.

2. M core wakeup A core without DDR support.



1. freertos_hello.c.
A simple example for M4 RUN when A core in DSM. Generally, we use MU_TriggerInterrupts(MUB, kMU_GenInt0InterruptTrigger); to do wakeup.


2. atf patch:
Allow A53 to enter fast-wakeup stop when M4 RUN. Also avoid bypass of some plls, which is important to make M4 RUN when A53 enters suspend.


3. 0001-iMX8MM-GIR-wakeup.patch:
GIR wakeup patch for kernel. Need kernel to use


4. 0002-Don-t-keep-root-clks-when-M4-is-ON.patch.
Don't keep root clocks when M4 is ON.

5. 0001-plat-imx8mm-keep-the-necessary-clock-enabled-for-rdc.patch.
There's a design issue that when wakeup from DSM, described in patch:


if NOC power down is enabled in DSM mode, when system resume

back, RDC need to reload the memory regions config into the

MRCs, so PCIE, DDR, GPU bus related clock must on to make

sure RDC MRCs can be successfully reloaded.


Note that this patch will keep PCIE, DDR and GPU clock on, which will increase the power.

A optimization will be decrease PCIE, DDR and GPU clock before entering DSM.