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