
When the malloc() region extends beyond 4GB on ARM we may end up with an SMBIOS table in that region.
Add support for writing an SMBIOS3 table, which supports a 64-bit address.
Note that this problem does not happen on x86 since it requires the tables to be placed just below 1MB in memory, unless CONFIG_BLOBLIST_TABLES is enabled.
Changes in v2: - Check the end of the table rather than the start. - Add a new patch to correct gd_smbios_start() - Add a note about why unmap_system() is called
Simon Glass (6): smbios: Refactor 32-bit code into an else statement smbios: Move the rest of the SMBIOS2 code smbios: Use SMBIOS 3.0 to support an address above 4GB smbios: Correct gd_smbios_start() efi: Use the correct GUID for the SMBIOS table smbios: Require the caller to align the SMBIOS table
include/asm-generic/global_data.h | 2 +- include/efi_api.h | 4 ++ include/smbios.h | 27 +++++++++-- lib/efi_loader/efi_smbios.c | 14 ++++-- lib/smbios.c | 79 ++++++++++++++++++------------- 5 files changed, 85 insertions(+), 41 deletions(-)