mirror of
https://github.com/torvalds/linux.git
synced 2024-12-29 14:21:47 +00:00
dd2bc5cc9e
The SMBus system interface (SSIF) IPMI BMC driver can be used to perform in-band IPMI communication with their host in management (BMC) side. Thanks Dan for the copy_from_user() fix in the link below. Link: https://lore.kernel.org/linux-arm-kernel/20220310114119.13736-4-quan@os.amperecomputing.com/ Signed-off-by: Quan Nguyen <quan@os.amperecomputing.com> Message-Id: <20221004093106.1653317-2-quan@os.amperecomputing.com> Signed-off-by: Corey Minyard <cminyard@mvista.com>
190 lines
5.9 KiB
Plaintext
190 lines
5.9 KiB
Plaintext
# 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_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_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 REGMAP && REGMAP_MMIO && MFD_SYSCON
|
|
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 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.
|