smbios: add support for onboard devices extended information

Add support for type 41 smbios tables (to be used by board
specific smbios handlers)

Change-Id: Id6af5e4b1f5c5c78c63759d24fdc7cf8537ae5e6
Signed-off-by: Duncan Laurie <dlaurie@google.com>
Signed-off-by: Stefan Reinauer <reinauer@google.com>
Reviewed-on: http://review.coreboot.org/843
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
This commit is contained in:
Stefan Reinauer 2012-04-02 13:30:10 -07:00 committed by Patrick Georgi
parent 4a2daf6a99
commit 3d7c6770c4
1 changed files with 29 additions and 0 deletions

View File

@ -32,6 +32,7 @@ typedef enum {
SMBIOS_MEMORY_DEVICE=17,
SMBIOS_MEMORY_ARRAY_MAPPED_ADDRESS=19,
SMBIOS_SYSTEM_BOOT_INFORMATION=32,
SMBIOS_ONBOARD_DEVICES_EXTENDED_INFORMATION=41,
SMBIOS_END_OF_TABLE=127,
} smbios_struct_type_t;
@ -187,6 +188,34 @@ struct smbios_type32 {
u8 eos[2];
} __attribute__((packed));
typedef enum {
SMBIOS_DEVICE_TYPE_OTHER = 0x01,
SMBIOS_DEVICE_TYPE_UNKNOWN,
SMBIOS_DEVICE_TYPE_VIDEO,
SMBIOS_DEVICE_TYPE_SCSI,
SMBIOS_DEVICE_TYPE_ETHERNET,
SMBIOS_DEVICE_TYPE_TOKEN_RING,
SMBIOS_DEVICE_TYPE_SOUND,
SMBIOS_DEVICE_TYPE_PATA,
SMBIOS_DEVICE_TYPE_SATA,
SMBIOS_DEVICE_TYPE_SAS,
} smbios_onboard_device_type;
struct smbios_type41 {
u8 type;
u8 length;
u16 handle;
u8 reference_designation;
u8 device_type: 7;
u8 device_status: 1;
u8 device_type_instance;
u16 segment_group_number;
u8 bus_number;
u8 function_number: 3;
u8 device_number: 5;
char eos[2];
} __attribute__((packed));
struct smbios_type127 {
u8 type;
u8 length;