
Aras Vaichas arasv@magtech.com.au writes:
Wolfgang Wegner wrote:
On our board we have an FPGA, and for different applications a different FPGA file shall be loaded without updating the firmware. For this, the application has to set an U-Boot environment variable that specifies which FPGA file to load on next boot.
We use an i2c EEPROM to hold board specific information. I read the EEPROM from U-Boot and set up the MAC address and arch/mach number using the misc_init_r(void) call method. This separates the U-boot environment from the machine specific data. I also use the EEPROM to hold the SDRAM settings so the first bootloader can configure the DRAM on multiple boards without requiring multiple binaries.
I have a strange bootcmd. If U-Boot starts with a corrupted environment, it runs the default bootcmd. The default bootcmd creates a bootcmd and then runs saveenv so the next boot will run the new bootcmd..
Nice :-) That does the trick without any modifications to the code. Though I have to agree with Wolfgang that this could be potentially dangerous. If for any reason U-Boot went into some kind of endless restart - saveenv loop...
Best regards
Markus Klotzbuecher
-- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office@denx.de