[PATCH 1/1] efi_loader: ignore device-tree in ACPI case

Heinrich Schuchardt heinrich.schuchardt at canonical.com
Sat Feb 17 11:55:58 CET 2024


If a device-tree is passed to the bootefi command while using ACPI, we
currently only show a warning that the device-tree will be ignored. But we
use that device-tree to create memory reservations.

To be consistent we need to fallback to the internal device-tree.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
---
 lib/efi_loader/efi_helper.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/lib/efi_loader/efi_helper.c b/lib/efi_loader/efi_helper.c
index 5dd9cc876e..e2f547b3cd 100644
--- a/lib/efi_loader/efi_helper.c
+++ b/lib/efi_loader/efi_helper.c
@@ -422,8 +422,11 @@ efi_status_t efi_install_fdt(void *fdt)
 	 * The EBBR spec requires that we have either an FDT or an ACPI table
 	 * but not both.
 	 */
-	if (CONFIG_IS_ENABLED(GENERATE_ACPI_TABLE) && fdt)
+	if (CONFIG_IS_ENABLED(GENERATE_ACPI_TABLE) &&
+	    fdt != EFI_FDT_USE_INTERNAL) {
+		fdt = EFI_FDT_USE_INTERNAL;
 		log_warning("WARNING: Can't have ACPI table and device tree - ignoring DT.\n");
+	}
 
 	if (fdt == EFI_FDT_USE_INTERNAL) {
 		const char *fdt_opt;
-- 
2.43.0



More information about the U-Boot mailing list