Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: GPL-2.0-only
0002 #
0003 # IPMI device configuration
0004 #
0005 
0006 menuconfig IPMI_HANDLER
0007         tristate 'IPMI top-level message handler'
0008         depends on HAS_IOMEM
0009         select IPMI_DMI_DECODE if DMI
0010         help
0011           This enables the central IPMI message handler, required for IPMI
0012           to work.
0013 
0014           IPMI is a standard for managing sensors (temperature,
0015           voltage, etc.) in a system.
0016 
0017           See <file:Documentation/driver-api/ipmi.rst> for more details on the driver.
0018 
0019           If unsure, say N.
0020 
0021 config IPMI_DMI_DECODE
0022         select IPMI_PLAT_DATA
0023         bool
0024 
0025 config IPMI_PLAT_DATA
0026         bool
0027 
0028 if IPMI_HANDLER
0029 
0030 config IPMI_PANIC_EVENT
0031         bool 'Generate a panic event to all BMCs on a panic'
0032         help
0033           When a panic occurs, this will cause the IPMI message handler to,
0034           by default, generate an IPMI event describing the panic to each
0035           interface registered with the message handler.  This is always
0036           available, the module parameter for ipmi_msghandler named
0037           panic_op can be set to "event" to chose this value, this config
0038           simply causes the default value to be set to "event".
0039 
0040 config IPMI_PANIC_STRING
0041         bool 'Generate OEM events containing the panic string'
0042         depends on IPMI_PANIC_EVENT
0043         help
0044           When a panic occurs, this will cause the IPMI message handler to,
0045           by default, generate IPMI OEM type f0 events holding the IPMB
0046           address of the panic generator (byte 4 of the event), a sequence
0047           number for the string (byte 5 of the event) and part of the
0048           string (the rest of the event).  Bytes 1, 2, and 3 are the normal
0049           usage for an OEM event.  You can fetch these events and use the
0050           sequence numbers to piece the string together.  This config
0051           parameter sets the default value to generate these events,
0052           the module parameter for ipmi_msghandler named panic_op can
0053           be set to "string" to chose this value, this config simply
0054           causes the default value to be set to "string".
0055 
0056 config IPMI_DEVICE_INTERFACE
0057         tristate 'Device interface for IPMI'
0058         help
0059           This provides an IOCTL interface to the IPMI message handler so
0060           userland processes may use IPMI.  It supports poll() and select().
0061 
0062 config IPMI_SI
0063         tristate 'IPMI System Interface handler'
0064         select IPMI_PLAT_DATA
0065         help
0066           Provides a driver for System Interfaces (KCS, SMIC, BT).
0067           Currently, only KCS and SMIC are supported.  If
0068           you are using IPMI, you should probably say "y" here.
0069 
0070 config IPMI_SSIF
0071         tristate 'IPMI SMBus handler (SSIF)'
0072         depends on I2C
0073         help
0074           Provides a driver for a SMBus interface to a BMC, meaning that you
0075           have a driver that must be accessed over an I2C bus instead of a
0076           standard interface.  This module requires I2C support.
0077 
0078 config IPMI_IPMB
0079         tristate 'IPMI IPMB interface'
0080         depends on I2C && I2C_SLAVE
0081         help
0082           Provides a driver for a system running right on the IPMB bus.
0083           It supports normal system interface messages to a BMC on the IPMB
0084           bus, and it also supports direct messaging on the bus using
0085           IPMB direct messages.  This module requires I2C support.
0086 
0087 config IPMI_POWERNV
0088         depends on PPC_POWERNV
0089         tristate 'POWERNV (OPAL firmware) IPMI interface'
0090         help
0091           Provides a driver for OPAL firmware-based IPMI interfaces.
0092 
0093 config IPMI_WATCHDOG
0094         tristate 'IPMI Watchdog Timer'
0095         help
0096           This enables the IPMI watchdog timer.
0097 
0098 config IPMI_POWEROFF
0099         tristate 'IPMI Poweroff'
0100         help
0101           This enables a function to power off the system with IPMI if
0102           the IPMI management controller is capable of this.
0103 
0104 endif # IPMI_HANDLER
0105 
0106 config IPMI_KCS_BMC
0107         tristate
0108 
0109 config ASPEED_KCS_IPMI_BMC
0110         depends on ARCH_ASPEED || COMPILE_TEST
0111         select IPMI_KCS_BMC
0112         select REGMAP_MMIO
0113         tristate "Aspeed KCS IPMI BMC driver"
0114         help
0115           Provides a driver for the KCS (Keyboard Controller Style) IPMI
0116           interface found on Aspeed SOCs (AST2400 and AST2500).
0117 
0118           The driver implements the BMC side of the KCS contorller, it
0119           provides the access of KCS IO space for BMC side.
0120 
0121 config NPCM7XX_KCS_IPMI_BMC
0122         depends on ARCH_NPCM7XX || COMPILE_TEST
0123         select IPMI_KCS_BMC
0124         select REGMAP_MMIO
0125         tristate "NPCM7xx KCS IPMI BMC driver"
0126         help
0127           Provides a driver for the KCS (Keyboard Controller Style) IPMI
0128           interface found on Nuvoton NPCM7xx SOCs.
0129 
0130           The driver implements the BMC side of the KCS contorller, it
0131           provides the access of KCS IO space for BMC side.
0132 
0133           This support is also available as a module.  If so, the module
0134           will be called kcs_bmc_npcm7xx.
0135 
0136 config IPMI_KCS_BMC_CDEV_IPMI
0137         depends on IPMI_KCS_BMC
0138         tristate "IPMI character device interface for BMC KCS devices"
0139         help
0140           Provides a BMC-side character device implementing IPMI
0141           semantics for KCS IPMI devices.
0142 
0143           Say YES if you wish to expose KCS devices on the BMC for IPMI
0144           purposes.
0145 
0146           This support is also available as a module. The module will be
0147           called kcs_bmc_cdev_ipmi.
0148 
0149 config IPMI_KCS_BMC_SERIO
0150         depends on IPMI_KCS_BMC && SERIO
0151         tristate "SerIO adaptor for BMC KCS devices"
0152         help
0153           Adapts the BMC KCS device for the SerIO subsystem. This allows users
0154           to take advantage of userspace interfaces provided by SerIO where
0155           appropriate.
0156 
0157           Say YES if you wish to expose KCS devices on the BMC via SerIO
0158           interfaces.
0159 
0160           This support is also available as a module. The module will be
0161           called kcs_bmc_serio.
0162 
0163 config ASPEED_BT_IPMI_BMC
0164         depends on ARCH_ASPEED || COMPILE_TEST
0165         depends on REGMAP && REGMAP_MMIO && MFD_SYSCON
0166         tristate "BT IPMI bmc driver"
0167         help
0168           Provides a driver for the BT (Block Transfer) IPMI interface
0169           found on Aspeed SOCs (AST2400 and AST2500). The driver
0170           implements the BMC side of the BT interface.
0171 
0172 config IPMB_DEVICE_INTERFACE
0173         tristate 'IPMB Interface handler'
0174         depends on I2C
0175         depends on I2C_SLAVE
0176         help
0177           Provides a driver for a device (Satellite MC) to
0178           receive requests and send responses back to the BMC via
0179           the IPMB interface. This module requires I2C support.