PKGBUILDs/alarm/uboot-boundary/6x_bootscript
2015-06-28 22:34:25 +00:00

106 lines
2.8 KiB
Plaintext

echo "checking for U-Boot upgrades..";
setenv offset 0x400
if load ${dtype} ${disk}:1 12000000 /boot/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/zImage && load ${dtype} ${disk}:1 11000000 /boot/dtbs/${fdtfile} && bootz 10800000 - 11000000
load ${dtype} ${disk}:1 10800000 /boot/uImage && bootm 10800000