Warm M4 firmware replace

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Warm M4 firmware replace

2,248件の閲覧回数
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,698件の閲覧回数
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,698件の閲覧回数
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,698件の閲覧回数
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 件の賞賛
返信