blob: 1a62bbf12ef3a06e1ddea0b2ade16d8af6b980e4 [file] [log] [blame]
Eric Nelsone5b3a502013-03-11 08:44:53 +00001setenv stdout serial,vga
2echo "check U-Boot" ;
3setenv offset 0x400
4if ${fs}load ${dtype} ${disk}:1 12000000 u-boot.imx || ${fs}load ${dtype} ${disk}:1 12000000 u-boot.nopadding ; then
5 echo "read $filesize bytes from SD card" ;
6 if sf probe || sf probe || \
7 sf probe 1 27000000 || sf probe 1 27000000 ; then
8 echo "probed SPI ROM" ;
Wolfgang Denkec7fbf52013-10-04 17:43:24 +02009 if sf read 0x12400000 $offset $filesize ; then
10 if cmp.b 0x12000000 0x12400000 $filesize ; then
11 echo "------- U-Boot versions match" ;
12 else
13 echo "Need U-Boot upgrade" ;
14 echo "Program in 5 seconds" ;
15 for n in 5 4 3 2 1 ; do
16 echo $n ;
17 sleep 1 ;
18 done
Eric Nelsone5b3a502013-03-11 08:44:53 +000019 echo "erasing" ;
Eric Nelsondc1048e2013-10-09 12:25:15 -070020 sf erase 0 0xC0000 ;
Eric Nelsone5b3a502013-03-11 08:44:53 +000021 # two steps to prevent bricking
22 echo "programming" ;
Wolfgang Denkec7fbf52013-10-04 17:43:24 +020023 sf write 0x12000000 $offset $filesize ;
Eric Nelsone5b3a502013-03-11 08:44:53 +000024 echo "verifying" ;
Wolfgang Denkec7fbf52013-10-04 17:43:24 +020025 if sf read 0x12400000 $offset $filesize ; then
26 if cmp.b 0x12000000 0x12400000 $filesize ; then
27 while echo "---- U-Boot upgraded. reset" ; do
Eric Nelsone5b3a502013-03-11 08:44:53 +000028 sleep 120
29 done
Wolfgang Denkec7fbf52013-10-04 17:43:24 +020030 else
31 echo "Read verification error" ;
32 fi
33 else
34 echo "Error re-reading EEPROM" ;
35 fi
36 fi
37 else
38 echo "Error reading boot loader from EEPROM" ;
39 fi
Eric Nelsone5b3a502013-03-11 08:44:53 +000040 else
Wolfgang Denkec7fbf52013-10-04 17:43:24 +020041 echo "Error initializing EEPROM" ;
Eric Nelsone5b3a502013-03-11 08:44:53 +000042 fi ;
43else
44 echo "No U-Boot image found on SD card" ;
45fi