i.MX-RT XIP from multiple flash images

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

i.MX-RT XIP from multiple flash images

992 Views
andrea_botarell
Contributor V

Hello,

 

I am currently developing on IMXRT1050-EVKB.

Is it possible to have multiple application images stored in external flash (i.e. HyperFlash) and boot from each of them without having to link code to fixed memory addresses?

The idea is to have a L2 boot selecting target image and launching XIP execution.

In case links to examples and/or application-notes will be truly appreciated.

Thanks in advance.

Tags (1)
0 Kudos
2 Replies

784 Views
Yuri
NXP Employee
NXP Employee

Hello,

 

   Generally i.MX boot ROM does not support multiple boot, assuming 

boot single boot device, boot options are configured, using BOOT_CFG 

fuses or GPIO pins.   No problems (except size)  to have multiple

application images, stored in external boot flash, but - in any case - single

entry point should be located in the IVT. So, further branches should be

performed in boot software.

  Note, according to section 8.2 (Overview) in i.MX RT1050 Reference Manual,

Rev. 1, 03/2018: "The boot ROM allows waking up from the low-power modes.

On reset, the ROM checks the power gating status register. When waking from

the low-power mode, the core skips loading an image from the boot device and

jumps to the address saved in PERSISTENT_ENTRY0."

This approach also may be used to call applications.

Have a great day,

Yuri

 

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

Note: If this post answers your question, please click the Correct Answer

button. Thank you!

0 Kudos

784 Views
andrea_botarell
Contributor V

Hi Yuri,

Thanks for the feedback. I know that ROM boot can access just a single entry point but I was actually discussing about the possibility to have a 2nd level boot doing the jump to target application image.

So the expected boot flow will be:

1) ROM boot launches L2 boot placed in the default external flash entry point;

2) L2 boot selects target image from the ones stored on subsequent flash sections;

3) Target application is executed with XIP fro  flash;

I was just wondering if it is possible to build/store multiple application images in different flash sections in a such way that they can be launched with XIP just by jumping to the entry point of each one.

In other words I would like to understand if the memory addresses linked in the application image can be made relative to the entry point (i.e. so that I can store the image in any location of the physical memory) or if they are fixed after build (i.e. in that case I suppose that I need to store the target image in a fixed memory location and always have to copy there a new image from the other sections in case of update).

Best regards,

Andrea 

0 Kudos