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.schucha...@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

Reply via email to