1# SPDX-License-Identifier: GPL-2.0-only 2# 3# IPMI device configuration 4# 5 6menuconfig IPMI_HANDLER 7 tristate 'IPMI top-level message handler' 8 depends on HAS_IOMEM 9 select IPMI_DMI_DECODE if DMI 10 help 11 This enables the central IPMI message handler, required for IPMI 12 to work. 13 14 IPMI is a standard for managing sensors (temperature, 15 voltage, etc.) in a system. 16 17 See <file:Documentation/driver-api/ipmi.rst> for more details on the driver. 18 19 If unsure, say N. 20 21config IPMI_DMI_DECODE 22 select IPMI_PLAT_DATA 23 bool 24 25config IPMI_PLAT_DATA 26 bool 27 28if IPMI_HANDLER 29 30config IPMI_PANIC_EVENT 31 bool 'Generate a panic event to all BMCs on a panic' 32 help 33 When a panic occurs, this will cause the IPMI message handler to, 34 by default, generate an IPMI event describing the panic to each 35 interface registered with the message handler. This is always 36 available, the module parameter for ipmi_msghandler named 37 panic_op can be set to "event" to chose this value, this config 38 simply causes the default value to be set to "event". 39 40config IPMI_PANIC_STRING 41 bool 'Generate OEM events containing the panic string' 42 depends on IPMI_PANIC_EVENT 43 help 44 When a panic occurs, this will cause the IPMI message handler to, 45 by default, generate IPMI OEM type f0 events holding the IPMB 46 address of the panic generator (byte 4 of the event), a sequence 47 number for the string (byte 5 of the event) and part of the 48 string (the rest of the event). Bytes 1, 2, and 3 are the normal 49 usage for an OEM event. You can fetch these events and use the 50 sequence numbers to piece the string together. This config 51 parameter sets the default value to generate these events, 52 the module parameter for ipmi_msghandler named panic_op can 53 be set to "string" to chose this value, this config simply 54 causes the default value to be set to "string". 55 56config IPMI_DEVICE_INTERFACE 57 tristate 'Device interface for IPMI' 58 help 59 This provides an IOCTL interface to the IPMI message handler so 60 userland processes may use IPMI. It supports poll() and select(). 61 62config IPMI_SI 63 tristate 'IPMI System Interface handler' 64 select IPMI_PLAT_DATA 65 help 66 Provides a driver for System Interfaces (KCS, SMIC, BT). 67 Currently, only KCS and SMIC are supported. If 68 you are using IPMI, you should probably say "y" here. 69 70config IPMI_SI_ASYNC_INIT 71 bool 'Asynchronous initialization of IPMI System Interface' 72 depends on IPMI_SI 73 default n 74 help 75 Offloads individual SMI inits. It speeds up the boot time. 76 It also introduces a very small risk that something else might fail 77 if it depends on synchronous IPMI init. 78 79config IPMI_SSIF 80 tristate 'IPMI SMBus handler (SSIF)' 81 depends on I2C 82 help 83 Provides a driver for a SMBus interface to a BMC, meaning that you 84 have a driver that must be accessed over an I2C bus instead of a 85 standard interface. This module requires I2C support. 86 87config IPMI_IPMB 88 tristate 'IPMI IPMB interface' 89 depends on I2C && I2C_SLAVE 90 help 91 Provides a driver for a system running right on the IPMB bus. 92 It supports normal system interface messages to a BMC on the IPMB 93 bus, and it also supports direct messaging on the bus using 94 IPMB direct messages. This module requires I2C support. 95 96config IPMI_LS2K 97 bool 'Loongson-2K IPMI interface' 98 depends on LOONGARCH 99 select MFD_LS2K_BMC_CORE 100 help 101 Provides a driver for Loongson-2K IPMI interfaces. 102 103config IPMI_POWERNV 104 depends on PPC_POWERNV 105 tristate 'POWERNV (OPAL firmware) IPMI interface' 106 help 107 Provides a driver for OPAL firmware-based IPMI interfaces. 108 109config IPMI_WATCHDOG 110 tristate 'IPMI Watchdog Timer' 111 help 112 This enables the IPMI watchdog timer. 113 114config IPMI_POWEROFF 115 tristate 'IPMI Poweroff' 116 help 117 This enables a function to power off the system with IPMI if 118 the IPMI management controller is capable of this. 119 120endif # IPMI_HANDLER 121 122config IPMI_KCS_BMC 123 tristate 124 125config ASPEED_KCS_IPMI_BMC 126 depends on ARCH_ASPEED || COMPILE_TEST 127 select IPMI_KCS_BMC 128 select REGMAP_MMIO 129 tristate "Aspeed KCS IPMI BMC driver" 130 help 131 Provides a driver for the KCS (Keyboard Controller Style) IPMI 132 interface found on Aspeed SOCs (AST2400 and AST2500). 133 134 The driver implements the BMC side of the KCS contorller, it 135 provides the access of KCS IO space for BMC side. 136 137config NPCM7XX_KCS_IPMI_BMC 138 depends on ARCH_NPCM || COMPILE_TEST 139 select IPMI_KCS_BMC 140 select REGMAP_MMIO 141 tristate "NPCM KCS IPMI BMC driver" 142 help 143 Provides a driver for the KCS (Keyboard Controller Style) IPMI 144 interface found on Nuvoton NPCM SOCs. 145 146 The driver implements the BMC side of the KCS contorller, it 147 provides the access of KCS IO space for BMC side. 148 149 This support is also available as a module. If so, the module 150 will be called kcs_bmc_npcm7xx. 151 152config IPMI_KCS_BMC_CDEV_IPMI 153 depends on IPMI_KCS_BMC 154 tristate "IPMI character device interface for BMC KCS devices" 155 help 156 Provides a BMC-side character device implementing IPMI 157 semantics for KCS IPMI devices. 158 159 Say YES if you wish to expose KCS devices on the BMC for IPMI 160 purposes. 161 162 This support is also available as a module. The module will be 163 called kcs_bmc_cdev_ipmi. 164 165config IPMI_KCS_BMC_SERIO 166 depends on IPMI_KCS_BMC && SERIO 167 tristate "SerIO adaptor for BMC KCS devices" 168 help 169 Adapts the BMC KCS device for the SerIO subsystem. This allows users 170 to take advantage of userspace interfaces provided by SerIO where 171 appropriate. 172 173 Say YES if you wish to expose KCS devices on the BMC via SerIO 174 interfaces. 175 176 This support is also available as a module. The module will be 177 called kcs_bmc_serio. 178 179config ASPEED_BT_IPMI_BMC 180 depends on ARCH_ASPEED || COMPILE_TEST 181 depends on MFD_SYSCON 182 select REGMAP_MMIO 183 tristate "BT IPMI bmc driver" 184 help 185 Provides a driver for the BT (Block Transfer) IPMI interface 186 found on Aspeed SOCs (AST2400 and AST2500). The driver 187 implements the BMC side of the BT interface. 188 189config SSIF_IPMI_BMC 190 tristate "SSIF IPMI BMC driver" 191 depends on I2C && I2C_SLAVE 192 help 193 This enables the IPMI SMBus system interface (SSIF) at the 194 management (BMC) side. 195 196 The driver implements the BMC side of the SMBus system 197 interface (SSIF). 198 199config SSIF_IPMI_BMC_KUNIT_TEST 200 bool "KUnit tests for SSIF IPMI BMC driver" if !KUNIT_ALL_TESTS 201 depends on KUNIT=y 202 depends on SSIF_IPMI_BMC 203 default KUNIT_ALL_TESTS 204 help 205 This option builds unit tests that exercise the SSIF BMC state 206 machine, including request handling, response transmission, 207 and error paths such as aborted or truncated transfers. 208 209config IPMB_DEVICE_INTERFACE 210 tristate 'IPMB Interface handler' 211 depends on I2C 212 depends on I2C_SLAVE 213 help 214 Provides a driver for a device (Satellite MC) to 215 receive requests and send responses back to the BMC via 216 the IPMB interface. This module requires I2C support. 217