]> git.sur5r.net Git - u-boot/blobdiff - cmd/bootefi.c
efi_loader: Fix configuration table override
[u-boot] / cmd / bootefi.c
index 9526f6c60d72d1d193b50caf80496238042af34b..d20775eccd99c709aab87c20c21afad6f91bcf22 100644 (file)
@@ -215,6 +215,7 @@ static unsigned long do_bootefi_exec(void *efi, void *fdt)
        ulong (*entry)(void *image_handle, struct efi_system_table *st)
                asmlinkage;
        ulong fdt_pages, fdt_size, fdt_start, fdt_end;
+       const efi_guid_t fdt_guid = EFI_FDT_GUID;
        bootm_headers_t img = { 0 };
 
        /*
@@ -233,9 +234,7 @@ static unsigned long do_bootefi_exec(void *efi, void *fdt)
                }
 
                /* Link to it in the efi tables */
-               systab.tables[0].guid = EFI_FDT_GUID;
-               systab.tables[0].table = fdt;
-               systab.nr_tables = 1;
+               efi_install_configuration_table(&fdt_guid, fdt);
 
                /* And reserve the space in the memory map */
                fdt_start = ((ulong)fdt) & ~EFI_PAGE_MASK;
@@ -248,7 +247,7 @@ static unsigned long do_bootefi_exec(void *efi, void *fdt)
                                   EFI_BOOT_SERVICES_DATA, true);
        } else {
                printf("WARNING: Invalid device tree, expect boot to fail\n");
-               systab.nr_tables = 0;
+               efi_install_configuration_table(&fdt_guid, NULL);
        }
 
        /* Load the EFI payload */