diff --git a/config/bootscripts/boot-sun50i-next.cmd b/config/bootscripts/boot-sun50i-next.cmd index e1aa842db8..9363534032 100644 --- a/config/bootscripts/boot-sun50i-next.cmd +++ b/config/bootscripts/boot-sun50i-next.cmd @@ -18,7 +18,8 @@ itest.b *0x10028 == 0x03 && echo "U-boot loaded from SPI" echo "Boot script loaded from ${devtype}" -if load ${devtype} 0 ${load_addr} /boot/armbianEnv.txt || load ${devtype} 0 ${load_addr} armbianEnv.txt; then +if test -e ${devtype} 0 ${prefix}armbianEnv.txt; then + load ${devtype} 0 ${load_addr} ${prefix}armbianEnv.txt env import -t ${load_addr} ${filesize} fi @@ -36,22 +37,46 @@ setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs if test "${docker_optimizations}" = "on"; then setenv bootargs "${bootargs} cgroup_enable=memory swapaccount=1"; fi -load ${devtype} 0 ${fdt_addr_r} /boot/dtb/allwinner/${fdtfile} || load ${devtype} 0 ${fdt_addr_r} /dtb/allwinner/${fdtfile} +load ${devtype} 0 ${fdt_addr_r} ${prefix}dtb/allwinner/${fdtfile} fdt addr ${fdt_addr_r} fdt resize for overlay_file in ${overlays}; do - if load ${devtype} 0 ${load_addr} boot/dtb/allwinner/overlays/${overlay_prefix}-${overlay_file}.dtbo || load ${devtype} 0 ${load_addr} dtb/allwinner/overlays/${overlay_prefix}-${overlay_file}.dtbo; then - echo "Applying DT overlay ${overlay_file}.dtbo" - fdt apply ${load_addr} + if load ${devtype} 0 ${load_addr} ${prefix}dtb/allwinner/overlay/${overlay_prefix}-${overlay_file}.dtbo; then + echo "Applying kernel provided DT overlay ${overlay_prefix}-${overlay_file}.dtbo" + fdt apply ${load_addr} || setenv overlay_error "true" fi done +for overlay_file in ${user_overlays}; do + if load ${devtype} 0 ${load_addr} ${prefix}overlay-user/${overlay_file}.dtbo; then + echo "Applying user provided DT overlay ${overlay_file}.dtbo" + fdt apply ${load_addr} || setenv overlay_error "true" + fi +done +if test "${overlay_error}" = "true"; then + echo "Error applying DT overlays, restoring original DT" + load ${devtype} 0 ${fdt_addr_r} ${prefix}dtb/allwinner/${fdtfile} +else + if load ${devtype} 0 ${load_addr} ${prefix}dtb/allwinner/overlay/${overlay_prefix}-fixup.scr; then + echo "Applying kernel provided DT fixup script (${overlay_prefix}-fixup.scr)" + source ${load_addr} + fi + if test -e ${devtype} 0 ${prefix}fixup.scr; then + load ${devtype} 0 ${load_addr} ${prefix}fixup.scr + echo "Applying user provided fixup script (fixup.scr)" + source ${load_addr} + fi +fi + +# temp hack for SoPine with inverted mmc0 card detect if test "${mmc0-broken-cd}" = "on"; then fdt rm /soc/mmc@1c0f000/ cd-gpios fdt rm /soc/mmc@1c0f000/ cd-inverted fdt set /soc/mmc@1c0f000/ broken-cd fi -load ${devtype} 0 ${ramdisk_addr_r} /boot/uInitrd || load ${devtype} 0 ${ramdisk_addr_r} uInitrd -load ${devtype} 0 ${kernel_addr_r} /boot/Image || load ${devtype} 0 ${kernel_addr_r} Image + +load ${devtype} 0 ${ramdisk_addr_r} ${prefix}uInitrd +load ${devtype} 0 ${kernel_addr_r} ${prefix}Image + booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r} # Recompile with: diff --git a/config/bootscripts/boot-sunxi.cmd b/config/bootscripts/boot-sunxi.cmd index 9a08f62907..b1b432f8b5 100644 --- a/config/bootscripts/boot-sunxi.cmd +++ b/config/bootscripts/boot-sunxi.cmd @@ -69,7 +69,7 @@ if test -e ${devtype} 0 "${prefix}.next"; then source ${load_addr} fi if test -e ${devtype} 0 ${prefix}fixup.scr; then - load ${devtype} 0 ${load_addr} fixup.scr + load ${devtype} 0 ${load_addr} ${prefix}fixup.scr echo "Applying user provided fixup script (fixup.scr)" source ${load_addr} fi