xref: /linux/drivers/char/ipmi/Kconfig (revision 524c4a5daf92982cf16d9e6c8cdf8721abe35a11)
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.
198