diff options
author | Ming Liu <ming.liu@toradex.com> | 2023-03-14 12:39:20 +0100 |
---|---|---|
committer | Max Krummenacher <max.krummenacher@toradex.com> | 2023-04-04 18:00:43 +0200 |
commit | 9d50761711820fc85c1ae81826e338e01045e691 (patch) | |
tree | 5a18ee0819f99719a867024937e73e6552ec6000 | |
parent | bfcb42ac8dbf9beb2f6634751ff6b71dcdd21691 (diff) |
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 <ming.liu@toradex.com>
(cherry picked from commit 4d6e71f6b40415841d402afdbd54c9c89adf10f5)
-rw-r--r-- | recipes-bsp/u-boot/u-boot-distro-boot/boot.cmd.in | 21 |
1 files changed, 10 insertions, 11 deletions
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}"' |