6x_upgrade.txt 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. setenv stdout serial,vidconsole
  2. echo "check U-Boot" ;
  3. setenv offset 0x400
  4. if ${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" ;
  9. 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
  19. echo "erasing" ;
  20. sf erase 0 0xC0000 ;
  21. # two steps to prevent bricking
  22. echo "programming" ;
  23. sf write 0x12000000 $offset $filesize ;
  24. echo "verifying" ;
  25. if sf read 0x12400000 $offset $filesize ; then
  26. if cmp.b 0x12000000 0x12400000 $filesize ; then
  27. while echo "---- U-Boot upgraded. reset" ; do
  28. sleep 120
  29. done
  30. 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
  40. else
  41. echo "Error initializing EEPROM" ;
  42. fi ;
  43. else
  44. echo "No U-Boot image found on SD card" ;
  45. fi