[U-Boot] [PATCH v4 06/21] efi_loader: Allow SMBIOS tables in highmem

Simon Glass sjg at chromium.org
Thu Jun 21 02:01:55 UTC 2018


Hi Alex,

On 18 June 2018 at 09:23, Alexander Graf <agraf at suse.de> wrote:
> We try hard to make sure that SMBIOS tables live in the lower 32bit.
> However, when we can not find any space at all there, we should not
> error out but instead just fall back to map them in the full address
> space instead.

Does this actually happen?

>
> Signed-off-by: Alexander Graf <agraf at suse.de>
> ---
>  lib/efi_loader/efi_smbios.c | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/lib/efi_loader/efi_smbios.c b/lib/efi_loader/efi_smbios.c
> index 7c3fc8af0b..932f7582ec 100644
> --- a/lib/efi_loader/efi_smbios.c
> +++ b/lib/efi_loader/efi_smbios.c
> @@ -26,8 +26,15 @@ efi_status_t efi_smbios_register(void)
>         /* Reserve 4kiB page for SMBIOS */
>         ret = efi_allocate_pages(EFI_ALLOCATE_MAX_ADDRESS,
>                                  EFI_RUNTIME_SERVICES_DATA, 1, &dmi);
> -       if (ret != EFI_SUCCESS)
> -               return ret;
> +
> +       if (ret != EFI_SUCCESS) {
> +               /* Could not find space in lowmem, use highmem instead */
> +               ret = efi_allocate_pages(EFI_ALLOCATE_ANY_PAGES,
> +                                        EFI_RUNTIME_SERVICES_DATA, 1, &dmi);
> +
> +               if (ret != EFI_SUCCESS)
> +                       return ret;
> +       }
>
>         /*
>          * Generate SMBIOS tables - we know that efi_allocate_pages() returns
> --
> 2.12.3
>

Regards,
Simon


More information about the U-Boot mailing list