Booting Firmware from Different Memory Location

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

Booting Firmware from Different Memory Location

681 Views
Dipak01
Contributor II

Hi,

We are working on designing Firmware Over the Air features on the iMX RT1020 MCU. We have defined three partition in external QSPI flash which is XIP.

0x60000000 - Bootloader
0x60081000 - Firmware 1
0x60211000 - Firmware 2

Initially, the bootloader will boot from the firmware stored at memory location 0x60081000. When the request for firmware upgrade receives, the device will check the active firmware partition and will download the image at inactive partition. For the first firmware upgrade, image will be downloaded at memory location 0x60211000.

We need to now boot from the second partition which is 0x60211000.

Question: Is it possible to boot an image stored at address 0x60211000 if binary is compiled with flash configuration in the MCUXpresso as below, (first partition address)

BOARD_FLASH (rx) : ORIGIN = 0x60081000, LENGTH = 0x800000 /* 8M bytes (alias Flash) */

Is there any way we can configure the addresses relative rather than absolute from the linker script.

Regards,
Dipak Sharma

Labels (2)
0 Kudos
2 Replies

660 Views
victorjimenez
NXP TechSupport
NXP TechSupport

Hello Dipak,

You want to compile an image with one address, but you want to execute it from a completely different address, correct? If so, this is not possible. 

Regards,
Victor 

0 Kudos

657 Views
Dipak01
Contributor II

Hi Victor,

Thanks for the information.

You have correctly understood my concern. Yes, It is not possible. We will look for some alternatives.

Regards,
Dipak Sharma

Tags (1)
0 Kudos