Warm M4 firmware replace

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Warm M4 firmware replace

2,246 次查看
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  

标签 (1)
0 项奖励
回复
3 回复数

1,696 次查看
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 项奖励
回复

1,696 次查看
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 项奖励
回复

1,696 次查看
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 项奖励
回复