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