1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# IPMI device configuration 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun 6*4882a593Smuzhiyunmenuconfig IPMI_HANDLER 7*4882a593Smuzhiyun tristate 'IPMI top-level message handler' 8*4882a593Smuzhiyun depends on HAS_IOMEM 9*4882a593Smuzhiyun select IPMI_DMI_DECODE if DMI 10*4882a593Smuzhiyun help 11*4882a593Smuzhiyun This enables the central IPMI message handler, required for IPMI 12*4882a593Smuzhiyun to work. 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun IPMI is a standard for managing sensors (temperature, 15*4882a593Smuzhiyun voltage, etc.) in a system. 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun See <file:Documentation/driver-api/ipmi.rst> for more details on the driver. 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun If unsure, say N. 20*4882a593Smuzhiyun 21*4882a593Smuzhiyunconfig IPMI_DMI_DECODE 22*4882a593Smuzhiyun select IPMI_PLAT_DATA 23*4882a593Smuzhiyun bool 24*4882a593Smuzhiyun 25*4882a593Smuzhiyunconfig IPMI_PLAT_DATA 26*4882a593Smuzhiyun bool 27*4882a593Smuzhiyun 28*4882a593Smuzhiyunif IPMI_HANDLER 29*4882a593Smuzhiyun 30*4882a593Smuzhiyunconfig IPMI_PANIC_EVENT 31*4882a593Smuzhiyun bool 'Generate a panic event to all BMCs on a panic' 32*4882a593Smuzhiyun help 33*4882a593Smuzhiyun When a panic occurs, this will cause the IPMI message handler to, 34*4882a593Smuzhiyun by default, generate an IPMI event describing the panic to each 35*4882a593Smuzhiyun interface registered with the message handler. This is always 36*4882a593Smuzhiyun available, the module parameter for ipmi_msghandler named 37*4882a593Smuzhiyun panic_op can be set to "event" to chose this value, this config 38*4882a593Smuzhiyun simply causes the default value to be set to "event". 39*4882a593Smuzhiyun 40*4882a593Smuzhiyunconfig IPMI_PANIC_STRING 41*4882a593Smuzhiyun bool 'Generate OEM events containing the panic string' 42*4882a593Smuzhiyun depends on IPMI_PANIC_EVENT 43*4882a593Smuzhiyun help 44*4882a593Smuzhiyun When a panic occurs, this will cause the IPMI message handler to, 45*4882a593Smuzhiyun by default, generate IPMI OEM type f0 events holding the IPMB 46*4882a593Smuzhiyun address of the panic generator (byte 4 of the event), a sequence 47*4882a593Smuzhiyun number for the string (byte 5 of the event) and part of the 48*4882a593Smuzhiyun string (the rest of the event). Bytes 1, 2, and 3 are the normal 49*4882a593Smuzhiyun usage for an OEM event. You can fetch these events and use the 50*4882a593Smuzhiyun sequence numbers to piece the string together. This config 51*4882a593Smuzhiyun parameter sets the default value to generate these events, 52*4882a593Smuzhiyun the module parameter for ipmi_msghandler named panic_op can 53*4882a593Smuzhiyun be set to "string" to chose this value, this config simply 54*4882a593Smuzhiyun causes the default value to be set to "string". 55*4882a593Smuzhiyun 56*4882a593Smuzhiyunconfig IPMI_DEVICE_INTERFACE 57*4882a593Smuzhiyun tristate 'Device interface for IPMI' 58*4882a593Smuzhiyun help 59*4882a593Smuzhiyun This provides an IOCTL interface to the IPMI message handler so 60*4882a593Smuzhiyun userland processes may use IPMI. It supports poll() and select(). 61*4882a593Smuzhiyun 62*4882a593Smuzhiyunconfig IPMI_SI 63*4882a593Smuzhiyun tristate 'IPMI System Interface handler' 64*4882a593Smuzhiyun select IPMI_PLAT_DATA 65*4882a593Smuzhiyun help 66*4882a593Smuzhiyun Provides a driver for System Interfaces (KCS, SMIC, BT). 67*4882a593Smuzhiyun Currently, only KCS and SMIC are supported. If 68*4882a593Smuzhiyun you are using IPMI, you should probably say "y" here. 69*4882a593Smuzhiyun 70*4882a593Smuzhiyunconfig IPMI_SSIF 71*4882a593Smuzhiyun tristate 'IPMI SMBus handler (SSIF)' 72*4882a593Smuzhiyun select I2C 73*4882a593Smuzhiyun help 74*4882a593Smuzhiyun Provides a driver for a SMBus interface to a BMC, meaning that you 75*4882a593Smuzhiyun have a driver that must be accessed over an I2C bus instead of a 76*4882a593Smuzhiyun standard interface. This module requires I2C support. 77*4882a593Smuzhiyun 78*4882a593Smuzhiyunconfig IPMI_POWERNV 79*4882a593Smuzhiyun depends on PPC_POWERNV 80*4882a593Smuzhiyun tristate 'POWERNV (OPAL firmware) IPMI interface' 81*4882a593Smuzhiyun help 82*4882a593Smuzhiyun Provides a driver for OPAL firmware-based IPMI interfaces. 83*4882a593Smuzhiyun 84*4882a593Smuzhiyunconfig IPMI_WATCHDOG 85*4882a593Smuzhiyun tristate 'IPMI Watchdog Timer' 86*4882a593Smuzhiyun help 87*4882a593Smuzhiyun This enables the IPMI watchdog timer. 88*4882a593Smuzhiyun 89*4882a593Smuzhiyunconfig IPMI_POWEROFF 90*4882a593Smuzhiyun tristate 'IPMI Poweroff' 91*4882a593Smuzhiyun help 92*4882a593Smuzhiyun This enables a function to power off the system with IPMI if 93*4882a593Smuzhiyun the IPMI management controller is capable of this. 94*4882a593Smuzhiyun 95*4882a593Smuzhiyunendif # IPMI_HANDLER 96*4882a593Smuzhiyun 97*4882a593Smuzhiyunconfig IPMI_KCS_BMC 98*4882a593Smuzhiyun tristate 99*4882a593Smuzhiyun 100*4882a593Smuzhiyunconfig ASPEED_KCS_IPMI_BMC 101*4882a593Smuzhiyun depends on ARCH_ASPEED || COMPILE_TEST 102*4882a593Smuzhiyun select IPMI_KCS_BMC 103*4882a593Smuzhiyun select REGMAP_MMIO 104*4882a593Smuzhiyun tristate "Aspeed KCS IPMI BMC driver" 105*4882a593Smuzhiyun help 106*4882a593Smuzhiyun Provides a driver for the KCS (Keyboard Controller Style) IPMI 107*4882a593Smuzhiyun interface found on Aspeed SOCs (AST2400 and AST2500). 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun The driver implements the BMC side of the KCS contorller, it 110*4882a593Smuzhiyun provides the access of KCS IO space for BMC side. 111*4882a593Smuzhiyun 112*4882a593Smuzhiyunconfig NPCM7XX_KCS_IPMI_BMC 113*4882a593Smuzhiyun depends on ARCH_NPCM7XX || COMPILE_TEST 114*4882a593Smuzhiyun select IPMI_KCS_BMC 115*4882a593Smuzhiyun select REGMAP_MMIO 116*4882a593Smuzhiyun tristate "NPCM7xx KCS IPMI BMC driver" 117*4882a593Smuzhiyun help 118*4882a593Smuzhiyun Provides a driver for the KCS (Keyboard Controller Style) IPMI 119*4882a593Smuzhiyun interface found on Nuvoton NPCM7xx SOCs. 120*4882a593Smuzhiyun 121*4882a593Smuzhiyun The driver implements the BMC side of the KCS contorller, it 122*4882a593Smuzhiyun provides the access of KCS IO space for BMC side. 123*4882a593Smuzhiyun 124*4882a593Smuzhiyun This support is also available as a module. If so, the module 125*4882a593Smuzhiyun will be called kcs_bmc_npcm7xx. 126*4882a593Smuzhiyun 127*4882a593Smuzhiyunconfig ASPEED_BT_IPMI_BMC 128*4882a593Smuzhiyun depends on ARCH_ASPEED || COMPILE_TEST 129*4882a593Smuzhiyun depends on REGMAP && REGMAP_MMIO && MFD_SYSCON 130*4882a593Smuzhiyun tristate "BT IPMI bmc driver" 131*4882a593Smuzhiyun help 132*4882a593Smuzhiyun Provides a driver for the BT (Block Transfer) IPMI interface 133*4882a593Smuzhiyun found on Aspeed SOCs (AST2400 and AST2500). The driver 134*4882a593Smuzhiyun implements the BMC side of the BT interface. 135*4882a593Smuzhiyun 136*4882a593Smuzhiyunconfig IPMB_DEVICE_INTERFACE 137*4882a593Smuzhiyun tristate 'IPMB Interface handler' 138*4882a593Smuzhiyun depends on I2C 139*4882a593Smuzhiyun depends on I2C_SLAVE 140*4882a593Smuzhiyun help 141*4882a593Smuzhiyun Provides a driver for a device (Satellite MC) to 142*4882a593Smuzhiyun receive requests and send responses back to the BMC via 143*4882a593Smuzhiyun the IPMB interface. This module requires I2C support. 144