u-boot/boot
Quentin Schulz 881f0b77dc image: apply FDTOs on FDT image node without a load property
A FIT image which is NOT using -E when created by mkimage - that is with
image data within the FIT - will fail to apply FDTO if the base FDT
image node does not specify a load property (which points to an address
in DRAM). This is because we check that the FDT address we want to apply
overlay to (i.e. modify and likely increase in size) is not inside the
FIT and give up otherwise. This is assumed necessary because we may then
overwrite other data when applying in-place.

However, we can do better than giving up: relocating the FDT in another
place in DRAM where it's safe to increase its size and apply FDTOs.

While at it, do not discriminate anymore on whether the data is within
the FIT data address space - that is FIT images created with mkimage -E
- as that still may be susceptible to unintended data overwrites as
mkimage -E simply concatenates all blobs after the FIT. If the FDT blob
isn't the last, it'll result in overwriting later blobs when resizing.

The side effect is that the load property in the FIT is only
temporarily used to load the FDT but then relocated right before we
start applying overlays.

Suggested-by: Marek Vasut <marex@denx.de>
Reviewed-by: Marek Vasut <marex@denx.de>
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-02-04 11:57:36 -06:00
..
android_ab.c common: android_ab: fix slot suffix for abc block 2024-10-24 09:45:55 +02:00
boot_fit.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
bootdev-uclass.c Merge patch series "bootstd: Support recording images" 2025-01-15 19:27:14 -06:00
bootflow.c bootstd: Add a simple command to list images 2025-01-15 08:48:42 -06:00
bootflow_internal.h bootstd: Support creating a boot menu 2023-01-16 18:26:50 -05:00
bootflow_menu.c boot: bootflow_menu: fix crash for EFI BOOTMGR global bootmeth 2024-06-20 11:41:43 -06:00
bootm.c lmb: Remove lmb_reserve_flags() 2024-12-30 13:21:55 -06:00
bootm_os.c lmb: make LMB memory map persistent and global 2024-09-03 14:08:50 -06:00
bootmeth-uclass.c Update bootmeth_alloc_other() to record images 2025-01-15 08:48:42 -06:00
bootmeth_android.c bootstd: android: Allow boot with AVB failures when unlocked 2025-01-23 15:23:05 +01:00
bootmeth_android.h bootstd: Add a bootmeth for Android 2024-07-18 13:51:30 -06:00
bootmeth_cros.c bootstd: Update cros bootmeth to record images 2025-01-15 08:48:42 -06:00
bootmeth_cros.h bootstd: cros: Bring in some ChromiumOS structures 2023-08-10 18:34:54 -06:00
bootmeth_efi.c bootmeth_efi: Support PXE booting 2025-01-26 11:06:57 +01:00
bootmeth_efi_mgr.c bootmeth: Update the read_file() method to include a type 2025-01-15 08:48:42 -06:00
bootmeth_extlinux.c Merge patch series "bootstd: Support recording images" 2025-01-15 19:27:14 -06:00
bootmeth_pxe.c boot: Update pxe bootmeth to record images 2025-01-15 08:48:42 -06:00
bootmeth_qfw.c bootmeth: Update the read_file() method to include a type 2025-01-15 08:48:42 -06:00
bootmeth_sandbox.c bootmeth: Update the read_file() method to include a type 2025-01-15 08:48:42 -06:00
bootmeth_script.c Update bootmeth_alloc_other() to record images 2025-01-15 08:48:42 -06:00
bootretry.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
bootstd-uclass.c bootstd: Move the bootflow list into an alist 2025-01-15 08:48:42 -06:00
cedit.c boot: cedit: include u-boot/schedule.h 2024-10-23 06:52:38 +02:00
common_fit.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
expo.c expo: Use standard numbering for save and discard 2024-10-18 14:10:22 -06:00
expo_build.c expo: Drop scene_title_set() 2024-10-18 14:10:22 -06:00
expo_build_cb.c x86: coreboot: Allow building an expo for editing CMOS config 2024-11-03 21:27:12 -06:00
fdt_region.c doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
fdt_simplefb.c boot: fdt_simplefb: Remove conditional compilation checks for VIDEO Kconfig 2024-10-22 19:54:08 +02:00
fdt_support.c common: fdt: hand over original fdt bootargs into board chosen handler 2025-01-14 15:41:56 -06:00
image-android-dt.c global: Use CONFIG_XPL_BUILD instead of CONFIG_SPL_BUILD 2024-10-11 11:44:48 -06:00
image-android.c boot: android: Check kcmdline's for NULL in android_image_get_kernel() 2025-01-23 15:19:37 +01:00
image-board.c Merge patch series "upl: Prerequite patches for updated spec" 2025-01-22 17:08:47 -06:00
image-cipher.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
image-fdt.c lmb: Remove lmb_alloc_base_flags() 2024-12-30 13:21:55 -06:00
image-fit-sig.c image-fit-sig: Remove padding check 2024-10-21 17:52:52 -06:00
image-fit.c image: apply FDTOs on FDT image node without a load property 2025-02-04 11:57:36 -06:00
image-host.c Create a new boot/ directory 2021-11-11 19:01:56 -05:00
image-pre-load.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
image-sig.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
image.c cmd: bootm: add ELF file support 2024-07-05 13:57:02 -06:00
Kconfig vbe: Add an implementation of VBE-ABrec 2025-02-03 16:01:36 -06:00
Makefile vbe: Add an implementation of VBE-ABrec 2025-02-03 16:01:36 -06:00
prog_boot.c bootstd: Introduce programmatic boot 2023-12-13 11:51:24 -05:00
pxe_utils.c boot: Update extlinux pxe_getfile_func() to include type 2025-01-15 08:48:42 -06:00
scene.c expo: Drop scene_title_set() 2024-10-18 14:10:22 -06:00
scene_internal.h expo: Allow menu items to have values 2024-10-18 14:10:22 -06:00
scene_menu.c expo: Support menu-item values in cedit 2024-10-18 14:10:22 -06:00
scene_textline.c expo: Place menu items to the right of all labels 2024-10-18 14:10:22 -06:00
upl_common.c upl: Add support for reading a upl handoff 2024-08-09 16:03:19 -06:00
upl_common.h upl: Add support for reading a upl handoff 2024-08-09 16:03:19 -06:00
upl_read.c upl: fix parsing of DT property 2024-11-14 18:14:06 -06:00
upl_write.c upl: Add support for writing a upl handoff 2024-08-09 16:03:20 -06:00
vbe.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
vbe_abrec.c vbe: Add an implementation of VBE-ABrec 2025-02-03 16:01:36 -06:00
vbe_abrec.h vbe: Add an implementation of VBE-ABrec 2025-02-03 16:01:36 -06:00
vbe_abrec_fw.c vbe: Add an implementation of VBE-ABrec 2025-02-03 16:01:36 -06:00
vbe_common.c vbe: Add an implementation of VBE-ABrec 2025-02-03 16:01:36 -06:00
vbe_common.h vbe: Add an implementation of VBE-ABrec 2025-02-03 16:01:36 -06:00
vbe_request.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00
vbe_simple.c Merge patch series "vbe: Series part F" 2025-01-22 11:21:58 -06:00
vbe_simple.h vbe: Start a common header file 2025-01-22 09:47:49 -06:00
vbe_simple_fw.c vbe: Update simple-fw to support using the SPL loader 2025-01-22 09:47:50 -06:00
vbe_simple_os.c Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" 2024-05-20 13:35:03 -06:00