i.MX7ULP in low power boot

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

i.MX7ULP in low power boot

1,302 Views
Daniel_S
Contributor I

We got a MCIMX7ULP-EVK and the plan is to only boot up the CM4 at first. It should then check some sensors and in certain situations boot up the CA7 afterwards.

But we are struggeling with the "boot up the CM4" part.
Examples like hello_world do run in dual boot and in low power boot, but are not capable of starting the CA7 (as noted in the readme).
Examples like power_mode_switch (precompiled in L5.4.49-2.2.0... and compiled from SDK 2.8.0) or rpmsg_lite_pingpong_rtos can start the CA7 but only run in dual boot. When we start any of these images in low power mode (dip switches 101x) the CM4 starts and then seems to crash after a short period of time. The pingpong example crashes during its printf, outputting only "RPMSG Ping-Pong FreeRT" instead of "RPMSG Ping-Pong FreeRTOS RTOS API Demo...".

We couldn't find any examples that demostrate the low power mode (although i.MX 7 ULP even has the LP in its name). Do they exist and we missed them?
Or does anybody have any hints on what may cause the software to behave differently in dual and lp boot (and how to fix it)?
The datasheet states that the M4 will run on the FIRC clock in lp mode. Could that be the reason for the software to crash?

Labels (1)
0 Kudos
7 Replies

1,292 Views
igorpadykov
NXP Employee
NXP Employee

Hi Daniel_S

 

one can look at below link explaining boot options:

https://imxdev.gitlab.io/tutorial/i.MX_7ULP_Heterogeneous_Architecture_and_Different_Boot_Modes/

 

Best regards
igor

0 Kudos

1,287 Views
Daniel_S
Contributor I

Thanks Igor,

sadly the link doesn't explain anything we didn't already know.

We flashed the software (self compiled from the linked SDK) in U-Boot into QSPI Flash of the M4 and it correctly executes in dual boot mode.

When we change the dip switches to low power boot mode (as shown) the M4 software doesn't boot anymore or it briefly starts and crashes.

And we still couldn't find any documentation or examples on how to get low power boot mode working.

0 Kudos

1,283 Views
igorpadykov
NXP Employee
NXP Employee

Hi Daniel_S

 

>And we still couldn't find any documentation or examples on how to get low power boot mode working.

 

if you are able to boot m4 from qspi  as described on suggested link-

you are already "got low power boot mode working".

There are no other special boot modes.

 

Best regards
igor

0 Kudos

1,278 Views
Daniel_S
Contributor I

so dip switches in low power mode and dip switches in dual boot mode should lead to the same boot behaviour?
The imx7ulp_m4_demo.img from the L5.4.47-2.2.0_images_MX7ULPEVK outputs in dual boot:

Task 1 is working now

MCU wakeup source 0x6...
#### Power on CA7 and boot it ####

#################### Power Mode Switch Task ####################

Build Time: Jul 17 2020--03:47:59
Core Clock: 115200000Hz
Power mode: RUN

Select the desired operation

Press A for enter: RUN - Normal RUN mode
Press B for enter: WAIT - Wait mode [...]


and in low power mode:

Task 1 is working now

 

So they do behave differently.
Do you have any idea where our mistake is or what we have to change in the software to get it working? (maybe this is more of a software question and doesn't belong in the hardware forum?)

0 Kudos

1,269 Views
igorpadykov
NXP Employee
NXP Employee

>so dip switches in low power mode and dip switches in dual boot mode

>should lead to the same boot behaviour?

 

"low power mode"  means M4 boots from QSPI flash. Then it may not run A7.

So this option is lowest power consumption mode.

 

Dual Boot is almost the same, but M4 always run (booting) A7 from eMMC/SD.

 

Best regards
igor

 

0 Kudos

1,266 Views
Daniel_S
Contributor I

we do not want the A7 to start directly at power on because we need a low power consumption.
But we can't get it to work because the software on the M4 crashes in low power mode but not in dual mode and we don't understand why.

0 Kudos

1,243 Views
igorpadykov
NXP Employee
NXP Employee

Hi Daniel_S

 

I asked internally and was adviced below:

----------------

The use case that customer needs is not what most customers use to do, normally for low power applications, dual boot is selected and A7 stays at VLLS most of the time, thus it's possible to resume very fast.

I'm able to reproduce what customer is observing, by loading that examples on low power boot mode the system hangs, in fact it's not a hanging, these applications needs to interact with Linux to continue, as written on the power_mode_switch readme.txt file, for example:

The power mode switch demo need to run with Linux accordingly, so please make sure the power mode crossings between Cortex-A7 and Cortex-M4 are valid.

 

There are other demo applications that does not interface with Linux, I tested the bubble, ecompass and hello_world. All them worked on LP boot mode.

These applications are simpler comparing to the multicore ones interfacing with Linux, so if they need, it will be necessary to perform some modifications on the multicore demos to make them work on LP boot mode.

To do a simple test, they can download the SDK at mcuxpresso website and load the pre-compiled *.img files from demo_apps folder.

----------------

 

Best regards
igor

0 Kudos