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.

I2C Boot From EEPROM with large (greater than 64k) image

Other Parts Discussed in Thread: TMS320C28346, CONTROLSUITE

I'm writing some code for the TMS320C28346 and have previously written something to load a bootable image onto the EEPROM via I2C.

However, as the size of my bootable images is creeping up towards 64k I am wondering how I'll load and boot it once my code size crosses that threshold.

My chip has a 512K EEPROM which is addressable in 64k pieces.  So I could set my slave address to 0x50, 0x51...0x57 to write my boot image to the EEPROM if necessary.

Is the boot ROM smart enough span multiple (if continguous) I2C slave addresses when booting?

Or am I stuck writing a secondary boot loader.  If I am could anybody point me to a good reference point as I'd be starting from scratch?

Please advise.

  • Hi Frank

    on chip bootROM supports only one I2C Slave @ address 0x50. Please browse through the bootROM sources that are shipped in controlSuite for your device and you should be able to comeup with the secondary bootloader pretty easily.

    in short, you can init the I2C Master as per your I2C slave address and call back the functions in bootROM from your applicaiton. Please refer to device boot ROM guide if you need any details on the boot.

    Please let us know if you have any questions.

     

    Best Regards

    Santosh

     

  • Hi Frank,

    You are most likely stuck with writing custom bootloader. If I was in your shoes, I'd put two I2C EEPROMs on the bus small one containing custom bootloader on 0x50 and a large one containing final application on different address. I'd take TI bootloader (see the boot code files available from TI) and I would just modify it to work with bigger devices

    Regards, Mitja