# Bootscript using the new unified bootcmd handling # introduced with u-boot v2014.10 # # Expects to be called with the following environment variables set: # # devtype e.g. mmc/scsi etc # devnum The device number of the given type # bootpart The partition containing the boot files # distro_bootpart The partition containing the boot files # (introduced in u-boot mainline 2016.01) # prefix Prefix within the boot partiion to the boot files # kernel_addr_r Address to load the kernel to # fdt_addr_r Address to load the FDT to # ramdisk_addr_r Address to load the initrd to. # # The uboot must support the bootz and generic filesystem load commands. # Workaround lack of baudrate included with console on various iMX # systems (e.g. wandboard, cubox-i, hummingboard) if test "${console}" = "ttymxc0" && test -n "${baudrate}"; then setenv console "${console},${baudrate}" fi if test -n "${console}"; then setenv bootargs "${bootargs} console=${console}" fi setenv bootargs "@@LINUX_KERNEL_CMDLINE_DEFAULTS@@ ${bootargs} @@LINUX_KERNEL_CMDLINE@@" @@UBOOT_ENV_EXTRA@@ if test -z "${fk_kvers}"; then setenv fk_kvers '@@KERNEL_VERSION@@' fi # These two blocks should be the same apart from the use of # ${fk_kvers} in the first, the syntax supported by u-boot does not # lend itself to removing this duplication. if test -n "${fdtfile}"; then setenv fdtpath dtbs/${fk_kvers}/${fdtfile} else setenv fdtpath dtb-${fk_kvers} fi if test -z "${distro_bootpart}"; then setenv partition ${bootpart} else setenv partition ${distro_bootpart} fi @@UBOOT_PREBOOT_EXTRA@@ if test -z "${fk_image_locations}"; then setenv fk_image_locations ${prefix} fi for pathprefix in ${fk_image_locations} do if test -e ${devtype} ${devnum}:${partition} ${pathprefix}vmlinuz-${fk_kvers} then load ${devtype} ${devnum}:${partition} ${kernel_addr_r} ${pathprefix}vmlinuz-${fk_kvers} \ && load ${devtype} ${devnum}:${partition} ${fdt_addr_r} ${pathprefix}${fdtpath} \ && load ${devtype} ${devnum}:${partition} ${ramdisk_addr_r} ${pathprefix}initrd.img-${fk_kvers} \ && echo "Booting Debian ${fk_kvers} from ${devtype} ${devnum}:${partition}..." \ && bootz ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r} fi done for pathprefix in ${fk_image_locations} do if test -e ${devtype} ${devnum}:${partition} ${pathprefix}vmlinuz then load ${devtype} ${devnum}:${partition} ${kernel_addr_r} ${pathprefix}vmlinuz \ && load ${devtype} ${devnum}:${partition} ${fdt_addr_r} ${pathprefix}dtb \ && load ${devtype} ${devnum}:${partition} ${ramdisk_addr_r} ${pathprefix}initrd.img \ && echo "Booting Debian from ${devtype} ${devnum}:${partition}..." \ && bootz ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r} fi done