xref: /linux/drivers/char/ipmi/Kconfig (revision 49bda4826843be0ef97a162009a29ea3a63f3935)
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
70*ed98f8e2SMichal Clapinskiconfig IPMI_SI_ASYNC_INIT
71*ed98f8e2SMichal Clapinski	bool 'Asynchronous initialization of IPMI System Interface'
72*ed98f8e2SMichal Clapinski	depends on IPMI_SI
73*ed98f8e2SMichal Clapinski	default n
74*ed98f8e2SMichal Clapinski	help
75*ed98f8e2SMichal Clapinski	  Offloads individual SMI inits. It speeds up the boot time.
76*ed98f8e2SMichal Clapinski	  It also introduces a very small risk that something else might fail
77*ed98f8e2SMichal Clapinski	  if it depends on synchronous IPMI init.
78*ed98f8e2SMichal Clapinski
7925930707SCorey Minyardconfig IPMI_SSIF
8025930707SCorey Minyard	tristate 'IPMI SMBus handler (SSIF)'
818332cd49SCorey Minyard	depends on I2C
8225930707SCorey Minyard	help
8325930707SCorey Minyard	  Provides a driver for a SMBus interface to a BMC, meaning that you
8425930707SCorey Minyard	  have a driver that must be accessed over an I2C bus instead of a
8525930707SCorey Minyard	  standard interface.  This module requires I2C support.
8625930707SCorey Minyard
8763c4eb34SCorey Minyardconfig IPMI_IPMB
8863c4eb34SCorey Minyard	tristate 'IPMI IPMB interface'
89ed83855fSRandy Dunlap	depends on I2C && I2C_SLAVE
9063c4eb34SCorey Minyard	help
9163c4eb34SCorey Minyard	  Provides a driver for a system running right on the IPMB bus.
9263c4eb34SCorey Minyard	  It supports normal system interface messages to a BMC on the IPMB
9363c4eb34SCorey Minyard	  bus, and it also supports direct messaging on the bus using
9463c4eb34SCorey Minyard	  IPMB direct messages.  This module requires I2C support.
9563c4eb34SCorey Minyard
96d46651d4SBinbin Zhouconfig IPMI_LS2K
97d46651d4SBinbin Zhou	bool 'Loongson-2K IPMI interface'
98d46651d4SBinbin Zhou	depends on LOONGARCH
99d46651d4SBinbin Zhou	select MFD_LS2K_BMC_CORE
100d46651d4SBinbin Zhou	help
101d46651d4SBinbin Zhou	  Provides a driver for Loongson-2K IPMI interfaces.
102d46651d4SBinbin Zhou
1036a11e5c6SJeremy Kerrconfig IPMI_POWERNV
1046a11e5c6SJeremy Kerr	depends on PPC_POWERNV
1056a11e5c6SJeremy Kerr	tristate 'POWERNV (OPAL firmware) IPMI interface'
1066a11e5c6SJeremy Kerr	help
1076a11e5c6SJeremy Kerr	  Provides a driver for OPAL firmware-based IPMI interfaces.
1086a11e5c6SJeremy Kerr
1091da177e4SLinus Torvaldsconfig IPMI_WATCHDOG
1101da177e4SLinus Torvalds	tristate 'IPMI Watchdog Timer'
1111da177e4SLinus Torvalds	help
1121da177e4SLinus Torvalds	  This enables the IPMI watchdog timer.
1131da177e4SLinus Torvalds
1141da177e4SLinus Torvaldsconfig IPMI_POWEROFF
1151da177e4SLinus Torvalds	tristate 'IPMI Poweroff'
1161da177e4SLinus Torvalds	help
1171da177e4SLinus Torvalds	  This enables a function to power off the system with IPMI if
1181da177e4SLinus Torvalds	  the IPMI management controller is capable of this.
1191da177e4SLinus Torvalds
120bcf6b4bbSJan Engelhardtendif # IPMI_HANDLER
12154f9c4d0SAlistair Popple
12220d60f61SHaiyue Wangconfig IPMI_KCS_BMC
12320d60f61SHaiyue Wang	tristate
12420d60f61SHaiyue Wang
125be2ed207SHaiyue Wangconfig ASPEED_KCS_IPMI_BMC
126be2ed207SHaiyue Wang	depends on ARCH_ASPEED || COMPILE_TEST
127be2ed207SHaiyue Wang	select IPMI_KCS_BMC
128be2ed207SHaiyue Wang	select REGMAP_MMIO
129be2ed207SHaiyue Wang	tristate "Aspeed KCS IPMI BMC driver"
130be2ed207SHaiyue Wang	help
131be2ed207SHaiyue Wang	  Provides a driver for the KCS (Keyboard Controller Style) IPMI
132be2ed207SHaiyue Wang	  interface found on Aspeed SOCs (AST2400 and AST2500).
133be2ed207SHaiyue Wang
134be2ed207SHaiyue Wang	  The driver implements the BMC side of the KCS contorller, it
135be2ed207SHaiyue Wang	  provides the access of KCS IO space for BMC side.
136be2ed207SHaiyue Wang
1376b2e54f7SHaiyue Wangconfig NPCM7XX_KCS_IPMI_BMC
138dfef1accSTomer Maimon	depends on ARCH_NPCM || COMPILE_TEST
1396b2e54f7SHaiyue Wang	select IPMI_KCS_BMC
1406b2e54f7SHaiyue Wang	select REGMAP_MMIO
141dfef1accSTomer Maimon	tristate "NPCM KCS IPMI BMC driver"
1426b2e54f7SHaiyue Wang	help
1436b2e54f7SHaiyue Wang	  Provides a driver for the KCS (Keyboard Controller Style) IPMI
144dfef1accSTomer Maimon	  interface found on Nuvoton NPCM SOCs.
1456b2e54f7SHaiyue Wang
1466b2e54f7SHaiyue Wang	  The driver implements the BMC side of the KCS contorller, it
1476b2e54f7SHaiyue Wang	  provides the access of KCS IO space for BMC side.
1486b2e54f7SHaiyue Wang
1496b2e54f7SHaiyue Wang	  This support is also available as a module.  If so, the module
1506b2e54f7SHaiyue Wang	  will be called kcs_bmc_npcm7xx.
1516b2e54f7SHaiyue Wang
1527cafff99SAndrew Jefferyconfig IPMI_KCS_BMC_CDEV_IPMI
1537cafff99SAndrew Jeffery	depends on IPMI_KCS_BMC
1547cafff99SAndrew Jeffery	tristate "IPMI character device interface for BMC KCS devices"
1557cafff99SAndrew Jeffery	help
1567cafff99SAndrew Jeffery	  Provides a BMC-side character device implementing IPMI
1577cafff99SAndrew Jeffery	  semantics for KCS IPMI devices.
1587cafff99SAndrew Jeffery
1597cafff99SAndrew Jeffery	  Say YES if you wish to expose KCS devices on the BMC for IPMI
1607cafff99SAndrew Jeffery	  purposes.
1617cafff99SAndrew Jeffery
1627cafff99SAndrew Jeffery	  This support is also available as a module. The module will be
1637cafff99SAndrew Jeffery	  called kcs_bmc_cdev_ipmi.
1647cafff99SAndrew Jeffery
1653a3d2f6aSAndrew Jefferyconfig IPMI_KCS_BMC_SERIO
1663a3d2f6aSAndrew Jeffery	depends on IPMI_KCS_BMC && SERIO
1673a3d2f6aSAndrew Jeffery	tristate "SerIO adaptor for BMC KCS devices"
1683a3d2f6aSAndrew Jeffery	help
1693a3d2f6aSAndrew Jeffery	  Adapts the BMC KCS device for the SerIO subsystem. This allows users
1703a3d2f6aSAndrew Jeffery	  to take advantage of userspace interfaces provided by SerIO where
1713a3d2f6aSAndrew Jeffery	  appropriate.
1723a3d2f6aSAndrew Jeffery
1733a3d2f6aSAndrew Jeffery	  Say YES if you wish to expose KCS devices on the BMC via SerIO
1743a3d2f6aSAndrew Jeffery	  interfaces.
1753a3d2f6aSAndrew Jeffery
1763a3d2f6aSAndrew Jeffery	  This support is also available as a module. The module will be
1773a3d2f6aSAndrew Jeffery	  called kcs_bmc_serio.
1783a3d2f6aSAndrew Jeffery
17954f9c4d0SAlistair Poppleconfig ASPEED_BT_IPMI_BMC
180eb994594SAndrew Jeffery	depends on ARCH_ASPEED || COMPILE_TEST
1812a587b9aSRandy Dunlap	depends on MFD_SYSCON
1822a587b9aSRandy Dunlap	select REGMAP_MMIO
18354f9c4d0SAlistair Popple	tristate "BT IPMI bmc driver"
18454f9c4d0SAlistair Popple	help
18554f9c4d0SAlistair Popple	  Provides a driver for the BT (Block Transfer) IPMI interface
18654f9c4d0SAlistair Popple	  found on Aspeed SOCs (AST2400 and AST2500). The driver
18754f9c4d0SAlistair Popple	  implements the BMC side of the BT interface.
18851bd6f29SAsmaa Mnebhi
189dd2bc5ccSQuan Nguyenconfig SSIF_IPMI_BMC
190dd2bc5ccSQuan Nguyen	tristate "SSIF IPMI BMC driver"
191dd2bc5ccSQuan Nguyen	depends on I2C && I2C_SLAVE
192dd2bc5ccSQuan Nguyen	help
193dd2bc5ccSQuan Nguyen	  This enables the IPMI SMBus system interface (SSIF) at the
194dd2bc5ccSQuan Nguyen	  management (BMC) side.
195dd2bc5ccSQuan Nguyen
196dd2bc5ccSQuan Nguyen	  The driver implements the BMC side of the SMBus system
197dd2bc5ccSQuan Nguyen	  interface (SSIF).
198dd2bc5ccSQuan Nguyen
199d4464694SJian Zhangconfig SSIF_IPMI_BMC_KUNIT_TEST
200d4464694SJian Zhang	bool "KUnit tests for SSIF IPMI BMC driver" if !KUNIT_ALL_TESTS
20193b5d21eSJian Zhang	depends on KUNIT=y
202d4464694SJian Zhang	depends on SSIF_IPMI_BMC
203d4464694SJian Zhang	default KUNIT_ALL_TESTS
204d4464694SJian Zhang	help
205d4464694SJian Zhang	  This option builds unit tests that exercise the SSIF BMC state
206d4464694SJian Zhang	  machine, including request handling, response transmission,
207d4464694SJian Zhang	  and error paths such as aborted or truncated transfers.
208d4464694SJian Zhang
20951bd6f29SAsmaa Mnebhiconfig IPMB_DEVICE_INTERFACE
21051bd6f29SAsmaa Mnebhi	tristate 'IPMB Interface handler'
211102308f5SYueHaibing	depends on I2C
21251bd6f29SAsmaa Mnebhi	depends on I2C_SLAVE
21351bd6f29SAsmaa Mnebhi	help
21451bd6f29SAsmaa Mnebhi	  Provides a driver for a device (Satellite MC) to
21551bd6f29SAsmaa Mnebhi	  receive requests and send responses back to the BMC via
21651bd6f29SAsmaa Mnebhi	  the IPMB interface. This module requires I2C support.
217