xref: /OK3568_Linux_fs/kernel/drivers/char/ipmi/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# IPMI device configuration
4*4882a593Smuzhiyun#
5*4882a593Smuzhiyun
6*4882a593Smuzhiyunmenuconfig IPMI_HANDLER
7*4882a593Smuzhiyun	tristate 'IPMI top-level message handler'
8*4882a593Smuzhiyun	depends on HAS_IOMEM
9*4882a593Smuzhiyun	select IPMI_DMI_DECODE if DMI
10*4882a593Smuzhiyun	help
11*4882a593Smuzhiyun	  This enables the central IPMI message handler, required for IPMI
12*4882a593Smuzhiyun	  to work.
13*4882a593Smuzhiyun
14*4882a593Smuzhiyun	  IPMI is a standard for managing sensors (temperature,
15*4882a593Smuzhiyun	  voltage, etc.) in a system.
16*4882a593Smuzhiyun
17*4882a593Smuzhiyun	  See <file:Documentation/driver-api/ipmi.rst> for more details on the driver.
18*4882a593Smuzhiyun
19*4882a593Smuzhiyun	  If unsure, say N.
20*4882a593Smuzhiyun
21*4882a593Smuzhiyunconfig IPMI_DMI_DECODE
22*4882a593Smuzhiyun	select IPMI_PLAT_DATA
23*4882a593Smuzhiyun	bool
24*4882a593Smuzhiyun
25*4882a593Smuzhiyunconfig IPMI_PLAT_DATA
26*4882a593Smuzhiyun	bool
27*4882a593Smuzhiyun
28*4882a593Smuzhiyunif IPMI_HANDLER
29*4882a593Smuzhiyun
30*4882a593Smuzhiyunconfig IPMI_PANIC_EVENT
31*4882a593Smuzhiyun	bool 'Generate a panic event to all BMCs on a panic'
32*4882a593Smuzhiyun	help
33*4882a593Smuzhiyun	  When a panic occurs, this will cause the IPMI message handler to,
34*4882a593Smuzhiyun	  by default, generate an IPMI event describing the panic to each
35*4882a593Smuzhiyun	  interface registered with the message handler.  This is always
36*4882a593Smuzhiyun	  available, the module parameter for ipmi_msghandler named
37*4882a593Smuzhiyun	  panic_op can be set to "event" to chose this value, this config
38*4882a593Smuzhiyun	  simply causes the default value to be set to "event".
39*4882a593Smuzhiyun
40*4882a593Smuzhiyunconfig IPMI_PANIC_STRING
41*4882a593Smuzhiyun	bool 'Generate OEM events containing the panic string'
42*4882a593Smuzhiyun	depends on IPMI_PANIC_EVENT
43*4882a593Smuzhiyun	help
44*4882a593Smuzhiyun	  When a panic occurs, this will cause the IPMI message handler to,
45*4882a593Smuzhiyun	  by default, generate IPMI OEM type f0 events holding the IPMB
46*4882a593Smuzhiyun	  address of the panic generator (byte 4 of the event), a sequence
47*4882a593Smuzhiyun	  number for the string (byte 5 of the event) and part of the
48*4882a593Smuzhiyun	  string (the rest of the event).  Bytes 1, 2, and 3 are the normal
49*4882a593Smuzhiyun	  usage for an OEM event.  You can fetch these events and use the
50*4882a593Smuzhiyun	  sequence numbers to piece the string together.  This config
51*4882a593Smuzhiyun	  parameter sets the default value to generate these events,
52*4882a593Smuzhiyun	  the module parameter for ipmi_msghandler named panic_op can
53*4882a593Smuzhiyun	  be set to "string" to chose this value, this config simply
54*4882a593Smuzhiyun	  causes the default value to be set to "string".
55*4882a593Smuzhiyun
56*4882a593Smuzhiyunconfig IPMI_DEVICE_INTERFACE
57*4882a593Smuzhiyun	tristate 'Device interface for IPMI'
58*4882a593Smuzhiyun	help
59*4882a593Smuzhiyun	  This provides an IOCTL interface to the IPMI message handler so
60*4882a593Smuzhiyun	  userland processes may use IPMI.  It supports poll() and select().
61*4882a593Smuzhiyun
62*4882a593Smuzhiyunconfig IPMI_SI
63*4882a593Smuzhiyun	tristate 'IPMI System Interface handler'
64*4882a593Smuzhiyun	select IPMI_PLAT_DATA
65*4882a593Smuzhiyun	help
66*4882a593Smuzhiyun	  Provides a driver for System Interfaces (KCS, SMIC, BT).
67*4882a593Smuzhiyun	  Currently, only KCS and SMIC are supported.  If
68*4882a593Smuzhiyun	  you are using IPMI, you should probably say "y" here.
69*4882a593Smuzhiyun
70*4882a593Smuzhiyunconfig IPMI_SSIF
71*4882a593Smuzhiyun	tristate 'IPMI SMBus handler (SSIF)'
72*4882a593Smuzhiyun	select I2C
73*4882a593Smuzhiyun	help
74*4882a593Smuzhiyun	  Provides a driver for a SMBus interface to a BMC, meaning that you
75*4882a593Smuzhiyun	  have a driver that must be accessed over an I2C bus instead of a
76*4882a593Smuzhiyun	  standard interface.  This module requires I2C support.
77*4882a593Smuzhiyun
78*4882a593Smuzhiyunconfig IPMI_POWERNV
79*4882a593Smuzhiyun	depends on PPC_POWERNV
80*4882a593Smuzhiyun	tristate 'POWERNV (OPAL firmware) IPMI interface'
81*4882a593Smuzhiyun	help
82*4882a593Smuzhiyun	  Provides a driver for OPAL firmware-based IPMI interfaces.
83*4882a593Smuzhiyun
84*4882a593Smuzhiyunconfig IPMI_WATCHDOG
85*4882a593Smuzhiyun	tristate 'IPMI Watchdog Timer'
86*4882a593Smuzhiyun	help
87*4882a593Smuzhiyun	  This enables the IPMI watchdog timer.
88*4882a593Smuzhiyun
89*4882a593Smuzhiyunconfig IPMI_POWEROFF
90*4882a593Smuzhiyun	tristate 'IPMI Poweroff'
91*4882a593Smuzhiyun	help
92*4882a593Smuzhiyun	  This enables a function to power off the system with IPMI if
93*4882a593Smuzhiyun	  the IPMI management controller is capable of this.
94*4882a593Smuzhiyun
95*4882a593Smuzhiyunendif # IPMI_HANDLER
96*4882a593Smuzhiyun
97*4882a593Smuzhiyunconfig IPMI_KCS_BMC
98*4882a593Smuzhiyun	tristate
99*4882a593Smuzhiyun
100*4882a593Smuzhiyunconfig ASPEED_KCS_IPMI_BMC
101*4882a593Smuzhiyun	depends on ARCH_ASPEED || COMPILE_TEST
102*4882a593Smuzhiyun	select IPMI_KCS_BMC
103*4882a593Smuzhiyun	select REGMAP_MMIO
104*4882a593Smuzhiyun	tristate "Aspeed KCS IPMI BMC driver"
105*4882a593Smuzhiyun	help
106*4882a593Smuzhiyun	  Provides a driver for the KCS (Keyboard Controller Style) IPMI
107*4882a593Smuzhiyun	  interface found on Aspeed SOCs (AST2400 and AST2500).
108*4882a593Smuzhiyun
109*4882a593Smuzhiyun	  The driver implements the BMC side of the KCS contorller, it
110*4882a593Smuzhiyun	  provides the access of KCS IO space for BMC side.
111*4882a593Smuzhiyun
112*4882a593Smuzhiyunconfig NPCM7XX_KCS_IPMI_BMC
113*4882a593Smuzhiyun	depends on ARCH_NPCM7XX || COMPILE_TEST
114*4882a593Smuzhiyun	select IPMI_KCS_BMC
115*4882a593Smuzhiyun	select REGMAP_MMIO
116*4882a593Smuzhiyun	tristate "NPCM7xx KCS IPMI BMC driver"
117*4882a593Smuzhiyun	help
118*4882a593Smuzhiyun	  Provides a driver for the KCS (Keyboard Controller Style) IPMI
119*4882a593Smuzhiyun	  interface found on Nuvoton NPCM7xx SOCs.
120*4882a593Smuzhiyun
121*4882a593Smuzhiyun	  The driver implements the BMC side of the KCS contorller, it
122*4882a593Smuzhiyun	  provides the access of KCS IO space for BMC side.
123*4882a593Smuzhiyun
124*4882a593Smuzhiyun	  This support is also available as a module.  If so, the module
125*4882a593Smuzhiyun	  will be called kcs_bmc_npcm7xx.
126*4882a593Smuzhiyun
127*4882a593Smuzhiyunconfig ASPEED_BT_IPMI_BMC
128*4882a593Smuzhiyun	depends on ARCH_ASPEED || COMPILE_TEST
129*4882a593Smuzhiyun	depends on REGMAP && REGMAP_MMIO && MFD_SYSCON
130*4882a593Smuzhiyun	tristate "BT IPMI bmc driver"
131*4882a593Smuzhiyun	help
132*4882a593Smuzhiyun	  Provides a driver for the BT (Block Transfer) IPMI interface
133*4882a593Smuzhiyun	  found on Aspeed SOCs (AST2400 and AST2500). The driver
134*4882a593Smuzhiyun	  implements the BMC side of the BT interface.
135*4882a593Smuzhiyun
136*4882a593Smuzhiyunconfig IPMB_DEVICE_INTERFACE
137*4882a593Smuzhiyun	tristate 'IPMB Interface handler'
138*4882a593Smuzhiyun	depends on I2C
139*4882a593Smuzhiyun	depends on I2C_SLAVE
140*4882a593Smuzhiyun	help
141*4882a593Smuzhiyun	  Provides a driver for a device (Satellite MC) to
142*4882a593Smuzhiyun	  receive requests and send responses back to the BMC via
143*4882a593Smuzhiyun	  the IPMB interface. This module requires I2C support.
144