summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Reinauer <reinauer@chromium.org>2012-04-02 13:30:10 -0700
committerPatrick Georgi <patrick@georgi-clan.de>2012-04-03 19:35:26 +0200
commit3d7c6770c4e3db539b2b0ef6088977922ef8b924 (patch)
tree36153ada7107b3128b720b7f309abee227bba5c4
parent4a2daf6a99dcdcf177bf9e0d630fec8b5b65ca30 (diff)
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>
-rw-r--r--src/include/smbios.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/include/smbios.h b/src/include/smbios.h
index f13d6217db..1210f0f123 100644
--- a/src/include/smbios.h
+++ b/src/include/smbios.h
@@ -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;