GNU Linux-libre 5.19-rc6-gnu
[releases.git] / drivers / char / ipmi / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 #
3 # IPMI device configuration
4 #
5
6 menuconfig 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
21 config IPMI_DMI_DECODE
22         select IPMI_PLAT_DATA
23         bool
24
25 config IPMI_PLAT_DATA
26         bool
27
28 if IPMI_HANDLER
29
30 config 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
40 config 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
56 config 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
62 config 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
70 config 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
78 config 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
87 config IPMI_POWERNV
88         depends on PPC_POWERNV
89         tristate 'POWERNV (OPAL firmware) IPMI interface'
90         help
91           Provides a driver for OPAL firmware-based IPMI interfaces.
92
93 config IPMI_WATCHDOG
94         tristate 'IPMI Watchdog Timer'
95         help
96           This enables the IPMI watchdog timer.
97
98 config IPMI_POWEROFF
99         tristate 'IPMI Poweroff'
100         help
101           This enables a function to power off the system with IPMI if
102           the IPMI management controller is capable of this.
103
104 endif # IPMI_HANDLER
105
106 config IPMI_KCS_BMC
107         tristate
108
109 config ASPEED_KCS_IPMI_BMC
110         depends on ARCH_ASPEED || COMPILE_TEST
111         select IPMI_KCS_BMC
112         select REGMAP_MMIO
113         tristate "Aspeed KCS IPMI BMC driver"
114         help
115           Provides a driver for the KCS (Keyboard Controller Style) IPMI
116           interface found on Aspeed SOCs (AST2400 and AST2500).
117
118           The driver implements the BMC side of the KCS contorller, it
119           provides the access of KCS IO space for BMC side.
120
121 config NPCM7XX_KCS_IPMI_BMC
122         depends on ARCH_NPCM7XX || COMPILE_TEST
123         select IPMI_KCS_BMC
124         select REGMAP_MMIO
125         tristate "NPCM7xx KCS IPMI BMC driver"
126         help
127           Provides a driver for the KCS (Keyboard Controller Style) IPMI
128           interface found on Nuvoton NPCM7xx SOCs.
129
130           The driver implements the BMC side of the KCS contorller, it
131           provides the access of KCS IO space for BMC side.
132
133           This support is also available as a module.  If so, the module
134           will be called kcs_bmc_npcm7xx.
135
136 config IPMI_KCS_BMC_CDEV_IPMI
137         depends on IPMI_KCS_BMC
138         tristate "IPMI character device interface for BMC KCS devices"
139         help
140           Provides a BMC-side character device implementing IPMI
141           semantics for KCS IPMI devices.
142
143           Say YES if you wish to expose KCS devices on the BMC for IPMI
144           purposes.
145
146           This support is also available as a module. The module will be
147           called kcs_bmc_cdev_ipmi.
148
149 config IPMI_KCS_BMC_SERIO
150         depends on IPMI_KCS_BMC && SERIO
151         tristate "SerIO adaptor for BMC KCS devices"
152         help
153           Adapts the BMC KCS device for the SerIO subsystem. This allows users
154           to take advantage of userspace interfaces provided by SerIO where
155           appropriate.
156
157           Say YES if you wish to expose KCS devices on the BMC via SerIO
158           interfaces.
159
160           This support is also available as a module. The module will be
161           called kcs_bmc_serio.
162
163 config ASPEED_BT_IPMI_BMC
164         depends on ARCH_ASPEED || COMPILE_TEST
165         depends on REGMAP && REGMAP_MMIO && MFD_SYSCON
166         tristate "BT IPMI bmc driver"
167         help
168           Provides a driver for the BT (Block Transfer) IPMI interface
169           found on Aspeed SOCs (AST2400 and AST2500). The driver
170           implements the BMC side of the BT interface.
171
172 config IPMB_DEVICE_INTERFACE
173         tristate 'IPMB Interface handler'
174         depends on I2C
175         depends on I2C_SLAVE
176         help
177           Provides a driver for a device (Satellite MC) to
178           receive requests and send responses back to the BMC via
179           the IPMB interface. This module requires I2C support.