18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ci#
38c2ecf20Sopenharmony_ci# IPMI device configuration
48c2ecf20Sopenharmony_ci#
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_cimenuconfig IPMI_HANDLER
78c2ecf20Sopenharmony_ci	tristate 'IPMI top-level message handler'
88c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
98c2ecf20Sopenharmony_ci	select IPMI_DMI_DECODE if DMI
108c2ecf20Sopenharmony_ci	help
118c2ecf20Sopenharmony_ci	  This enables the central IPMI message handler, required for IPMI
128c2ecf20Sopenharmony_ci	  to work.
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ci	  IPMI is a standard for managing sensors (temperature,
158c2ecf20Sopenharmony_ci	  voltage, etc.) in a system.
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci	  See <file:Documentation/driver-api/ipmi.rst> for more details on the driver.
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci	  If unsure, say N.
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ciconfig IPMI_DMI_DECODE
228c2ecf20Sopenharmony_ci	select IPMI_PLAT_DATA
238c2ecf20Sopenharmony_ci	bool
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ciconfig IPMI_PLAT_DATA
268c2ecf20Sopenharmony_ci	bool
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ciif IPMI_HANDLER
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ciconfig IPMI_PANIC_EVENT
318c2ecf20Sopenharmony_ci	bool 'Generate a panic event to all BMCs on a panic'
328c2ecf20Sopenharmony_ci	help
338c2ecf20Sopenharmony_ci	  When a panic occurs, this will cause the IPMI message handler to,
348c2ecf20Sopenharmony_ci	  by default, generate an IPMI event describing the panic to each
358c2ecf20Sopenharmony_ci	  interface registered with the message handler.  This is always
368c2ecf20Sopenharmony_ci	  available, the module parameter for ipmi_msghandler named
378c2ecf20Sopenharmony_ci	  panic_op can be set to "event" to chose this value, this config
388c2ecf20Sopenharmony_ci	  simply causes the default value to be set to "event".
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ciconfig IPMI_PANIC_STRING
418c2ecf20Sopenharmony_ci	bool 'Generate OEM events containing the panic string'
428c2ecf20Sopenharmony_ci	depends on IPMI_PANIC_EVENT
438c2ecf20Sopenharmony_ci	help
448c2ecf20Sopenharmony_ci	  When a panic occurs, this will cause the IPMI message handler to,
458c2ecf20Sopenharmony_ci	  by default, generate IPMI OEM type f0 events holding the IPMB
468c2ecf20Sopenharmony_ci	  address of the panic generator (byte 4 of the event), a sequence
478c2ecf20Sopenharmony_ci	  number for the string (byte 5 of the event) and part of the
488c2ecf20Sopenharmony_ci	  string (the rest of the event).  Bytes 1, 2, and 3 are the normal
498c2ecf20Sopenharmony_ci	  usage for an OEM event.  You can fetch these events and use the
508c2ecf20Sopenharmony_ci	  sequence numbers to piece the string together.  This config
518c2ecf20Sopenharmony_ci	  parameter sets the default value to generate these events,
528c2ecf20Sopenharmony_ci	  the module parameter for ipmi_msghandler named panic_op can
538c2ecf20Sopenharmony_ci	  be set to "string" to chose this value, this config simply
548c2ecf20Sopenharmony_ci	  causes the default value to be set to "string".
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ciconfig IPMI_DEVICE_INTERFACE
578c2ecf20Sopenharmony_ci	tristate 'Device interface for IPMI'
588c2ecf20Sopenharmony_ci	help
598c2ecf20Sopenharmony_ci	  This provides an IOCTL interface to the IPMI message handler so
608c2ecf20Sopenharmony_ci	  userland processes may use IPMI.  It supports poll() and select().
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_ciconfig IPMI_SI
638c2ecf20Sopenharmony_ci	tristate 'IPMI System Interface handler'
648c2ecf20Sopenharmony_ci	select IPMI_PLAT_DATA
658c2ecf20Sopenharmony_ci	help
668c2ecf20Sopenharmony_ci	  Provides a driver for System Interfaces (KCS, SMIC, BT).
678c2ecf20Sopenharmony_ci	  Currently, only KCS and SMIC are supported.  If
688c2ecf20Sopenharmony_ci	  you are using IPMI, you should probably say "y" here.
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ciconfig IPMI_SSIF
718c2ecf20Sopenharmony_ci	tristate 'IPMI SMBus handler (SSIF)'
728c2ecf20Sopenharmony_ci	select I2C
738c2ecf20Sopenharmony_ci	help
748c2ecf20Sopenharmony_ci	  Provides a driver for a SMBus interface to a BMC, meaning that you
758c2ecf20Sopenharmony_ci	  have a driver that must be accessed over an I2C bus instead of a
768c2ecf20Sopenharmony_ci	  standard interface.  This module requires I2C support.
778c2ecf20Sopenharmony_ci
788c2ecf20Sopenharmony_ciconfig IPMI_POWERNV
798c2ecf20Sopenharmony_ci	depends on PPC_POWERNV
808c2ecf20Sopenharmony_ci	tristate 'POWERNV (OPAL firmware) IPMI interface'
818c2ecf20Sopenharmony_ci	help
828c2ecf20Sopenharmony_ci	  Provides a driver for OPAL firmware-based IPMI interfaces.
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ciconfig IPMI_WATCHDOG
858c2ecf20Sopenharmony_ci	tristate 'IPMI Watchdog Timer'
868c2ecf20Sopenharmony_ci	help
878c2ecf20Sopenharmony_ci	  This enables the IPMI watchdog timer.
888c2ecf20Sopenharmony_ci
898c2ecf20Sopenharmony_ciconfig IPMI_POWEROFF
908c2ecf20Sopenharmony_ci	tristate 'IPMI Poweroff'
918c2ecf20Sopenharmony_ci	help
928c2ecf20Sopenharmony_ci	  This enables a function to power off the system with IPMI if
938c2ecf20Sopenharmony_ci	  the IPMI management controller is capable of this.
948c2ecf20Sopenharmony_ci
958c2ecf20Sopenharmony_ciendif # IPMI_HANDLER
968c2ecf20Sopenharmony_ci
978c2ecf20Sopenharmony_ciconfig IPMI_KCS_BMC
988c2ecf20Sopenharmony_ci	tristate
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_ciconfig ASPEED_KCS_IPMI_BMC
1018c2ecf20Sopenharmony_ci	depends on ARCH_ASPEED || COMPILE_TEST
1028c2ecf20Sopenharmony_ci	select IPMI_KCS_BMC
1038c2ecf20Sopenharmony_ci	select REGMAP_MMIO
1048c2ecf20Sopenharmony_ci	tristate "Aspeed KCS IPMI BMC driver"
1058c2ecf20Sopenharmony_ci	help
1068c2ecf20Sopenharmony_ci	  Provides a driver for the KCS (Keyboard Controller Style) IPMI
1078c2ecf20Sopenharmony_ci	  interface found on Aspeed SOCs (AST2400 and AST2500).
1088c2ecf20Sopenharmony_ci
1098c2ecf20Sopenharmony_ci	  The driver implements the BMC side of the KCS contorller, it
1108c2ecf20Sopenharmony_ci	  provides the access of KCS IO space for BMC side.
1118c2ecf20Sopenharmony_ci
1128c2ecf20Sopenharmony_ciconfig NPCM7XX_KCS_IPMI_BMC
1138c2ecf20Sopenharmony_ci	depends on ARCH_NPCM7XX || COMPILE_TEST
1148c2ecf20Sopenharmony_ci	select IPMI_KCS_BMC
1158c2ecf20Sopenharmony_ci	select REGMAP_MMIO
1168c2ecf20Sopenharmony_ci	tristate "NPCM7xx KCS IPMI BMC driver"
1178c2ecf20Sopenharmony_ci	help
1188c2ecf20Sopenharmony_ci	  Provides a driver for the KCS (Keyboard Controller Style) IPMI
1198c2ecf20Sopenharmony_ci	  interface found on Nuvoton NPCM7xx SOCs.
1208c2ecf20Sopenharmony_ci
1218c2ecf20Sopenharmony_ci	  The driver implements the BMC side of the KCS contorller, it
1228c2ecf20Sopenharmony_ci	  provides the access of KCS IO space for BMC side.
1238c2ecf20Sopenharmony_ci
1248c2ecf20Sopenharmony_ci	  This support is also available as a module.  If so, the module
1258c2ecf20Sopenharmony_ci	  will be called kcs_bmc_npcm7xx.
1268c2ecf20Sopenharmony_ci
1278c2ecf20Sopenharmony_ciconfig ASPEED_BT_IPMI_BMC
1288c2ecf20Sopenharmony_ci	depends on ARCH_ASPEED || COMPILE_TEST
1298c2ecf20Sopenharmony_ci	depends on MFD_SYSCON
1308c2ecf20Sopenharmony_ci	select REGMAP_MMIO
1318c2ecf20Sopenharmony_ci	tristate "BT IPMI bmc driver"
1328c2ecf20Sopenharmony_ci	help
1338c2ecf20Sopenharmony_ci	  Provides a driver for the BT (Block Transfer) IPMI interface
1348c2ecf20Sopenharmony_ci	  found on Aspeed SOCs (AST2400 and AST2500). The driver
1358c2ecf20Sopenharmony_ci	  implements the BMC side of the BT interface.
1368c2ecf20Sopenharmony_ci
1378c2ecf20Sopenharmony_ciconfig IPMB_DEVICE_INTERFACE
1388c2ecf20Sopenharmony_ci	tristate 'IPMB Interface handler'
1398c2ecf20Sopenharmony_ci	depends on I2C
1408c2ecf20Sopenharmony_ci	depends on I2C_SLAVE
1418c2ecf20Sopenharmony_ci	help
1428c2ecf20Sopenharmony_ci	  Provides a driver for a device (Satellite MC) to
1438c2ecf20Sopenharmony_ci	  receive requests and send responses back to the BMC via
1448c2ecf20Sopenharmony_ci	  the IPMB interface. This module requires I2C support.
145