xref: /OK3568_Linux_fs/u-boot/board/boundary/nitrogen6x/6x_upgrade.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyunsetenv stdout serial,vga
2*4882a593Smuzhiyunecho "check U-Boot" ;
3*4882a593Smuzhiyunsetenv offset 0x400
4*4882a593Smuzhiyunif ${fs}load ${dtype} ${disk}:1 12000000 u-boot.imx || ${fs}load ${dtype} ${disk}:1 12000000 u-boot.nopadding ; then
5*4882a593Smuzhiyun      echo "read $filesize bytes from SD card" ;
6*4882a593Smuzhiyun      if sf probe || sf probe || \
7*4882a593Smuzhiyun	 sf probe 1 27000000 || sf probe 1 27000000 ; then
8*4882a593Smuzhiyun	   echo "probed SPI ROM" ;
9*4882a593Smuzhiyun	   if sf read 0x12400000 $offset $filesize ; then
10*4882a593Smuzhiyun	       if cmp.b 0x12000000 0x12400000 $filesize ; then
11*4882a593Smuzhiyun		   echo "------- U-Boot versions match" ;
12*4882a593Smuzhiyun	       else
13*4882a593Smuzhiyun		   echo "Need U-Boot upgrade" ;
14*4882a593Smuzhiyun		   echo "Program in 5 seconds" ;
15*4882a593Smuzhiyun		   for n in 5 4 3 2 1 ; do
16*4882a593Smuzhiyun			echo $n ;
17*4882a593Smuzhiyun			sleep 1 ;
18*4882a593Smuzhiyun		   done
19*4882a593Smuzhiyun		   echo "erasing" ;
20*4882a593Smuzhiyun		   sf erase 0 0xC0000 ;
21*4882a593Smuzhiyun		   # two steps to prevent bricking
22*4882a593Smuzhiyun		   echo "programming" ;
23*4882a593Smuzhiyun		   sf write 0x12000000 $offset $filesize ;
24*4882a593Smuzhiyun		   echo "verifying" ;
25*4882a593Smuzhiyun		   if sf read 0x12400000 $offset $filesize ; then
26*4882a593Smuzhiyun		       if cmp.b 0x12000000 0x12400000 $filesize ; then
27*4882a593Smuzhiyun			   while echo "---- U-Boot upgraded. reset" ; do
28*4882a593Smuzhiyun				sleep 120
29*4882a593Smuzhiyun			   done
30*4882a593Smuzhiyun		       else
31*4882a593Smuzhiyun			   echo "Read verification error" ;
32*4882a593Smuzhiyun		       fi
33*4882a593Smuzhiyun		   else
34*4882a593Smuzhiyun			echo "Error re-reading EEPROM" ;
35*4882a593Smuzhiyun		   fi
36*4882a593Smuzhiyun	       fi
37*4882a593Smuzhiyun	   else
38*4882a593Smuzhiyun	       echo "Error reading boot loader from EEPROM" ;
39*4882a593Smuzhiyun	   fi
40*4882a593Smuzhiyun      else
41*4882a593Smuzhiyun	   echo "Error initializing EEPROM" ;
42*4882a593Smuzhiyun      fi ;
43*4882a593Smuzhiyunelse
44*4882a593Smuzhiyun     echo "No U-Boot image found on SD card" ;
45*4882a593Smuzhiyunfi
46