summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Opaniuk <igor.opaniuk@toradex.com>2020-09-03 18:05:12 +0300
committerIgor Opaniuk <igor.opaniuk@gmail.com>2020-09-07 14:05:34 +0300
commit58ceae1199d540d9cf04f13addd39e3ede0b462d (patch)
tree880789511e1296488b25dd852bf490dc229de8d1
parentf41e59ffc05aaa49315253cfc1ca7cf5fe9eb2c8 (diff)
boot.cmd: add support Image.gz boot image
1. Provide information about kernel image format instead of using that information from U-Boot env. 2. Unpack kernel image before calling boot cmd, in case Image.gz is used. Relates-to: ELB-1372 Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
-rw-r--r--recipes-bsp/u-boot/u-boot-distro-boot/boot.cmd.in15
1 files changed, 12 insertions, 3 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 db4d317..ad79e05 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
@@ -18,7 +18,16 @@ else
fi
test -n ${m4boot} || env set m4boot ';'
test -n ${fdtfile} || env set fdtfile $fdt_file
-test -n ${kernel_image} || env set kernel_image ${boot_file}
+
+env set kernel_image @@KERNEL_IMAGETYPE@@
+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
env set overlays_file "overlays.txt"
env set load_overlay 'load ${devtype} ${devnum}:${distro_bootpart} ${loadaddr} ${overlays_file}; env import -t ${loadaddr} ${filesize}'
@@ -26,9 +35,9 @@ env set apply_overlays 'fdt addr ${fdt_addr_r} && fdt resize 0x20000 && for over
env set uuid_set 'part uuid ${devtype} ${devnum}:2 uuid'
env set emmcargs_set 'env set emmcargs root=PARTUUID=${uuid} ro rootfstype=ext4 rootwait'
env set bootcmd_args 'env set bootargs ${defargs} ${emmcargs} ${setupargs} ${vidargs} ${tdxargs}'
-env set bootcmd_kernel 'load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} ${kernel_image}'
+env set bootcmd_kernel 'load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_load} ${kernel_image}'
env set bootcmd_dtb 'load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${fdtfile} && if test -e ${devtype} ${devnum}:${distro_bootpart} ${overlays_file}; then run load_overlay && run apply_overlays || true;fi || true'
env set bootcmd_boot '@@KERNEL_BOOTCMD@@ ${kernel_addr_r} - ${fdt_addr_r}'
-env set bootcmd_run 'run m4boot; run bootcmd_dtb && run uuid_set && run emmcargs_set && run bootcmd_args && run bootcmd_kernel && run bootcmd_boot'
+env set bootcmd_run 'run m4boot; run bootcmd_dtb && run uuid_set && run emmcargs_set && run bootcmd_args && run bootcmd_kernel && run bootcmd_unzip && run bootcmd_boot'
run bootcmd_run