162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci# 362306a36Sopenharmony_ci# IPMI device configuration 462306a36Sopenharmony_ci# 562306a36Sopenharmony_ci 662306a36Sopenharmony_cimenuconfig IPMI_HANDLER 762306a36Sopenharmony_ci tristate 'IPMI top-level message handler' 862306a36Sopenharmony_ci depends on HAS_IOMEM 962306a36Sopenharmony_ci select IPMI_DMI_DECODE if DMI 1062306a36Sopenharmony_ci help 1162306a36Sopenharmony_ci This enables the central IPMI message handler, required for IPMI 1262306a36Sopenharmony_ci to work. 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci IPMI is a standard for managing sensors (temperature, 1562306a36Sopenharmony_ci voltage, etc.) in a system. 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci See <file:Documentation/driver-api/ipmi.rst> for more details on the driver. 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci If unsure, say N. 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ciconfig IPMI_DMI_DECODE 2262306a36Sopenharmony_ci select IPMI_PLAT_DATA 2362306a36Sopenharmony_ci bool 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ciconfig IPMI_PLAT_DATA 2662306a36Sopenharmony_ci bool 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ciif IPMI_HANDLER 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ciconfig IPMI_PANIC_EVENT 3162306a36Sopenharmony_ci bool 'Generate a panic event to all BMCs on a panic' 3262306a36Sopenharmony_ci help 3362306a36Sopenharmony_ci When a panic occurs, this will cause the IPMI message handler to, 3462306a36Sopenharmony_ci by default, generate an IPMI event describing the panic to each 3562306a36Sopenharmony_ci interface registered with the message handler. This is always 3662306a36Sopenharmony_ci available, the module parameter for ipmi_msghandler named 3762306a36Sopenharmony_ci panic_op can be set to "event" to chose this value, this config 3862306a36Sopenharmony_ci simply causes the default value to be set to "event". 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ciconfig IPMI_PANIC_STRING 4162306a36Sopenharmony_ci bool 'Generate OEM events containing the panic string' 4262306a36Sopenharmony_ci depends on IPMI_PANIC_EVENT 4362306a36Sopenharmony_ci help 4462306a36Sopenharmony_ci When a panic occurs, this will cause the IPMI message handler to, 4562306a36Sopenharmony_ci by default, generate IPMI OEM type f0 events holding the IPMB 4662306a36Sopenharmony_ci address of the panic generator (byte 4 of the event), a sequence 4762306a36Sopenharmony_ci number for the string (byte 5 of the event) and part of the 4862306a36Sopenharmony_ci string (the rest of the event). Bytes 1, 2, and 3 are the normal 4962306a36Sopenharmony_ci usage for an OEM event. You can fetch these events and use the 5062306a36Sopenharmony_ci sequence numbers to piece the string together. This config 5162306a36Sopenharmony_ci parameter sets the default value to generate these events, 5262306a36Sopenharmony_ci the module parameter for ipmi_msghandler named panic_op can 5362306a36Sopenharmony_ci be set to "string" to chose this value, this config simply 5462306a36Sopenharmony_ci causes the default value to be set to "string". 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ciconfig IPMI_DEVICE_INTERFACE 5762306a36Sopenharmony_ci tristate 'Device interface for IPMI' 5862306a36Sopenharmony_ci help 5962306a36Sopenharmony_ci This provides an IOCTL interface to the IPMI message handler so 6062306a36Sopenharmony_ci userland processes may use IPMI. It supports poll() and select(). 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ciconfig IPMI_SI 6362306a36Sopenharmony_ci tristate 'IPMI System Interface handler' 6462306a36Sopenharmony_ci select IPMI_PLAT_DATA 6562306a36Sopenharmony_ci help 6662306a36Sopenharmony_ci Provides a driver for System Interfaces (KCS, SMIC, BT). 6762306a36Sopenharmony_ci Currently, only KCS and SMIC are supported. If 6862306a36Sopenharmony_ci you are using IPMI, you should probably say "y" here. 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ciconfig IPMI_SSIF 7162306a36Sopenharmony_ci tristate 'IPMI SMBus handler (SSIF)' 7262306a36Sopenharmony_ci depends on I2C 7362306a36Sopenharmony_ci help 7462306a36Sopenharmony_ci Provides a driver for a SMBus interface to a BMC, meaning that you 7562306a36Sopenharmony_ci have a driver that must be accessed over an I2C bus instead of a 7662306a36Sopenharmony_ci standard interface. This module requires I2C support. 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ciconfig IPMI_IPMB 7962306a36Sopenharmony_ci tristate 'IPMI IPMB interface' 8062306a36Sopenharmony_ci depends on I2C && I2C_SLAVE 8162306a36Sopenharmony_ci help 8262306a36Sopenharmony_ci Provides a driver for a system running right on the IPMB bus. 8362306a36Sopenharmony_ci It supports normal system interface messages to a BMC on the IPMB 8462306a36Sopenharmony_ci bus, and it also supports direct messaging on the bus using 8562306a36Sopenharmony_ci IPMB direct messages. This module requires I2C support. 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ciconfig IPMI_POWERNV 8862306a36Sopenharmony_ci depends on PPC_POWERNV 8962306a36Sopenharmony_ci tristate 'POWERNV (OPAL firmware) IPMI interface' 9062306a36Sopenharmony_ci help 9162306a36Sopenharmony_ci Provides a driver for OPAL firmware-based IPMI interfaces. 9262306a36Sopenharmony_ci 9362306a36Sopenharmony_ciconfig IPMI_WATCHDOG 9462306a36Sopenharmony_ci tristate 'IPMI Watchdog Timer' 9562306a36Sopenharmony_ci help 9662306a36Sopenharmony_ci This enables the IPMI watchdog timer. 9762306a36Sopenharmony_ci 9862306a36Sopenharmony_ciconfig IPMI_POWEROFF 9962306a36Sopenharmony_ci tristate 'IPMI Poweroff' 10062306a36Sopenharmony_ci help 10162306a36Sopenharmony_ci This enables a function to power off the system with IPMI if 10262306a36Sopenharmony_ci the IPMI management controller is capable of this. 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ciendif # IPMI_HANDLER 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_ciconfig IPMI_KCS_BMC 10762306a36Sopenharmony_ci tristate 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ciconfig ASPEED_KCS_IPMI_BMC 11062306a36Sopenharmony_ci depends on ARCH_ASPEED || COMPILE_TEST 11162306a36Sopenharmony_ci select IPMI_KCS_BMC 11262306a36Sopenharmony_ci select REGMAP_MMIO 11362306a36Sopenharmony_ci tristate "Aspeed KCS IPMI BMC driver" 11462306a36Sopenharmony_ci help 11562306a36Sopenharmony_ci Provides a driver for the KCS (Keyboard Controller Style) IPMI 11662306a36Sopenharmony_ci interface found on Aspeed SOCs (AST2400 and AST2500). 11762306a36Sopenharmony_ci 11862306a36Sopenharmony_ci The driver implements the BMC side of the KCS contorller, it 11962306a36Sopenharmony_ci provides the access of KCS IO space for BMC side. 12062306a36Sopenharmony_ci 12162306a36Sopenharmony_ciconfig NPCM7XX_KCS_IPMI_BMC 12262306a36Sopenharmony_ci depends on ARCH_NPCM || COMPILE_TEST 12362306a36Sopenharmony_ci select IPMI_KCS_BMC 12462306a36Sopenharmony_ci select REGMAP_MMIO 12562306a36Sopenharmony_ci tristate "NPCM KCS IPMI BMC driver" 12662306a36Sopenharmony_ci help 12762306a36Sopenharmony_ci Provides a driver for the KCS (Keyboard Controller Style) IPMI 12862306a36Sopenharmony_ci interface found on Nuvoton NPCM SOCs. 12962306a36Sopenharmony_ci 13062306a36Sopenharmony_ci The driver implements the BMC side of the KCS contorller, it 13162306a36Sopenharmony_ci provides the access of KCS IO space for BMC side. 13262306a36Sopenharmony_ci 13362306a36Sopenharmony_ci This support is also available as a module. If so, the module 13462306a36Sopenharmony_ci will be called kcs_bmc_npcm7xx. 13562306a36Sopenharmony_ci 13662306a36Sopenharmony_ciconfig IPMI_KCS_BMC_CDEV_IPMI 13762306a36Sopenharmony_ci depends on IPMI_KCS_BMC 13862306a36Sopenharmony_ci tristate "IPMI character device interface for BMC KCS devices" 13962306a36Sopenharmony_ci help 14062306a36Sopenharmony_ci Provides a BMC-side character device implementing IPMI 14162306a36Sopenharmony_ci semantics for KCS IPMI devices. 14262306a36Sopenharmony_ci 14362306a36Sopenharmony_ci Say YES if you wish to expose KCS devices on the BMC for IPMI 14462306a36Sopenharmony_ci purposes. 14562306a36Sopenharmony_ci 14662306a36Sopenharmony_ci This support is also available as a module. The module will be 14762306a36Sopenharmony_ci called kcs_bmc_cdev_ipmi. 14862306a36Sopenharmony_ci 14962306a36Sopenharmony_ciconfig IPMI_KCS_BMC_SERIO 15062306a36Sopenharmony_ci depends on IPMI_KCS_BMC && SERIO 15162306a36Sopenharmony_ci tristate "SerIO adaptor for BMC KCS devices" 15262306a36Sopenharmony_ci help 15362306a36Sopenharmony_ci Adapts the BMC KCS device for the SerIO subsystem. This allows users 15462306a36Sopenharmony_ci to take advantage of userspace interfaces provided by SerIO where 15562306a36Sopenharmony_ci appropriate. 15662306a36Sopenharmony_ci 15762306a36Sopenharmony_ci Say YES if you wish to expose KCS devices on the BMC via SerIO 15862306a36Sopenharmony_ci interfaces. 15962306a36Sopenharmony_ci 16062306a36Sopenharmony_ci This support is also available as a module. The module will be 16162306a36Sopenharmony_ci called kcs_bmc_serio. 16262306a36Sopenharmony_ci 16362306a36Sopenharmony_ciconfig ASPEED_BT_IPMI_BMC 16462306a36Sopenharmony_ci depends on ARCH_ASPEED || COMPILE_TEST 16562306a36Sopenharmony_ci depends on MFD_SYSCON 16662306a36Sopenharmony_ci select REGMAP_MMIO 16762306a36Sopenharmony_ci tristate "BT IPMI bmc driver" 16862306a36Sopenharmony_ci help 16962306a36Sopenharmony_ci Provides a driver for the BT (Block Transfer) IPMI interface 17062306a36Sopenharmony_ci found on Aspeed SOCs (AST2400 and AST2500). The driver 17162306a36Sopenharmony_ci implements the BMC side of the BT interface. 17262306a36Sopenharmony_ci 17362306a36Sopenharmony_ciconfig SSIF_IPMI_BMC 17462306a36Sopenharmony_ci tristate "SSIF IPMI BMC driver" 17562306a36Sopenharmony_ci depends on I2C && I2C_SLAVE 17662306a36Sopenharmony_ci help 17762306a36Sopenharmony_ci This enables the IPMI SMBus system interface (SSIF) at the 17862306a36Sopenharmony_ci management (BMC) side. 17962306a36Sopenharmony_ci 18062306a36Sopenharmony_ci The driver implements the BMC side of the SMBus system 18162306a36Sopenharmony_ci interface (SSIF). 18262306a36Sopenharmony_ci 18362306a36Sopenharmony_ciconfig IPMB_DEVICE_INTERFACE 18462306a36Sopenharmony_ci tristate 'IPMB Interface handler' 18562306a36Sopenharmony_ci depends on I2C 18662306a36Sopenharmony_ci depends on I2C_SLAVE 18762306a36Sopenharmony_ci help 18862306a36Sopenharmony_ci Provides a driver for a device (Satellite MC) to 18962306a36Sopenharmony_ci receive requests and send responses back to the BMC via 19062306a36Sopenharmony_ci the IPMB interface. This module requires I2C support. 191