summaryrefslogtreecommitdiff
path: root/libre/uboot-nitrogen6q/6x_bootscript
diff options
context:
space:
mode:
authorAndré Fabian Silva Delgado <emulatorman@parabola.nu>2016-03-02 01:57:51 -0300
committerAndré Fabian Silva Delgado <emulatorman@parabola.nu>2016-03-02 01:57:51 -0300
commitfc636b58da09547a89bd8955eef7b915efb9ed0f (patch)
treef57e4485722947997c488fa8e3949c0d67bffbb0 /libre/uboot-nitrogen6q/6x_bootscript
parent11467233d8b439275ce1e1db650a4c6f91a9db1f (diff)
uboot-nitrogen6q: add new package to [libre]
Diffstat (limited to 'libre/uboot-nitrogen6q/6x_bootscript')
-rw-r--r--libre/uboot-nitrogen6q/6x_bootscript105
1 files changed, 105 insertions, 0 deletions
diff --git a/libre/uboot-nitrogen6q/6x_bootscript b/libre/uboot-nitrogen6q/6x_bootscript
new file mode 100644
index 000000000..45e5fe9b6
--- /dev/null
+++ b/libre/uboot-nitrogen6q/6x_bootscript
@@ -0,0 +1,105 @@
+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/vmlinuz-linux-libre && load ${dtype} ${disk}:1 11000000 /boot/dtbs/linux-libre/${fdtfile} && bootz 10800000 - 11000000
+
+load ${dtype} ${disk}:1 10800000 /boot/uImage && bootm 10800000