[U-Boot] [PATCH] [U-boot]: Change FDT memory typpe from runtime data to acpi reclaim

Ilias Apalodimas ilias.apalodimas at linaro.org
Thu Apr 11 19:41:16 UTC 2019


Hi Heinrich,
> On 4/11/19 8:39 PM, Ilias Apalodimas wrote:
> >Following Ard's suggestion:
> >Runtime data sections are intended for data that is used by the runtime
> >services implementations.
> >Let's change they type to EFI_ACPI_RECLAIM_MEMORY
> >
> >Suggested-by: Ard Biesheuvel <ard.biesheuvel at linaro.org>
> >Signed-off-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>
> >---
> >  cmd/bootefi.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> >diff --git a/cmd/bootefi.c b/cmd/bootefi.c
> >index 3619a20e6433..b54181909aff 100644
> >--- a/cmd/bootefi.c
> >+++ b/cmd/bootefi.c
> >@@ -111,13 +111,13 @@ static efi_status_t copy_fdt(void **fdtp)
> >  	new_fdt_addr = (uintptr_t)map_sysmem(fdt_ram_start + 0x7f00000 +
> >  					     fdt_size, 0);
> >  	ret = efi_allocate_pages(EFI_ALLOCATE_MAX_ADDRESS,
> >-				 EFI_RUNTIME_SERVICES_DATA, fdt_pages,
> >+				 EFI_ACPI_RECLAIM_MEMORY, fdt_pages,
> 
> GRUB uses EfiLoaderCode when installing its modified version of the FDT.
> 
> The "Embedded Base Boot Requirements (EBBR) Specification, Release v1.0"
> does not require ACPI support. Can we expect EfiACPIReclaimMemory to be
> supported if we do not have any ACPI table?
> 
> How about functions efi_smbios_register() and efi_acpi_register()?
> 
> How about systab.tables assigned in efi_initialize_system_table()? Which
> of the addresses in systab.tables should be updated upon relocation.
> 
> The EFI Spec is really hazy: "A pointer to the table associated with
> VendorGuid. Whether this pointer is a physical address or a
> virtual address during runtime is determined by the VendorGuid."
> 
> The FDT_TABLE_GUID or DEVICE_TREE_GUID as Linux calls it is not defined
> in the UEFI spec. So we can marvel about expected behavior. Is there any
> other document specifying it?

What about using EFI_BOOT_SERVICES_DATA instead of EFI_ACPI_RECLAIM_MEMORY?
This still fixes the issue and doesn't cause any of the potential problems you
mentioned

Thanks
/Ilias


More information about the U-Boot mailing list