# SPDX-License-Identifier: GPL-2.0-only## IPMI device configuration#menuconfig IPMI_HANDLER tristate 'IPMI top-level message handler' depends on HAS_IOMEM select IPMI_DMI_DECODE if DMI help This enables the central IPMI message handler, required for IPMI to work. IPMI is a standard for managing sensors (temperature, voltage, etc.) in a system. See <file:Documentation/driver-api/ipmi.rst> for more details on the driver. If unsure, say N.config IPMI_DMI_DECODE select IPMI_PLAT_DATA boolconfig IPMI_PLAT_DATA boolif IPMI_HANDLERconfig IPMI_PANIC_EVENT bool 'Generate a panic event to all BMCs on a panic' help When a panic occurs, this will cause the IPMI message handler to, by default, generate an IPMI event describing the panic to each interface registered with the message handler. This is always available, the module parameter for ipmi_msghandler named panic_op can be set to "event" to chose this value, this config simply causes the default value to be set to "event".config IPMI_PANIC_STRING bool 'Generate OEM events containing the panic string' depends on IPMI_PANIC_EVENT help When a panic occurs, this will cause the IPMI message handler to, by default, generate IPMI OEM type f0 events holding the IPMB address of the panic generator (byte 4 of the event), a sequence number for the string (byte 5 of the event) and part of the string (the rest of the event). Bytes 1, 2, and 3 are the normal usage for an OEM event. You can fetch these events and use the sequence numbers to piece the string together. This config parameter sets the default value to generate these events, the module parameter for ipmi_msghandler named panic_op can be set to "string" to chose this value, this config simply causes the default value to be set to "string".config IPMI_DEVICE_INTERFACE tristate 'Device interface for IPMI' help This provides an IOCTL interface to the IPMI message handler so userland processes may use IPMI. It supports poll() and select().config IPMI_SI tristate 'IPMI System Interface handler' select IPMI_PLAT_DATA help Provides a driver for System Interfaces (KCS, SMIC, BT). Currently, only KCS and SMIC are supported. If you are using IPMI, you should probably say "y" here.config IPMI_SI_ASYNC_INIT bool 'Asynchronous initialization of IPMI System Interface' depends on IPMI_SI default n help Offloads individual SMI inits. It speeds up the boot time. It also introduces a very small risk that something else might fail if it depends on synchronous IPMI init.config IPMI_SSIF tristate 'IPMI SMBus handler (SSIF)' depends on I2C help Provides a driver for a SMBus interface to a BMC, meaning that you have a driver that must be accessed over an I2C bus instead of a standard interface. This module requires I2C support.config IPMI_IPMB tristate 'IPMI IPMB interface' depends on I2C && I2C_SLAVE help Provides a driver for a system running right on the IPMB bus. It supports normal system interface messages to a BMC on the IPMB bus, and it also supports direct messaging on the bus using IPMB direct messages. This module requires I2C support.config IPMI_LS2K bool 'Loongson-2K IPMI interface' depends on LOONGARCH select MFD_LS2K_BMC_CORE help Provides a driver for Loongson-2K IPMI interfaces.config IPMI_POWERNV depends on PPC_POWERNV tristate 'POWERNV (OPAL firmware) IPMI interface' help Provides a driver for OPAL firmware-based IPMI interfaces.config IPMI_WATCHDOG tristate 'IPMI Watchdog Timer' help This enables the IPMI watchdog timer.config IPMI_POWEROFF tristate 'IPMI Poweroff' help This enables a function to power off the system with IPMI if the IPMI management controller is capable of this.endif # IPMI_HANDLERconfig IPMI_KCS_BMC tristateconfig ASPEED_KCS_IPMI_BMC depends on ARCH_ASPEED || COMPILE_TEST select IPMI_KCS_BMC select REGMAP_MMIO tristate "Aspeed KCS IPMI BMC driver" help Provides a driver for the KCS (Keyboard Controller Style) IPMI interface found on Aspeed SOCs (AST2400 and AST2500). The driver implements the BMC side of the KCS contorller, it provides the access of KCS IO space for BMC side.config NPCM7XX_KCS_IPMI_BMC depends on ARCH_NPCM || COMPILE_TEST select IPMI_KCS_BMC select REGMAP_MMIO tristate "NPCM KCS IPMI BMC driver" help Provides a driver for the KCS (Keyboard Controller Style) IPMI interface found on Nuvoton NPCM SOCs. The driver implements the BMC side of the KCS contorller, it provides the access of KCS IO space for BMC side. This support is also available as a module. If so, the module will be called kcs_bmc_npcm7xx.config IPMI_KCS_BMC_CDEV_IPMI depends on IPMI_KCS_BMC tristate "IPMI character device interface for BMC KCS devices" help Provides a BMC-side character device implementing IPMI semantics for KCS IPMI devices. Say YES if you wish to expose KCS devices on the BMC for IPMI purposes. This support is also available as a module. The module will be called kcs_bmc_cdev_ipmi.config IPMI_KCS_BMC_SERIO depends on IPMI_KCS_BMC && SERIO tristate "SerIO adaptor for BMC KCS devices" help Adapts the BMC KCS device for the SerIO subsystem. This allows users to take advantage of userspace interfaces provided by SerIO where appropriate. Say YES if you wish to expose KCS devices on the BMC via SerIO interfaces. This support is also available as a module. The module will be called kcs_bmc_serio.config ASPEED_BT_IPMI_BMC depends on ARCH_ASPEED || COMPILE_TEST depends on MFD_SYSCON select REGMAP_MMIO tristate "BT IPMI bmc driver" help Provides a driver for the BT (Block Transfer) IPMI interface found on Aspeed SOCs (AST2400 and AST2500). The driver implements the BMC side of the BT interface.config SSIF_IPMI_BMC tristate "SSIF IPMI BMC driver" depends on I2C && I2C_SLAVE help This enables the IPMI SMBus system interface (SSIF) at the management (BMC) side. The driver implements the BMC side of the SMBus system interface (SSIF).config SSIF_IPMI_BMC_KUNIT_TEST bool "KUnit tests for SSIF IPMI BMC driver" if !KUNIT_ALL_TESTS depends on KUNIT=y depends on SSIF_IPMI_BMC default KUNIT_ALL_TESTS help This option builds unit tests that exercise the SSIF BMC state machine, including request handling, response transmission, and error paths such as aborted or truncated transfers.config IPMB_DEVICE_INTERFACE tristate 'IPMB Interface handler' depends on I2C depends on I2C_SLAVE help Provides a driver for a device (Satellite MC) to receive requests and send responses back to the BMC via the IPMB interface. This module requires I2C support.
# SPDX-License-Identifier: GPL-2.0-only
#
# IPMI device configuration
#
menuconfig IPMI_HANDLER
tristate 'IPMI top-level message handler'
depends on HAS_IOMEM
select IPMI_DMI_DECODE if DMI
help
This enables the central IPMI message handler, required for IPMI
to work.
IPMI is a standard for managing sensors (temperature,
voltage, etc.) in a system.
See <file:Documentation/driver-api/ipmi.rst> for more details on the driver.
If unsure, say N.
config IPMI_DMI_DECODE
select IPMI_PLAT_DATA
bool
config IPMI_PLAT_DATA
bool
if IPMI_HANDLER
config IPMI_PANIC_EVENT
bool 'Generate a panic event to all BMCs on a panic'
help
When a panic occurs, this will cause the IPMI message handler to,
by default, generate an IPMI event describing the panic to each
interface registered with the message handler. This is always
available, the module parameter for ipmi_msghandler named
panic_op can be set to "event" to chose this value, this config
simply causes the default value to be set to "event".
config IPMI_PANIC_STRING
bool 'Generate OEM events containing the panic string'
depends on IPMI_PANIC_EVENT
help
When a panic occurs, this will cause the IPMI message handler to,
by default, generate IPMI OEM type f0 events holding the IPMB
address of the panic generator (byte 4 of the event), a sequence
number for the string (byte 5 of the event) and part of the
string (the rest of the event). Bytes 1, 2, and 3 are the normal
usage for an OEM event. You can fetch these events and use the
sequence numbers to piece the string together. This config
parameter sets the default value to generate these events,
the module parameter for ipmi_msghandler named panic_op can
be set to "string" to chose this value, this config simply
causes the default value to be set to "string".
config IPMI_DEVICE_INTERFACE
tristate 'Device interface for IPMI'
help
This provides an IOCTL interface to the IPMI message handler so
userland processes may use IPMI. It supports poll() and select().
config IPMI_SI
tristate 'IPMI System Interface handler'
select IPMI_PLAT_DATA
help
Provides a driver for System Interfaces (KCS, SMIC, BT).
Currently, only KCS and SMIC are supported. If
you are using IPMI, you should probably say "y" here.
config IPMI_SI_ASYNC_INIT
bool 'Asynchronous initialization of IPMI System Interface'
depends on IPMI_SI
default n
help
Offloads individual SMI inits. It speeds up the boot time.
It also introduces a very small risk that something else might fail
if it depends on synchronous IPMI init.
config IPMI_SSIF
tristate 'IPMI SMBus handler (SSIF)'
depends on I2C
help
Provides a driver for a SMBus interface to a BMC, meaning that you
have a driver that must be accessed over an I2C bus instead of a
standard interface. This module requires I2C support.
config IPMI_IPMB
tristate 'IPMI IPMB interface'
depends on I2C && I2C_SLAVE
help
Provides a driver for a system running right on the IPMB bus.
It supports normal system interface messages to a BMC on the IPMB
bus, and it also supports direct messaging on the bus using
IPMB direct messages. This module requires I2C support.
config IPMI_LS2K
bool 'Loongson-2K IPMI interface'
depends on LOONGARCH
select MFD_LS2K_BMC_CORE
help
Provides a driver for Loongson-2K IPMI interfaces.
config IPMI_POWERNV
depends on PPC_POWERNV
tristate 'POWERNV (OPAL firmware) IPMI interface'
help
Provides a driver for OPAL firmware-based IPMI interfaces.
config IPMI_WATCHDOG
tristate 'IPMI Watchdog Timer'
help
This enables the IPMI watchdog timer.
config IPMI_POWEROFF
tristate 'IPMI Poweroff'
help
This enables a function to power off the system with IPMI if
the IPMI management controller is capable of this.
endif # IPMI_HANDLER
config IPMI_KCS_BMC
tristate
config ASPEED_KCS_IPMI_BMC
depends on ARCH_ASPEED || COMPILE_TEST
select IPMI_KCS_BMC
select REGMAP_MMIO
tristate "Aspeed KCS IPMI BMC driver"
help
Provides a driver for the KCS (Keyboard Controller Style) IPMI
interface found on Aspeed SOCs (AST2400 and AST2500).
The driver implements the BMC side of the KCS contorller, it
provides the access of KCS IO space for BMC side.
config NPCM7XX_KCS_IPMI_BMC
depends on ARCH_NPCM || COMPILE_TEST
select IPMI_KCS_BMC
select REGMAP_MMIO
tristate "NPCM KCS IPMI BMC driver"
help
Provides a driver for the KCS (Keyboard Controller Style) IPMI
interface found on Nuvoton NPCM SOCs.
The driver implements the BMC side of the KCS contorller, it
provides the access of KCS IO space for BMC side.
This support is also available as a module. If so, the module
will be called kcs_bmc_npcm7xx.
config IPMI_KCS_BMC_CDEV_IPMI
depends on IPMI_KCS_BMC
tristate "IPMI character device interface for BMC KCS devices"
help
Provides a BMC-side character device implementing IPMI
semantics for KCS IPMI devices.
Say YES if you wish to expose KCS devices on the BMC for IPMI
purposes.
This support is also available as a module. The module will be
called kcs_bmc_cdev_ipmi.
config IPMI_KCS_BMC_SERIO
depends on IPMI_KCS_BMC && SERIO
tristate "SerIO adaptor for BMC KCS devices"
help
Adapts the BMC KCS device for the SerIO subsystem. This allows users
to take advantage of userspace interfaces provided by SerIO where
appropriate.
Say YES if you wish to expose KCS devices on the BMC via SerIO
interfaces.
This support is also available as a module. The module will be
called kcs_bmc_serio.
config ASPEED_BT_IPMI_BMC
depends on ARCH_ASPEED || COMPILE_TEST
depends on MFD_SYSCON
select REGMAP_MMIO
tristate "BT IPMI bmc driver"
help
Provides a driver for the BT (Block Transfer) IPMI interface
found on Aspeed SOCs (AST2400 and AST2500). The driver
implements the BMC side of the BT interface.
config SSIF_IPMI_BMC
tristate "SSIF IPMI BMC driver"
depends on I2C && I2C_SLAVE
help
This enables the IPMI SMBus system interface (SSIF) at the
management (BMC) side.
The driver implements the BMC side of the SMBus system
interface (SSIF).
config SSIF_IPMI_BMC_KUNIT_TEST
bool "KUnit tests for SSIF IPMI BMC driver" if !KUNIT_ALL_TESTS
depends on KUNIT=y
depends on SSIF_IPMI_BMC
default KUNIT_ALL_TESTS
help
This option builds unit tests that exercise the SSIF BMC state
machine, including request handling, response transmission,
and error paths such as aborted or truncated transfers.
config IPMB_DEVICE_INTERFACE
tristate 'IPMB Interface handler'
depends on I2C
depends on I2C_SLAVE
help
Provides a driver for a device (Satellite MC) to
receive requests and send responses back to the BMC via
the IPMB interface. This module requires I2C support.