This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM2431: using I2C0 with an EEPROM for boot code

Part Number: AM2431

We are considering to use the I2C0 as a backup choice to boot from.

What is curious is the maximum size of the boot code would be 64K,  and if we wanted to support the backup within the I2C then it would only allow 32K of code size. (see the datasheet refernce below)

The question is are there examples of boot code that could fit in 32K space that would allow us to then load code from a SPI NOR flash device.  What I would understand that would be needed is the code that was loaded from the I2C EEPROM of 32K size  would have to initialize the processor and configure the SPI bus and clocks and then read the SPI data and load it into RAM and verify the install is correct and then jump to that starting location. This would require the appropriate drivers.

We are wondering if there are examples like that that do fit in 32K. If so that would give us credible evidence that this would be a viable backup boot method if we needed it.

thanks

4.4.2.1.1.2 Addressing
The boot code does not support byte address to bus address wrapping. So the maximum image size that can be
access is 64 kbytes.

4.4.2.1.1 I2C Initialization Process
In the I2C boot mode, the ROM Code configures the Main Domain I2C0 in master mode.
The boot master drives the I2C slave device where the image is stored. The image is copied to internal RAM,
and is executed from there. If the image is not recognized, the ROM will attempt to read the image at offset
0x8000. This is the only redundant image supported by the ROM

  • Hi Iance,

    What you need is Secondary Bootloader (SBL) example for I2C EEPROM (examples\drivers\boot\sbl_i2c). Unfortunately such example does not exist in the latest MCU+ SDK (08.02.00.31). If you need it urgently, then you will have to use the sbl_ospi example and combine it with the I2C driver to come up with your own sbl_i2c.

    Best regards,

    Ming