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