xref: /linux/drivers/char/ipmi/Kconfig (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
21da177e4SLinus Torvalds#
31da177e4SLinus Torvalds# IPMI device configuration
41da177e4SLinus Torvalds#
51da177e4SLinus Torvalds
6bcf6b4bbSJan Engelhardtmenuconfig IPMI_HANDLER
71da177e4SLinus Torvalds	tristate 'IPMI top-level message handler'
8bcf6b4bbSJan Engelhardt	depends on HAS_IOMEM
99f88145fSCorey Minyard	select IPMI_DMI_DECODE if DMI
101da177e4SLinus Torvalds	help
111da177e4SLinus Torvalds	  This enables the central IPMI message handler, required for IPMI
121da177e4SLinus Torvalds	  to work.
131da177e4SLinus Torvalds
141da177e4SLinus Torvalds	  IPMI is a standard for managing sensors (temperature,
151da177e4SLinus Torvalds	  voltage, etc.) in a system.
161da177e4SLinus Torvalds
17283b69bfSMauro Carvalho Chehab	  See <file:Documentation/driver-api/ipmi.rst> for more details on the driver.
181da177e4SLinus Torvalds
191da177e4SLinus Torvalds	  If unsure, say N.
201da177e4SLinus Torvalds
219f88145fSCorey Minyardconfig IPMI_DMI_DECODE
223cd83bacSCorey Minyard	select IPMI_PLAT_DATA
233cd83bacSCorey Minyard	bool
243cd83bacSCorey Minyard
253cd83bacSCorey Minyardconfig IPMI_PLAT_DATA
269f88145fSCorey Minyard	bool
279f88145fSCorey Minyard
28bcf6b4bbSJan Engelhardtif IPMI_HANDLER
29bcf6b4bbSJan Engelhardt
301da177e4SLinus Torvaldsconfig IPMI_PANIC_EVENT
311da177e4SLinus Torvalds	bool 'Generate a panic event to all BMCs on a panic'
321da177e4SLinus Torvalds	help
331c9f98d1SCorey Minyard	  When a panic occurs, this will cause the IPMI message handler to,
341c9f98d1SCorey Minyard	  by default, generate an IPMI event describing the panic to each
351c9f98d1SCorey Minyard	  interface registered with the message handler.  This is always
361c9f98d1SCorey Minyard	  available, the module parameter for ipmi_msghandler named
371c9f98d1SCorey Minyard	  panic_op can be set to "event" to chose this value, this config
381c9f98d1SCorey Minyard	  simply causes the default value to be set to "event".
391da177e4SLinus Torvalds
401da177e4SLinus Torvaldsconfig IPMI_PANIC_STRING
411da177e4SLinus Torvalds	bool 'Generate OEM events containing the panic string'
421da177e4SLinus Torvalds	depends on IPMI_PANIC_EVENT
431da177e4SLinus Torvalds	help
441c9f98d1SCorey Minyard	  When a panic occurs, this will cause the IPMI message handler to,
451c9f98d1SCorey Minyard	  by default, generate IPMI OEM type f0 events holding the IPMB
461c9f98d1SCorey Minyard	  address of the panic generator (byte 4 of the event), a sequence
471c9f98d1SCorey Minyard	  number for the string (byte 5 of the event) and part of the
481c9f98d1SCorey Minyard	  string (the rest of the event).  Bytes 1, 2, and 3 are the normal
491c9f98d1SCorey Minyard	  usage for an OEM event.  You can fetch these events and use the
501c9f98d1SCorey Minyard	  sequence numbers to piece the string together.  This config
511c9f98d1SCorey Minyard	  parameter sets the default value to generate these events,
521c9f98d1SCorey Minyard	  the module parameter for ipmi_msghandler named panic_op can
531c9f98d1SCorey Minyard	  be set to "string" to chose this value, this config simply
541c9f98d1SCorey Minyard	  causes the default value to be set to "string".
551da177e4SLinus Torvalds
561da177e4SLinus Torvaldsconfig IPMI_DEVICE_INTERFACE
571da177e4SLinus Torvalds	tristate 'Device interface for IPMI'
581da177e4SLinus Torvalds	help
591da177e4SLinus Torvalds	  This provides an IOCTL interface to the IPMI message handler so
601da177e4SLinus Torvalds	  userland processes may use IPMI.  It supports poll() and select().
611da177e4SLinus Torvalds
621da177e4SLinus Torvaldsconfig IPMI_SI
631da177e4SLinus Torvalds	tristate 'IPMI System Interface handler'
643cd83bacSCorey Minyard	select IPMI_PLAT_DATA
651da177e4SLinus Torvalds	help
661da177e4SLinus Torvalds	  Provides a driver for System Interfaces (KCS, SMIC, BT).
671da177e4SLinus Torvalds	  Currently, only KCS and SMIC are supported.  If
681da177e4SLinus Torvalds	  you are using IPMI, you should probably say "y" here.
691da177e4SLinus Torvalds
7025930707SCorey Minyardconfig IPMI_SSIF
7125930707SCorey Minyard	tristate 'IPMI SMBus handler (SSIF)'
728332cd49SCorey Minyard	depends on I2C
7325930707SCorey Minyard	help
7425930707SCorey Minyard	  Provides a driver for a SMBus interface to a BMC, meaning that you
7525930707SCorey Minyard	  have a driver that must be accessed over an I2C bus instead of a
7625930707SCorey Minyard	  standard interface.  This module requires I2C support.
7725930707SCorey Minyard
7863c4eb34SCorey Minyardconfig IPMI_IPMB
7963c4eb34SCorey Minyard	tristate 'IPMI IPMB interface'
80ed83855fSRandy Dunlap	depends on I2C && I2C_SLAVE
8163c4eb34SCorey Minyard	help
8263c4eb34SCorey Minyard	  Provides a driver for a system running right on the IPMB bus.
8363c4eb34SCorey Minyard	  It supports normal system interface messages to a BMC on the IPMB
8463c4eb34SCorey Minyard	  bus, and it also supports direct messaging on the bus using
8563c4eb34SCorey Minyard	  IPMB direct messages.  This module requires I2C support.
8663c4eb34SCorey Minyard
876a11e5c6SJeremy Kerrconfig IPMI_POWERNV
886a11e5c6SJeremy Kerr	depends on PPC_POWERNV
896a11e5c6SJeremy Kerr	tristate 'POWERNV (OPAL firmware) IPMI interface'
906a11e5c6SJeremy Kerr	help
916a11e5c6SJeremy Kerr	  Provides a driver for OPAL firmware-based IPMI interfaces.
926a11e5c6SJeremy Kerr
931da177e4SLinus Torvaldsconfig IPMI_WATCHDOG
941da177e4SLinus Torvalds	tristate 'IPMI Watchdog Timer'
951da177e4SLinus Torvalds	help
961da177e4SLinus Torvalds	  This enables the IPMI watchdog timer.
971da177e4SLinus Torvalds
981da177e4SLinus Torvaldsconfig IPMI_POWEROFF
991da177e4SLinus Torvalds	tristate 'IPMI Poweroff'
1001da177e4SLinus Torvalds	help
1011da177e4SLinus Torvalds	  This enables a function to power off the system with IPMI if
1021da177e4SLinus Torvalds	  the IPMI management controller is capable of this.
1031da177e4SLinus Torvalds
104bcf6b4bbSJan Engelhardtendif # IPMI_HANDLER
10554f9c4d0SAlistair Popple
10620d60f61SHaiyue Wangconfig IPMI_KCS_BMC
10720d60f61SHaiyue Wang	tristate
10820d60f61SHaiyue Wang
109be2ed207SHaiyue Wangconfig ASPEED_KCS_IPMI_BMC
110be2ed207SHaiyue Wang	depends on ARCH_ASPEED || COMPILE_TEST
111be2ed207SHaiyue Wang	select IPMI_KCS_BMC
112be2ed207SHaiyue Wang	select REGMAP_MMIO
113be2ed207SHaiyue Wang	tristate "Aspeed KCS IPMI BMC driver"
114be2ed207SHaiyue Wang	help
115be2ed207SHaiyue Wang	  Provides a driver for the KCS (Keyboard Controller Style) IPMI
116be2ed207SHaiyue Wang	  interface found on Aspeed SOCs (AST2400 and AST2500).
117be2ed207SHaiyue Wang
118be2ed207SHaiyue Wang	  The driver implements the BMC side of the KCS contorller, it
119be2ed207SHaiyue Wang	  provides the access of KCS IO space for BMC side.
120be2ed207SHaiyue Wang
1216b2e54f7SHaiyue Wangconfig NPCM7XX_KCS_IPMI_BMC
122dfef1accSTomer Maimon	depends on ARCH_NPCM || COMPILE_TEST
1236b2e54f7SHaiyue Wang	select IPMI_KCS_BMC
1246b2e54f7SHaiyue Wang	select REGMAP_MMIO
125dfef1accSTomer Maimon	tristate "NPCM KCS IPMI BMC driver"
1266b2e54f7SHaiyue Wang	help
1276b2e54f7SHaiyue Wang	  Provides a driver for the KCS (Keyboard Controller Style) IPMI
128dfef1accSTomer Maimon	  interface found on Nuvoton NPCM SOCs.
1296b2e54f7SHaiyue Wang
1306b2e54f7SHaiyue Wang	  The driver implements the BMC side of the KCS contorller, it
1316b2e54f7SHaiyue Wang	  provides the access of KCS IO space for BMC side.
1326b2e54f7SHaiyue Wang
1336b2e54f7SHaiyue Wang	  This support is also available as a module.  If so, the module
1346b2e54f7SHaiyue Wang	  will be called kcs_bmc_npcm7xx.
1356b2e54f7SHaiyue Wang
1367cafff99SAndrew Jefferyconfig IPMI_KCS_BMC_CDEV_IPMI
1377cafff99SAndrew Jeffery	depends on IPMI_KCS_BMC
1387cafff99SAndrew Jeffery	tristate "IPMI character device interface for BMC KCS devices"
1397cafff99SAndrew Jeffery	help
1407cafff99SAndrew Jeffery	  Provides a BMC-side character device implementing IPMI
1417cafff99SAndrew Jeffery	  semantics for KCS IPMI devices.
1427cafff99SAndrew Jeffery
1437cafff99SAndrew Jeffery	  Say YES if you wish to expose KCS devices on the BMC for IPMI
1447cafff99SAndrew Jeffery	  purposes.
1457cafff99SAndrew Jeffery
1467cafff99SAndrew Jeffery	  This support is also available as a module. The module will be
1477cafff99SAndrew Jeffery	  called kcs_bmc_cdev_ipmi.
1487cafff99SAndrew Jeffery
1493a3d2f6aSAndrew Jefferyconfig IPMI_KCS_BMC_SERIO
1503a3d2f6aSAndrew Jeffery	depends on IPMI_KCS_BMC && SERIO
1513a3d2f6aSAndrew Jeffery	tristate "SerIO adaptor for BMC KCS devices"
1523a3d2f6aSAndrew Jeffery	help
1533a3d2f6aSAndrew Jeffery	  Adapts the BMC KCS device for the SerIO subsystem. This allows users
1543a3d2f6aSAndrew Jeffery	  to take advantage of userspace interfaces provided by SerIO where
1553a3d2f6aSAndrew Jeffery	  appropriate.
1563a3d2f6aSAndrew Jeffery
1573a3d2f6aSAndrew Jeffery	  Say YES if you wish to expose KCS devices on the BMC via SerIO
1583a3d2f6aSAndrew Jeffery	  interfaces.
1593a3d2f6aSAndrew Jeffery
1603a3d2f6aSAndrew Jeffery	  This support is also available as a module. The module will be
1613a3d2f6aSAndrew Jeffery	  called kcs_bmc_serio.
1623a3d2f6aSAndrew Jeffery
16354f9c4d0SAlistair Poppleconfig ASPEED_BT_IPMI_BMC
164eb994594SAndrew Jeffery	depends on ARCH_ASPEED || COMPILE_TEST
165*2a587b9aSRandy Dunlap	depends on MFD_SYSCON
166*2a587b9aSRandy Dunlap	select REGMAP_MMIO
16754f9c4d0SAlistair Popple	tristate "BT IPMI bmc driver"
16854f9c4d0SAlistair Popple	help
16954f9c4d0SAlistair Popple	  Provides a driver for the BT (Block Transfer) IPMI interface
17054f9c4d0SAlistair Popple	  found on Aspeed SOCs (AST2400 and AST2500). The driver
17154f9c4d0SAlistair Popple	  implements the BMC side of the BT interface.
17251bd6f29SAsmaa Mnebhi
173dd2bc5ccSQuan Nguyenconfig SSIF_IPMI_BMC
174dd2bc5ccSQuan Nguyen	tristate "SSIF IPMI BMC driver"
175dd2bc5ccSQuan Nguyen	depends on I2C && I2C_SLAVE
176dd2bc5ccSQuan Nguyen	help
177dd2bc5ccSQuan Nguyen	  This enables the IPMI SMBus system interface (SSIF) at the
178dd2bc5ccSQuan Nguyen	  management (BMC) side.
179dd2bc5ccSQuan Nguyen
180dd2bc5ccSQuan Nguyen	  The driver implements the BMC side of the SMBus system
181dd2bc5ccSQuan Nguyen	  interface (SSIF).
182dd2bc5ccSQuan Nguyen
18351bd6f29SAsmaa Mnebhiconfig IPMB_DEVICE_INTERFACE
18451bd6f29SAsmaa Mnebhi	tristate 'IPMB Interface handler'
185102308f5SYueHaibing	depends on I2C
18651bd6f29SAsmaa Mnebhi	depends on I2C_SLAVE
18751bd6f29SAsmaa Mnebhi	help
18851bd6f29SAsmaa Mnebhi	  Provides a driver for a device (Satellite MC) to
18951bd6f29SAsmaa Mnebhi	  receive requests and send responses back to the BMC via
19051bd6f29SAsmaa Mnebhi	  the IPMB interface. This module requires I2C support.
191