Low power demo on i.MX8MM.
We use it to test power consumption on i.MX8MM EVK.
echo "mem" > /sys/power/state
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.
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.
GIR wakeup patch for kernel. Need kernel to use fsl-imx8mm-evk-m4.dtb.
Don't keep root clocks when M4 is ON.
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.