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 v4: - Bring in this patch from Heinrich's series - Check the start of the table rather than the end 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 Heinrich Schuchardt (1): smbios: SMBIOS 3.0 (64-bit) Entry Point structure 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 | 37 ++++++++++++-- lib/efi_loader/efi_smbios.c | 14 +++-- lib/smbios.c | 85 +++++++++++++++++++------------ 5 files changed, 101 insertions(+), 41 deletions(-) -- 2.34.1