From 9d50761711820fc85c1ae81826e338e01045e691 Mon Sep 17 00:00:00 2001 From: Ming Liu Date: Tue, 14 Mar 2023 12:39:20 +0100 Subject: u-boot-distro-boot: boot.cmd.in: fix fitimage boot failure Since commit 4f16c57dda5f49cef1648ba829d9bf10cb4010dc: [ u-boot: distro-boot-script: support booti automatic decompression ] For the boards that support "booti automatic decompression", the kernel_addr_load had been set to ${loadaddr} rather than ${ramdisk_addr_r} for fitImage, this is breaking fitImage boot due to overlapping DTB/DTBO addresses. Change it back to boot from ${ramdisk_addr_r} for fitImage. Signed-off-by: Ming Liu (cherry picked from commit 4d6e71f6b40415841d402afdbd54c9c89adf10f5) --- recipes-bsp/u-boot/u-boot-distro-boot/boot.cmd.in | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'recipes-bsp') diff --git a/recipes-bsp/u-boot/u-boot-distro-boot/boot.cmd.in b/recipes-bsp/u-boot/u-boot-distro-boot/boot.cmd.in index 4b84bdd..6969a55 100644 --- a/recipes-bsp/u-boot/u-boot-distro-boot/boot.cmd.in +++ b/recipes-bsp/u-boot/u-boot-distro-boot/boot.cmd.in @@ -73,22 +73,21 @@ else env set setupargs console=tty1 console=${console},${baudrate} consoleblank=0 fi -if test -n ${kernel_comp_addr_r}; then - # use booti automatic decompression - env set kernel_addr_load ${loadaddr} +if test ${kernel_image} = "fitImage"; then + env set kernel_addr_load ${ramdisk_addr_r} env set bootcmd_unzip ';' else - if test ${kernel_image} = "Image.gz" - then + if test -n ${kernel_comp_addr_r}; then + # use booti automatic decompression env set kernel_addr_load ${loadaddr} - env set bootcmd_unzip 'unzip ${kernel_addr_load} ${kernel_addr_r}' - else env set bootcmd_unzip ';' - if test ${kernel_image} = "fitImage" - then - env set kernel_addr_load ${ramdisk_addr_r} + else + if test ${kernel_image} = "Image.gz"; then + env set kernel_addr_load ${loadaddr} + env set bootcmd_unzip 'unzip ${kernel_addr_load} ${kernel_addr_r}' else env set kernel_addr_load ${kernel_addr_r} + env set bootcmd_unzip ';' fi fi fi @@ -102,7 +101,7 @@ then env set fdt_resize true env set set_bootcmd_dtb 'env set bootcmd_dtb "true"' env set set_apply_overlays 'env set apply_overlays "for overlay_file in \"\\${fdt_overlays}\"; do env set fitconf_fdt_overlays \"\\"\\${fitconf_fdt_overlays}#conf-\\${overlay_file}\\"\"; env set overlay_file; done; true"' - env set bootcmd_boot 'echo "Bootargs: \${bootargs}" && bootm ${ramdisk_addr_r}#conf-@@KERNEL_DTB_PREFIX@@\${fdtfile}\${fitconf_fdt_overlays}' + env set bootcmd_boot 'echo "Bootargs: \${bootargs}" && bootm ${kernel_addr_load}#conf-@@KERNEL_DTB_PREFIX@@\${fdtfile}\${fitconf_fdt_overlays}' else env set fdt_resize 'fdt addr ${fdt_addr_r} && fdt resize 0x20000' env set set_bootcmd_dtb 'env set bootcmd_dtb "echo Loading DeviceTree: \\${fdtfile}; ${load_cmd} \\${fdt_addr_r} \\${fdtfile}"' -- cgit v1.2.3