setenv stdout serial,vga echo "check U-Boot" ; setenv offset 0x400 if ${fs}load ${dtype} ${disk}:1 12000000 u-boot.imx || ${fs}load ${dtype} ${disk}:1 12000000 u-boot.nopadding ; then echo "read $filesize bytes from SD card" ; if sf probe || sf probe || \ sf probe 1 27000000 || sf probe 1 27000000 ; then echo "probed SPI ROM" ; if sf read 0x12400000 $offset $filesize ; then if cmp.b 0x12000000 0x12400000 $filesize ; then echo "------- U-Boot versions match" ; else echo "Need U-Boot upgrade" ; echo "Program in 5 seconds" ; for n in 5 4 3 2 1 ; do echo $n ; sleep 1 ; done echo "erasing" ; sf erase 0 0xC0000 ; # two steps to prevent bricking echo "programming" ; sf write 0x12000000 $offset $filesize ; echo "verifying" ; if sf read 0x12400000 $offset $filesize ; then if cmp.b 0x12000000 0x12400000 $filesize ; then while echo "---- U-Boot upgraded. reset" ; do sleep 120 done else echo "Read verification error" ; fi else echo "Error re-reading EEPROM" ; fi fi else echo "Error reading boot loader from EEPROM" ; fi else echo "Error initializing EEPROM" ; fi ; else echo "No U-Boot image found on SD card" ; fi