Tweaking the FX3 Bootloader(BootROM)

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
PrRe_3492461
Level 4
Level 4
First like received 50 sign-ins 50 replies posted

Hello Everyone,

I want to customize the FX3 Bootloader such that it downloads Firmware image from the SPI interface into I2C EEPROM and than Boot Fx3 from I2C EEPROM later.

So Is it possible to tweak the Bootloader code for above requirement?

can I get any help in this regards.

Thanks and regards,

Pranay.

0 Likes
1 Solution

Hello Pranay,

Please refer to the below blog and see if it suits your requirement.

FX3 Fail Safe Firmware Update

Best regards,

Srinath S

View solution in original post

0 Likes
5 Replies
SrinathS_16
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hello,

The ROM boot-loader source code of FX3 is confidential and cannot be shared. You can modify the second stage boot-loader (present as part of the FX3 SDK) to initially boot from SPI Flash, transfer the firmware content into the EEPROM and then boot later.

Best regards,

Srinath S

0 Likes

Hello SrinathS_16,

Thanks for the reply,

No I don't want FX3 to boot from SPI Flash, instead I want to update or program the FW from SPI interface to EEPROM and than boot through EEPROM,in simple terms we can put it like this,

can we use SPI interface instead of USB for interfacing with the Host PC ?

if so,how to use Second stage Bootloader and make program jump to Firmware after second stage Bootloader ?

Thanks and regards,

Pranay.

0 Likes

Hello Pranay,

- The ROM boot-loader is such that, upon booting, it looks for the PMODE pins and chooses one of the many available booting options. The ROM boot-loader loads the firmware from any of the boot-sources into the FX3 RAM. It is not capable of copying the firmware contents from SPI Flash to I2C EEPROM.

- The second stage boot-loader can be set up as follows.

     -> PMODE lines set to SPI boot

     -> ROM boot-loader loads the second stage boot-loader from the SPI flash into the FX3 RAM.

     -> Second Stage boot-loader begins execution.

     -> Second Stage boot-loader can copy the contents from SPI Flash into the I2C EEPROM.

     -> To load the new firmware from the EEPROM,

          1. The PMODE lines have to be set to I2C boot and FX3 must be reset (or)

          2. Second stage boot-loader must copy the contents from I2C EEPROM into the FX3 RAM and switch the Program Counter.

- Interfacing through Host PC over SPI is not a possible option.

Best regards,

Srinath S

0 Likes

Hi SrinathS_16,

Thanks for the reply.

By default FX3 FW (say FW1) also Second stage Bootloader which is downloaded from I2C EEPROM and will be running at a Address space (x1) in SRAM and by using that running FW1 based on the status of a GPIO pin, I want to load another FW (say FW2) which will be downloaded from I2C EEPROM to SRAM address space of (x1+1),  Is it possible for FX3 to boot using FW2 located at (x1+1) location ??

  Any possible solutions of achieving this requirement ? Is there any document available consisting of How to use a Second stage bootloader and Finding the memory occupied by the existing FW(FW1) ?

Thanks and regards,

Pranay.

0 Likes

Hello Pranay,

Please refer to the below blog and see if it suits your requirement.

FX3 Fail Safe Firmware Update

Best regards,

Srinath S

0 Likes