diff options
Diffstat (limited to 'libre/uboot-boundary-linux-libre/6x_bootscript')
-rw-r--r-- | libre/uboot-boundary-linux-libre/6x_bootscript | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/libre/uboot-boundary-linux-libre/6x_bootscript b/libre/uboot-boundary-linux-libre/6x_bootscript new file mode 100644 index 000000000..17d68d86c --- /dev/null +++ b/libre/uboot-boundary-linux-libre/6x_bootscript @@ -0,0 +1,105 @@ +echo "checking for U-Boot upgrades.."; +setenv offset 0x400 +if load ${dtype} ${disk}:1 12000000 /boot/uboot-boundary-linux-libre/u-boot.imx; then + echo " found u-boot.imx $filesize bytes)"; + 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 " no upgrade needed"; + else + echo " need U-Boot upgrade, flashing in 5 seconds.."; + for n in 5 4 3 2 1; do + echo $n; + sleep 1; + done + echo " erasing flash.."; + sf erase 0 0xC0000; + # two steps to prevent bricking + echo " writing flash.."; + sf write 0x12000000 $offset $filesize; + echo " verifying flash.."; + if sf read 0x12400000 $offset $filesize; then + if cmp.b 0x12000000 0x12400000 $filesize; then + echo "---- U-Boot upgraded. resetting.."; + reset; + 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 + +setenv bootargs +setenv nextcon 0; + +if hdmidet ; then + setenv bootargs $bootargs video=mxcfb${nextcon}:dev=hdmi,1280x720M@60,if=RGB24 + setenv fbmem "fbmem=28M"; + setexpr nextcon $nextcon + 1 +else + echo "------ no HDMI monitor"; +fi + +i2c dev 2 +if i2c probe 0x04 ; then + setenv bootargs $bootargs video=mxcfb${nextcon}:dev=ldb,LDB-XGA,if=RGB666 + if test "0" -eq $nextcon; then + setenv fbmem "fbmem=10M"; + else + setenv fbmem ${fbmem},10M + fi + setexpr nextcon $nextcon + 1 +else + echo "------ no Freescale display"; +fi + +if i2c probe 0x38 ; then + setenv bootargs $bootargs video=mxcfb${nextcon}:dev=ldb,1024x600M@60,if=RGB666 + if test "0" -eq $nextcon; then + setenv fbmem "fbmem=10M"; + else + setenv fbmem ${fbmem},10M + fi + setexpr nextcon $nextcon + 1 +else + echo "------ no 1024x600 display"; +fi + +if i2c probe 0x48 ; then + setenv bootargs $bootargs video=mxcfb${nextcon}:dev=lcd,CLAA-WVGA,if=RGB666 + if test "0" -eq $nextcon; then + setenv fbmem "fbmem=10M"; + else + setenv fbmem ${fbmem},10M + fi + setexpr nextcon $nextcon + 1 +else + echo "------ no 800x480 display"; +fi + +while test "3" -ne $nextcon ; do + setenv bootargs $bootargs video=mxcfb${nextcon}:off ; + setexpr nextcon $nextcon + 1 ; +done + +setenv bootargs $bootargs $fbmem + +part uuid ${dtype} ${disk}:1 uuid + +setenv bootargs $bootargs console=ttymxc1,115200 vmalloc=400M root=PARTUUID=${uuid} rw rootwait consoleblank=0 + +setenv fdtfile imx6q-nitrogen6x.dtb +load ${dtype} ${disk}:1 10800000 /boot/vmlinuz-linux-libre && load ${dtype} ${disk}:1 11000000 /boot/dtbs/linux-libre/${fdtfile} && bootz 10800000 - 11000000 + +load ${dtype} ${disk}:1 10800000 /boot/uImage-linux-libre && bootm 10800000 |