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}:2 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=squashfs rootwait" 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