• Ard Biesheuvel's avatar
    dmi: add support for SMBIOS 3.0 64-bit entry point · fc430262
    Ard Biesheuvel authored
    The DMTF SMBIOS reference spec v3.0.0 defines a new 64-bit entry point,
    which enables support for SMBIOS structure tables residing at a physical
    offset over 4 GB. This is especially important for upcoming arm64
    platforms whose system RAM resides entirely above the 4 GB boundary.
    
    For the UEFI case, this code attempts to detect the new SMBIOS 3.0
    header magic at the offset passed in the SMBIOS3_TABLE_GUID UEFI
    configuration table. If this configuration table is not provided, or
    if we fail to parse the header, we fall back to using the legacy
    SMBIOS_TABLE_GUID configuration table. This is in line with the spec,
    that allows both configuration tables to be provided, but mandates that
    they must point to the same structure table, unless the version pointed
    to by the 64-bit entry point is a superset of the 32-bit one.
    
    For the non-UEFI case, the detection logic is modified to look for the
    SMBIOS 3.0 header magic before it looks for the legacy header magic.
    
    Note that this patch is based on version 3.0.0d [draft] of the
    specification, which is expected not to deviate from the final version
    in ways that would affect the correctness of this implementation.
    Tested-by: default avatarSuravee Suthikulpanit <suravee.suthikulpanit@amd.com>
    Acked-by: default avatarLeif Lindholm <leif.lindholm@linaro.org>
    Tested-by: default avatarLeif Lindholm <leif.lindholm@linaro.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Tony Luck <tony.luck@intel.com>
    Acked-by: default avatarMatt Fleming <matt.fleming@intel.com>
    Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
    fc430262
dmi_scan.c 23 KB