xref: /linux/drivers/char/ipmi/Kconfig (revision cb9f145f638d7afa633632a9290d6ad06caeb8ee)
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
87*d46651d4SBinbin Zhouconfig IPMI_LS2K
88*d46651d4SBinbin Zhou	bool 'Loongson-2K IPMI interface'
89*d46651d4SBinbin Zhou	depends on LOONGARCH
90*d46651d4SBinbin Zhou	select MFD_LS2K_BMC_CORE
91*d46651d4SBinbin Zhou	help
92*d46651d4SBinbin Zhou	  Provides a driver for Loongson-2K IPMI interfaces.
93*d46651d4SBinbin Zhou
946a11e5c6SJeremy Kerrconfig IPMI_POWERNV
956a11e5c6SJeremy Kerr	depends on PPC_POWERNV
966a11e5c6SJeremy Kerr	tristate 'POWERNV (OPAL firmware) IPMI interface'
976a11e5c6SJeremy Kerr	help
986a11e5c6SJeremy Kerr	  Provides a driver for OPAL firmware-based IPMI interfaces.
996a11e5c6SJeremy Kerr
1001da177e4SLinus Torvaldsconfig IPMI_WATCHDOG
1011da177e4SLinus Torvalds	tristate 'IPMI Watchdog Timer'
1021da177e4SLinus Torvalds	help
1031da177e4SLinus Torvalds	  This enables the IPMI watchdog timer.
1041da177e4SLinus Torvalds
1051da177e4SLinus Torvaldsconfig IPMI_POWEROFF
1061da177e4SLinus Torvalds	tristate 'IPMI Poweroff'
1071da177e4SLinus Torvalds	help
1081da177e4SLinus Torvalds	  This enables a function to power off the system with IPMI if
1091da177e4SLinus Torvalds	  the IPMI management controller is capable of this.
1101da177e4SLinus Torvalds
111bcf6b4bbSJan Engelhardtendif # IPMI_HANDLER
11254f9c4d0SAlistair Popple
11320d60f61SHaiyue Wangconfig IPMI_KCS_BMC
11420d60f61SHaiyue Wang	tristate
11520d60f61SHaiyue Wang
116be2ed207SHaiyue Wangconfig ASPEED_KCS_IPMI_BMC
117be2ed207SHaiyue Wang	depends on ARCH_ASPEED || COMPILE_TEST
118be2ed207SHaiyue Wang	select IPMI_KCS_BMC
119be2ed207SHaiyue Wang	select REGMAP_MMIO
120be2ed207SHaiyue Wang	tristate "Aspeed KCS IPMI BMC driver"
121be2ed207SHaiyue Wang	help
122be2ed207SHaiyue Wang	  Provides a driver for the KCS (Keyboard Controller Style) IPMI
123be2ed207SHaiyue Wang	  interface found on Aspeed SOCs (AST2400 and AST2500).
124be2ed207SHaiyue Wang
125be2ed207SHaiyue Wang	  The driver implements the BMC side of the KCS contorller, it
126be2ed207SHaiyue Wang	  provides the access of KCS IO space for BMC side.
127be2ed207SHaiyue Wang
1286b2e54f7SHaiyue Wangconfig NPCM7XX_KCS_IPMI_BMC
129dfef1accSTomer Maimon	depends on ARCH_NPCM || COMPILE_TEST
1306b2e54f7SHaiyue Wang	select IPMI_KCS_BMC
1316b2e54f7SHaiyue Wang	select REGMAP_MMIO
132dfef1accSTomer Maimon	tristate "NPCM KCS IPMI BMC driver"
1336b2e54f7SHaiyue Wang	help
1346b2e54f7SHaiyue Wang	  Provides a driver for the KCS (Keyboard Controller Style) IPMI
135dfef1accSTomer Maimon	  interface found on Nuvoton NPCM SOCs.
1366b2e54f7SHaiyue Wang
1376b2e54f7SHaiyue Wang	  The driver implements the BMC side of the KCS contorller, it
1386b2e54f7SHaiyue Wang	  provides the access of KCS IO space for BMC side.
1396b2e54f7SHaiyue Wang
1406b2e54f7SHaiyue Wang	  This support is also available as a module.  If so, the module
1416b2e54f7SHaiyue Wang	  will be called kcs_bmc_npcm7xx.
1426b2e54f7SHaiyue Wang
1437cafff99SAndrew Jefferyconfig IPMI_KCS_BMC_CDEV_IPMI
1447cafff99SAndrew Jeffery	depends on IPMI_KCS_BMC
1457cafff99SAndrew Jeffery	tristate "IPMI character device interface for BMC KCS devices"
1467cafff99SAndrew Jeffery	help
1477cafff99SAndrew Jeffery	  Provides a BMC-side character device implementing IPMI
1487cafff99SAndrew Jeffery	  semantics for KCS IPMI devices.
1497cafff99SAndrew Jeffery
1507cafff99SAndrew Jeffery	  Say YES if you wish to expose KCS devices on the BMC for IPMI
1517cafff99SAndrew Jeffery	  purposes.
1527cafff99SAndrew Jeffery
1537cafff99SAndrew Jeffery	  This support is also available as a module. The module will be
1547cafff99SAndrew Jeffery	  called kcs_bmc_cdev_ipmi.
1557cafff99SAndrew Jeffery
1563a3d2f6aSAndrew Jefferyconfig IPMI_KCS_BMC_SERIO
1573a3d2f6aSAndrew Jeffery	depends on IPMI_KCS_BMC && SERIO
1583a3d2f6aSAndrew Jeffery	tristate "SerIO adaptor for BMC KCS devices"
1593a3d2f6aSAndrew Jeffery	help
1603a3d2f6aSAndrew Jeffery	  Adapts the BMC KCS device for the SerIO subsystem. This allows users
1613a3d2f6aSAndrew Jeffery	  to take advantage of userspace interfaces provided by SerIO where
1623a3d2f6aSAndrew Jeffery	  appropriate.
1633a3d2f6aSAndrew Jeffery
1643a3d2f6aSAndrew Jeffery	  Say YES if you wish to expose KCS devices on the BMC via SerIO
1653a3d2f6aSAndrew Jeffery	  interfaces.
1663a3d2f6aSAndrew Jeffery
1673a3d2f6aSAndrew Jeffery	  This support is also available as a module. The module will be
1683a3d2f6aSAndrew Jeffery	  called kcs_bmc_serio.
1693a3d2f6aSAndrew Jeffery
17054f9c4d0SAlistair Poppleconfig ASPEED_BT_IPMI_BMC
171eb994594SAndrew Jeffery	depends on ARCH_ASPEED || COMPILE_TEST
1722a587b9aSRandy Dunlap	depends on MFD_SYSCON
1732a587b9aSRandy Dunlap	select REGMAP_MMIO
17454f9c4d0SAlistair Popple	tristate "BT IPMI bmc driver"
17554f9c4d0SAlistair Popple	help
17654f9c4d0SAlistair Popple	  Provides a driver for the BT (Block Transfer) IPMI interface
17754f9c4d0SAlistair Popple	  found on Aspeed SOCs (AST2400 and AST2500). The driver
17854f9c4d0SAlistair Popple	  implements the BMC side of the BT interface.
17951bd6f29SAsmaa Mnebhi
180dd2bc5ccSQuan Nguyenconfig SSIF_IPMI_BMC
181dd2bc5ccSQuan Nguyen	tristate "SSIF IPMI BMC driver"
182dd2bc5ccSQuan Nguyen	depends on I2C && I2C_SLAVE
183dd2bc5ccSQuan Nguyen	help
184dd2bc5ccSQuan Nguyen	  This enables the IPMI SMBus system interface (SSIF) at the
185dd2bc5ccSQuan Nguyen	  management (BMC) side.
186dd2bc5ccSQuan Nguyen
187dd2bc5ccSQuan Nguyen	  The driver implements the BMC side of the SMBus system
188dd2bc5ccSQuan Nguyen	  interface (SSIF).
189dd2bc5ccSQuan Nguyen
19051bd6f29SAsmaa Mnebhiconfig IPMB_DEVICE_INTERFACE
19151bd6f29SAsmaa Mnebhi	tristate 'IPMB Interface handler'
192102308f5SYueHaibing	depends on I2C
19351bd6f29SAsmaa Mnebhi	depends on I2C_SLAVE
19451bd6f29SAsmaa Mnebhi	help
19551bd6f29SAsmaa Mnebhi	  Provides a driver for a device (Satellite MC) to
19651bd6f29SAsmaa Mnebhi	  receive requests and send responses back to the BMC via
19751bd6f29SAsmaa Mnebhi	  the IPMB interface. This module requires I2C support.
198