projects/linux·blob master · refs

216 lines · 6.7 KiB

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.