summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Opaniuk <igor.opaniuk@toradex.com>2020-05-26 12:53:16 +0300
committerIgor Opaniuk <igor.opaniuk@toradex.com>2020-06-04 17:19:51 +0300
commit7b24a04860805abad1a3f5c850ee07fefa6272ac (patch)
tree5d05d7bd1bc97e5188508de197f88b3971a7547e
parentc648af29199e2f8dedcaf6b7c3c61a2dcf6a579b (diff)
boot.cmd: add support for DT overlays
Add support for DT overlays, which are obtained from overlays.txt stored in bootfs. Relates-to: ELB-2722 Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
-rw-r--r--recipes-bsp/u-boot/u-boot-distro-boot/boot.cmd.in6
1 files changed, 5 insertions, 1 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 9b9a9ef..952f58a 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
@@ -20,11 +20,15 @@ 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 overlays_file "overlays.txt"
+env set load_overlay 'load ${devtype} ${devnum}:${distro_bootpart} ${loadaddr} ${overlays_file}; env import -t ${loadaddr} ${filesize}'
+env set apply_overlays 'fdt addr ${fdt_addr_r} && fdt resize 0x20000 && for overlay_file in ${fdt_overlays}; do echo "Applying Overlay: ${overlay_file}" && load ${devtype} ${devnum}:${distro_bootpart} ${loadaddr} ${overlay_file} && fdt apply ${loadaddr}; done;'
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_dtb 'load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${fdtfile}'
+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'
+
run bootcmd_run