[U-Boot] [PATCH v2 06/11] efi_loader: Allow SMBIOS tables in highmem

Alexander Graf
2018-06-14T19:13:50Z

On 14.06.18 21:01, Simon Glass wrote:
> Hi Alex,
>
> On 14 June 2018 at 12:22, Alexander Graf <agraf@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.
>>
>> Signed-off-by: Alexander Graf <agraf@suse.de>
>> ---
>> lib/efi_loader/efi_smbios.c | 11 +++++++++--
>> 1 file changed, 9 insertions(+), 2 deletions(-)
>
> Does that actually work? I thought the addresses in the table were
> always 32-bit?

There is only a single table reference which indeed is 32bit:
se->struct_table_address.

That address however is unused in the EFI case usually, because the
SMBIOS information is already encapsulated in a table, so there's no
need to search through address space for a _DMI_ entry:

https://github.com/mirror/dmidecode/blob/master/dmidecode.c#L5122

Alex