[PATCH] efi_loader: Don't carve out memory reservations too early

Heinrich Schuchardt xypron.glpk at gmx.de
Fri Feb 16 00:38:25 CET 2024



Am 16. Februar 2024 00:25:34 MEZ schrieb Mark Kettenis <kettenis at openbsd.org>:
>Moving the efi_carve_out_dt_rsv() call in commit 1be415b21b2d
>("efi_loader: create memory reservations in ACPI case")
>broke boards that create additional memory reservations in
>ft_board_setup() since it is now called before those additional
>memory reservations are made.  This is the case for the rk3588
>boards and breaks booting OpenBSD on those boards.
>
>Move the call back to its original location and add a call in
>the code path used for ACPI.
>
>Fixes: 1be415b21b2d ("efi_loader: create memory reservations in ACPI case")
>Signed-off-by: Mark Kettenis <kettenis at openbsd.org>
>---
> lib/efi_loader/efi_helper.c | 11 +++++++----
> 1 file changed, 7 insertions(+), 4 deletions(-)
>
>diff --git a/lib/efi_loader/efi_helper.c b/lib/efi_loader/efi_helper.c
>index 5dd9cc876e..58761fae78 100644
>--- a/lib/efi_loader/efi_helper.c
>+++ b/lib/efi_loader/efi_helper.c
>@@ -456,11 +456,11 @@ efi_status_t efi_install_fdt(void *fdt)
> 		return EFI_LOAD_ERROR;
> 	}
> 
>-	/* Create memory reservations as indicated by the device tree */
>-	efi_carve_out_dt_rsv(fdt);
>-
>-	if (CONFIG_IS_ENABLED(GENERATE_ACPI_TABLE))
>+	if (CONFIG_IS_ENABLED(GENERATE_ACPI_TABLE)) {
>+		/* Create memory reservations as indicated by the device tree */

Imagine booting the rk3588 board with ACPI. Wouldn't we miss creating the ft_board_setup() reservations before efi_carve_out_dt_rsv(fdt)?

Best regards

Heinrich

>+		efi_carve_out_dt_rsv(fdt);
> 		return EFI_SUCCESS;
>+	}
> 
> 	/* Prepare device tree for payload */
> 	ret = copy_fdt(&fdt);
>@@ -474,6 +474,9 @@ efi_status_t efi_install_fdt(void *fdt)
> 		return EFI_LOAD_ERROR;
> 	}
> 
>+	/* Create memory reservations as indicated by the device tree */
>+	efi_carve_out_dt_rsv(fdt);
>+
> 	efi_try_purge_kaslr_seed(fdt);
> 
> 	if (CONFIG_IS_ENABLED(EFI_TCG2_PROTOCOL_MEASURE_DTB)) {


More information about the U-Boot mailing list