arch/x86/smbios: Add generation of type 20 table
If available, use data from MEMINFO CBMEM table and saved handles from type 17/19 tables to generate type 20 (Memory Device Mapped Address) SMBIOS table. Windows 10/11 and some other OSes use this table to report the total memory available on a given device. Change-Id: I2574d6209d973a8e7f112eb3ef61f5d26986e47b Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/58271 Reviewed-by: Angel Pons <th3fanbus@gmail.com> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
committed by
Felix Held
parent
291294d137
commit
d1c1afdf57
@@ -247,6 +247,7 @@ typedef enum {
|
||||
SMBIOS_PHYS_MEMORY_ARRAY = 16,
|
||||
SMBIOS_MEMORY_DEVICE = 17,
|
||||
SMBIOS_MEMORY_ARRAY_MAPPED_ADDRESS = 19,
|
||||
SMBIOS_MEMORY_DEVICE_MAPPED_ADDRESS = 20,
|
||||
SMBIOS_SYSTEM_BOOT_INFORMATION = 32,
|
||||
SMBIOS_IPMI_DEVICE_INFORMATION = 38,
|
||||
SMBIOS_ONBOARD_DEVICES_EXTENDED_INFORMATION = 41,
|
||||
@@ -880,6 +881,20 @@ struct smbios_type19 {
|
||||
u8 eos[2];
|
||||
} __packed;
|
||||
|
||||
struct smbios_type20 {
|
||||
struct smbios_header header;
|
||||
u32 addr_start;
|
||||
u32 addr_end;
|
||||
u16 memory_device_handle;
|
||||
u16 memory_array_mapped_address_handle;
|
||||
u8 partition_row_pos;
|
||||
u8 interleave_pos;
|
||||
u8 interleave_depth;
|
||||
u64 ext_addr_start;
|
||||
u64 ext_addr_end;
|
||||
u8 eos[2];
|
||||
} __packed;
|
||||
|
||||
struct smbios_type32 {
|
||||
struct smbios_header header;
|
||||
u8 reserved[6];
|
||||
|
Reference in New Issue
Block a user