Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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_SSIF
71 tristate 'IPMI SMBus handler (SSIF)'
72 depends on I2C
73 help
74 Provides a driver for a SMBus interface to a BMC, meaning that you
75 have a driver that must be accessed over an I2C bus instead of a
76 standard interface. This module requires I2C support.
77
78config IPMI_IPMB
79 tristate 'IPMI IPMB interface'
80 depends on I2C && I2C_SLAVE
81 help
82 Provides a driver for a system running right on the IPMB bus.
83 It supports normal system interface messages to a BMC on the IPMB
84 bus, and it also supports direct messaging on the bus using
85 IPMB direct messages. This module requires I2C support.
86
87config IPMI_LS2K
88 bool 'Loongson-2K IPMI interface'
89 depends on LOONGARCH
90 select MFD_LS2K_BMC_CORE
91 help
92 Provides a driver for Loongson-2K IPMI interfaces.
93
94config IPMI_POWERNV
95 depends on PPC_POWERNV
96 tristate 'POWERNV (OPAL firmware) IPMI interface'
97 help
98 Provides a driver for OPAL firmware-based IPMI interfaces.
99
100config IPMI_WATCHDOG
101 tristate 'IPMI Watchdog Timer'
102 help
103 This enables the IPMI watchdog timer.
104
105config IPMI_POWEROFF
106 tristate 'IPMI Poweroff'
107 help
108 This enables a function to power off the system with IPMI if
109 the IPMI management controller is capable of this.
110
111endif # IPMI_HANDLER
112
113config IPMI_KCS_BMC
114 tristate
115
116config ASPEED_KCS_IPMI_BMC
117 depends on ARCH_ASPEED || COMPILE_TEST
118 select IPMI_KCS_BMC
119 select REGMAP_MMIO
120 tristate "Aspeed KCS IPMI BMC driver"
121 help
122 Provides a driver for the KCS (Keyboard Controller Style) IPMI
123 interface found on Aspeed SOCs (AST2400 and AST2500).
124
125 The driver implements the BMC side of the KCS contorller, it
126 provides the access of KCS IO space for BMC side.
127
128config NPCM7XX_KCS_IPMI_BMC
129 depends on ARCH_NPCM || COMPILE_TEST
130 select IPMI_KCS_BMC
131 select REGMAP_MMIO
132 tristate "NPCM KCS IPMI BMC driver"
133 help
134 Provides a driver for the KCS (Keyboard Controller Style) IPMI
135 interface found on Nuvoton NPCM SOCs.
136
137 The driver implements the BMC side of the KCS contorller, it
138 provides the access of KCS IO space for BMC side.
139
140 This support is also available as a module. If so, the module
141 will be called kcs_bmc_npcm7xx.
142
143config IPMI_KCS_BMC_CDEV_IPMI
144 depends on IPMI_KCS_BMC
145 tristate "IPMI character device interface for BMC KCS devices"
146 help
147 Provides a BMC-side character device implementing IPMI
148 semantics for KCS IPMI devices.
149
150 Say YES if you wish to expose KCS devices on the BMC for IPMI
151 purposes.
152
153 This support is also available as a module. The module will be
154 called kcs_bmc_cdev_ipmi.
155
156config IPMI_KCS_BMC_SERIO
157 depends on IPMI_KCS_BMC && SERIO
158 tristate "SerIO adaptor for BMC KCS devices"
159 help
160 Adapts the BMC KCS device for the SerIO subsystem. This allows users
161 to take advantage of userspace interfaces provided by SerIO where
162 appropriate.
163
164 Say YES if you wish to expose KCS devices on the BMC via SerIO
165 interfaces.
166
167 This support is also available as a module. The module will be
168 called kcs_bmc_serio.
169
170config ASPEED_BT_IPMI_BMC
171 depends on ARCH_ASPEED || COMPILE_TEST
172 depends on MFD_SYSCON
173 select REGMAP_MMIO
174 tristate "BT IPMI bmc driver"
175 help
176 Provides a driver for the BT (Block Transfer) IPMI interface
177 found on Aspeed SOCs (AST2400 and AST2500). The driver
178 implements the BMC side of the BT interface.
179
180config SSIF_IPMI_BMC
181 tristate "SSIF IPMI BMC driver"
182 depends on I2C && I2C_SLAVE
183 help
184 This enables the IPMI SMBus system interface (SSIF) at the
185 management (BMC) side.
186
187 The driver implements the BMC side of the SMBus system
188 interface (SSIF).
189
190config IPMB_DEVICE_INTERFACE
191 tristate 'IPMB Interface handler'
192 depends on I2C
193 depends on I2C_SLAVE
194 help
195 Provides a driver for a device (Satellite MC) to
196 receive requests and send responses back to the BMC via
197 the IPMB interface. This module requires I2C support.