diff options
Diffstat (limited to 'target/linux/imx/image/bootscript-ventana')
-rw-r--r-- | target/linux/imx/image/bootscript-ventana | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/target/linux/imx/image/bootscript-ventana b/target/linux/imx/image/bootscript-ventana new file mode 100644 index 0000000000..734f74a30c --- /dev/null +++ b/target/linux/imx/image/bootscript-ventana @@ -0,0 +1,85 @@ +echo "Gateworks Ventana OpenWrt Boot script v1.02" + +# set some defaults +# set some defaults +test -n "$fs" || fs=ext2 +test -n "$disk" || disk=0 +setenv nextcon 0 +setenv bootargs console=${console},${baudrate} +setenv loadaddr 10800000 +setenv fdt_addr 18000000 + +# detect dtype by looking for kernel on media the bootloader +# has mounted (in order of preference: usb/mmc/sata) +# +# This assumes the bootloader has already started the respective subsystem +# or mounted the filesystem if appropriate to get to this bootscript +# +# To Speed up boot set dtype manually +if test -n "$dtype" ; then + echo "Using dtype from env: $dtype" +else + echo "Detecting boot device (dtype)..." + if ${fs}load usb ${disk}:1 ${loadaddr} ${bootdir}/uImage ; then + dtype=usb + elif ${fs}load mmc ${disk}:1 ${loadaddr} ${bootdir}/uImage ; then + dtype=mmc + elif ${fs}load sata ${disk}:1 ${loadaddr} ${bootdir}/uImage ; then + dtype=sata + elif ubifsload ${loadaddr} ${bootdir}/uImage ; then + dtype=nand + fi + echo "detected dtype:$dtype" +fi + +echo "Booting from ${dtype}..." +if itest.s "x${dtype}" == "xnand" ; then + # fix partition name + # OpenWrt kernel bug prevents partition name of 'rootfs' from booting + # instead name the partition ubi which is what is looked for by + # procd sysupgrade + mtdparts del rootfs && mtdparts add nand0 - ubi + echo "mtdparts:${mtdparts}" + setenv fsload ubifsload + setenv root "ubi0:ubi ubi.mtd=2 rootfstype=squashfs,ubifs" +else + setenv fsload "${fs}load ${dtype} ${disk}:1" + part uuid ${dtype} ${disk}:1 uuid + if test -z "${uuid}"; then + # fallback to bootdev + if test -n "$bootdev" ; then + echo "Using bootdev from env: $bootdev" + else + if itest.s "x${dtype}" == "xmmc" ; then + bootdev=mmcblk0p1 + else + bootdev=sda1 + fi + fi + setenv root "root=/dev/${bootdev}" + else + setenv root "root=PARTUUID=${uuid}" + fi + setenv root "$root rootfstype=${fs} rootwait rw" +fi + +setenv bootargs "${bootargs}" "${root}" "${video}" "${extra}" +if ${fsload} ${loadaddr} ${bootdir}/uImage; then + if ${fsload} ${fdt_addr} ${bootdir}/${fdt_file}; then + echo Loaded DTB from ${bootdir}/${fdt_file} + test -n "$fixfdt" && run fixfdt + bootm ${loadaddr} - ${fdt_addr} + elif ${fsload} ${fdt_addr} ${bootdir}/${fdt_file1}; then + echo Loaded DTB from ${bootdir}/${fdt_file1} + test -n "$fixfdt" && run fixfdt + bootm ${loadaddr} - ${fdt_addr} + elif ${fsload} ${fdt_addr} ${bootdir}/${fdt_file2}; then + echo Loaded DTB from ${bootdir}/${fdt_file2} + test -n "$fixfdt" && run fixfdt + bootm ${loadaddr} - ${fdt_addr} + else + echo "Error loading device-tree" + fi +else + echo "Error loading kernel image" +fi |