UBOOT-STM32MP-EXTLINUX: fix boot.cmd for overlay
By default U-Boot reserve overlay sizee with 4KB padding, sometime it is
not enought and it is normal.
The caller NEED to reserved enought memory before to apply overlay
by usisng the <extrasize> parameter.
fdt resize [<extrasize>]
- Resize fdt to size + padding to 4k addr + some optional <extrasize> if needed
A correct value cannot be proposed (it is depending of the overlay size)
but at least you must reserved the size of the loaded overlay dtbo file
=> ${filesize} (this variable automatically updated after a load command)
Change-Id: Ib37f2778bd843436b0baddb67a7a4fd5c799b749
Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
This commit is contained in:
parent
e89318bdd6
commit
f724e2f9e7
|
|
@ -8,7 +8,7 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
|
|||
|
||||
SRC_URI = "file://boot.scr.cmd"
|
||||
|
||||
PV = "3.1"
|
||||
PV = "3.1.1"
|
||||
|
||||
inherit kernel-arch extlinuxconf-stm32mp
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,9 @@ env set boot_m4fw 'rproc init; rproc load 0 ${m4fw_addr} ${filesize}; rproc star
|
|||
env set scan_m4fw 'if test -e ${devtype} ${devnum}:${distro_bootpart} ${m4fw_name};then echo Found M4 FW $m4fw_name; if load ${devtype} ${devnum}:${distro_bootpart} ${m4fw_addr} ${m4fw_name}; then run boot_m4fw; fi; fi;'
|
||||
|
||||
# management of overlay
|
||||
env set scan_overlays 'if test -e ${devtype} ${devnum}:${distro_bootpart} /overlays/overlays.txt; then env set fdt_addr ${fdt_addr_r}; if load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr} ${fdtfile}; then fdt addr ${fdt_addr}; fdt resize; setexpr fdtovaddr ${fdt_addr} + C0000; if load ${devtype} ${devnum}:${distro_bootpart} ${fdtovaddr} /overlays/overlays.txt && env import -t ${fdtovaddr} ${filesize} && test -n ${overlay}; then echo loaded overlay.txt: ${overlay}; for ov in ${overlay}; do echo overlaying ${ov}...; load ${devtype} ${devnum}:${distro_bootpart} ${fdtovaddr} /overlays/${ov}.dtbo && fdt apply ${fdtovaddr}; done; fi; fi; fi;'
|
||||
env set ov_init 'load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${fdtfile} && env set fdt_addr ${fdt_addr_r} && fdt addr ${fdt_addr} && setexpr fdtovaddr ${fdt_addr} + C0000'
|
||||
env set ov_apply 'test -n ${fdtovaddr} && test -n ${overlay} && for ov in ${overlay}; do echo overlaying ${ov}...; load ${devtype} ${devnum}:${distro_bootpart} ${fdtovaddr} /overlays/${ov}.dtbo && fdt resize ${filesize} && fdt apply ${fdtovaddr}; done'
|
||||
env set scan_overlays 'if test -e ${devtype} ${devnum}:${distro_bootpart} /overlays/overlays.txt && load ${devtype} ${devnum}:${distro_bootpart} ${loadaddr} /overlays/overlays.txt && env import -t ${loadaddr} ${filesize}; then echo loaded overlay.txt: ${overlay}; run ov_init; run ov_apply; fi'
|
||||
|
||||
# Update the DISTRO command to search in sub-directory and load M4 firmware
|
||||
env set boot_prefixes "/${boot_device}${boot_instance}_"
|
||||
|
|
|
|||
Loading…
Reference in New Issue