Warm M4 firmware replace

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

Warm M4 firmware replace

1,293 Views
giuseppepagano1
Contributor III

Hi,

is it possible to change the firmware on M4 core of imx6 SoloX without rebooting the whole platform ?

I understand that under u-boot I can start M4 core via "bootaux" command, 

and also I can stop it via a simple write on SRC_SCR register: 

   mw.l  0x020d8000 0xA0480520

and start the core again with the same firmware using "bootaux".

But if I change the firmware loading a new working one in the same location, the core hang. The new firmware works only after a restart of the platform.

I've tryed to cleanup RDC registers too, but I can't find any procedure to restart the M4 with a new firmware without a power down/on.

Moreover I didn't find any documentation on how to use M4 reset functionality to start a new firmware, Is it a not supported operation ?

Thanks

Giuseppe  

Labels (1)
0 Kudos
3 Replies

743 Views
Yuri
NXP Employee
NXP Employee

  Giuseppe, hello !


In addition to Biyong Sun - please take a look at

"MX6 SoloX bare metal startup"

https://community.freescale.com/docs/DOC-106253


Have a great day,
Yuri

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

743 Views
giuseppepagano1
Contributor III

Hi, thanks for your comments.

I've read (very interesting) Yuri post about "SoloX bare metal startup", and I based on it lots of my tests.

If I understand right, the only way to change the firmware once M4 has started is to:

   - stop M4;

   - reset permission on RDC registers;

   - replace the firmware;

   - update stack and pc addresses;

   - reset and start M4;

If I do not reset permission on RDC I can't updare new firmware from A9 (in DDR or ocram area).

But once RDC register have been alterated, system becames unstable (crash after few seconds...).

So I think I can't do that ....

Is it right ?

N.B. I need a "warm upgrade procedure" just for development phase of new firmware, not for production.

0 Kudos

743 Views
BiyongSUN
NXP Employee
NXP Employee

Strongly suggest do not try to do that, it will introduce lots of unexpected issues later on. 

If you disable the RDC, it can.

Also you need to load the image to the memory  correct address.

And also re-write the M4 vector as boot aux does.

stackp 0x007F8004

pc       0x007F8000

SRC Control Register (SRC_SCR) bit 22 m4_enable

SRC Control Register (SRC_SCR) bit 4  m4c_non_sclr_rst

0 Kudos