IPMI KCS driver
The driver can be found in src/drivers/ipmi/
. It works with BMC that provide
a KCS I/O interface as specified in the IPMI standard.
The driver detects the IPMI version, reserves the I/O space in coreboot’s resource allocator and writes the required ACPI and SMBIOS tables.
For developers
To use the driver, select the IPMI_KCS
Kconfig and add the following PNP
device under the LPC bridge device (in example for the KCS at 0xca2):
chip drivers/ipmi
device pnp ca2.0 on end # IPMI KCS
end
Note: The I/O base address needs to be aligned to 2.
The following registers can be set:
have_nv_storage
Boolean
If true
nv_storage_device_address
will be added to SMBIOS type 38.
nv_storage_device_address
Integer
The NV storage address as defined in SMBIOS spec for type 38.
bmc_i2c_address
Integer
The i2c address of the BMC. zero if not applicable.
have_apic
Boolean
If true the
apic_interrupt
will be added to SPMI table.
apic_interrupt
Integer
The APIC interrupt used to notify about a change on the KCS.
have_gpe
Boolean
If true the
gpe_interrupt
will be added to SPMI table.
gpe_interrupt
Integer
The bit in GPE (SCI) used to notify about a change on the KCS.
wait_for_bmc
Boolean
Wait for BMC to boot. This can be used if the BMC takes a long time to boot after PoR:
AST2400 on Supermicro X11SSH: 34 s
bmc_boot_timeout
Integer
The timeout in seconds to wait for the IPMI service to be loaded. Will be used if wait_for_bmc is true.