diff options
author | Patrick Rudolph <patrick.rudolph@9elements.com> | 2018-03-27 16:17:12 +0200 |
---|---|---|
committer | Philipp Deppenwiese <zaolin.daisuki@gmail.com> | 2018-07-19 13:50:28 +0000 |
commit | fe98e90671b1ff06e924ae09062814050bdb3996 (patch) | |
tree | fde13edbef37b6fc2267b20a3cab78138ee4de5f /src/include | |
parent | 53485124513a76ebe85a80f59e8dff9915f518bd (diff) |
arch/x86/smbios: Add support for table 38
Add support for SMBIOS table 'IPMI Device Information' and use it on
HP Compaq 8200 Elite SFF.
Tested on HP Compaq 8200. dmidecode prints the table and sensors-detect scans
for IPMI compatible devices.
Change-Id: I66b4c4658da9d44941430d8040384d022d76f51e
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-on: https://review.coreboot.org/25386
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
Reviewed-by: Philipp Deppenwiese <zaolin.daisuki@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/smbios.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/include/smbios.h b/src/include/smbios.h index 8fe507ea53..631a1a59be 100644 --- a/src/include/smbios.h +++ b/src/include/smbios.h @@ -26,6 +26,12 @@ int smbios_add_string(u8 *start, const char *str); int smbios_string_table_len(u8 *start); /* Used by mainboard to add an on-board device */ +enum smbios_bmc_interface_type; +int smbios_write_type38(unsigned long *current, int *handle, + const enum smbios_bmc_interface_type interface_type, + const u8 ipmi_rev, const u8 i2c_addr, const u8 nv_addr, + const u64 base_addr, const u8 base_modifier, + const u8 irq); int smbios_write_type41(unsigned long *current, int *handle, const char *name, u8 instance, u16 segment, u8 bus, u8 device, u8 function); @@ -216,6 +222,7 @@ typedef enum { SMBIOS_MEMORY_DEVICE = 17, SMBIOS_MEMORY_ARRAY_MAPPED_ADDRESS = 19, SMBIOS_SYSTEM_BOOT_INFORMATION = 32, + SMBIOS_IPMI_DEVICE_INFORMATION = 38, SMBIOS_ONBOARD_DEVICES_EXTENDED_INFORMATION = 41, SMBIOS_END_OF_TABLE = 127, } smbios_struct_type_t; @@ -497,6 +504,13 @@ struct smbios_type38 { u8 irq; } __packed; +enum smbios_bmc_interface_type { + SMBIOS_BMC_INTERFACE_UNKNOWN = 0, + SMBIOS_BMC_INTERFACE_KCS, + SMBIOS_BMC_INTERFACE_SMIC, + SMBIOS_BMC_INTERFACE_BLOCK, +}; + typedef enum { SMBIOS_DEVICE_TYPE_OTHER = 0x01, SMBIOS_DEVICE_TYPE_UNKNOWN, |