We're looking to release our first hardware with a limited set of software in an SPI EEPROM, with a view to allowing for field reflashing of our internal SPI flash with more advanced software versions later.
In our first version, we'd like to avoid having to write and debug (1) USB interface or (2) SD card interface. HOWEVER, we want to be able to LOAD our NEW software from either USB or SD cards. Here's how - the boot ROM code supposedly includes code to boot from USB or SD Cards directly i.e. the smarts to do this are ALREADY in the C5505 ROM. So, the idea is this. We don't have to develop the smarts to use USB or SD right now in our first release, since the ROM has the code already. Our first SPI flash will be simple, and when we want more complex code, the user simply inserts SD or connects USB, and we boot the new code, which we then write to the SPI flash, and we're upated.
Here's the problem - as I understand it, the ROM will look for a boot device in a certain order. So it will find the SPI Flash first, and not look for USB or SD cards. So here's the question - how do we get it to look at USB or SD when we want the "update boot"?
I'm thinking that the only way to do this would be to have some sort of key/switch that would hardware disable the SPI Flash during boot, so that the ROM boot code keeps searching. I guess another way would be to have a switch controlled by software which disables the SPI Flash and reboots and then re-enables it somehow?
Any better ideas out there? Would welcome some creative solutions.
Would also like CONFIRMATION from TI and/or others that, indeed, this approach to updating our product in the field is workable. I don't want to find out that the ROM code for USB and/or SD cards doesn't actually work!
Thanks in advance for your ideas.