Kconfig 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. #
  3. # IPMI device configuration
  4. #
  5. menuconfig IPMI_HANDLER
  6. tristate 'IPMI top-level message handler'
  7. depends on HAS_IOMEM
  8. select IPMI_DMI_DECODE if DMI
  9. help
  10. This enables the central IPMI message handler, required for IPMI
  11. to work.
  12. IPMI is a standard for managing sensors (temperature,
  13. voltage, etc.) in a system.
  14. See <file:Documentation/driver-api/ipmi.rst> for more details on the driver.
  15. If unsure, say N.
  16. config IPMI_DMI_DECODE
  17. select IPMI_PLAT_DATA
  18. bool
  19. config IPMI_PLAT_DATA
  20. bool
  21. if IPMI_HANDLER
  22. config IPMI_PANIC_EVENT
  23. bool 'Generate a panic event to all BMCs on a panic'
  24. help
  25. When a panic occurs, this will cause the IPMI message handler to,
  26. by default, generate an IPMI event describing the panic to each
  27. interface registered with the message handler. This is always
  28. available, the module parameter for ipmi_msghandler named
  29. panic_op can be set to "event" to chose this value, this config
  30. simply causes the default value to be set to "event".
  31. config IPMI_PANIC_STRING
  32. bool 'Generate OEM events containing the panic string'
  33. depends on IPMI_PANIC_EVENT
  34. help
  35. When a panic occurs, this will cause the IPMI message handler to,
  36. by default, generate IPMI OEM type f0 events holding the IPMB
  37. address of the panic generator (byte 4 of the event), a sequence
  38. number for the string (byte 5 of the event) and part of the
  39. string (the rest of the event). Bytes 1, 2, and 3 are the normal
  40. usage for an OEM event. You can fetch these events and use the
  41. sequence numbers to piece the string together. This config
  42. parameter sets the default value to generate these events,
  43. the module parameter for ipmi_msghandler named panic_op can
  44. be set to "string" to chose this value, this config simply
  45. causes the default value to be set to "string".
  46. config IPMI_DEVICE_INTERFACE
  47. tristate 'Device interface for IPMI'
  48. help
  49. This provides an IOCTL interface to the IPMI message handler so
  50. userland processes may use IPMI. It supports poll() and select().
  51. config IPMI_SI
  52. tristate 'IPMI System Interface handler'
  53. select IPMI_PLAT_DATA
  54. help
  55. Provides a driver for System Interfaces (KCS, SMIC, BT).
  56. Currently, only KCS and SMIC are supported. If
  57. you are using IPMI, you should probably say "y" here.
  58. config IPMI_SSIF
  59. tristate 'IPMI SMBus handler (SSIF)'
  60. depends on I2C
  61. help
  62. Provides a driver for a SMBus interface to a BMC, meaning that you
  63. have a driver that must be accessed over an I2C bus instead of a
  64. standard interface. This module requires I2C support.
  65. config IPMI_IPMB
  66. tristate 'IPMI IPMB interface'
  67. depends on I2C && I2C_SLAVE
  68. help
  69. Provides a driver for a system running right on the IPMB bus.
  70. It supports normal system interface messages to a BMC on the IPMB
  71. bus, and it also supports direct messaging on the bus using
  72. IPMB direct messages. This module requires I2C support.
  73. config IPMI_POWERNV
  74. depends on PPC_POWERNV
  75. tristate 'POWERNV (OPAL firmware) IPMI interface'
  76. help
  77. Provides a driver for OPAL firmware-based IPMI interfaces.
  78. config IPMI_WATCHDOG
  79. tristate 'IPMI Watchdog Timer'
  80. help
  81. This enables the IPMI watchdog timer.
  82. config IPMI_POWEROFF
  83. tristate 'IPMI Poweroff'
  84. help
  85. This enables a function to power off the system with IPMI if
  86. the IPMI management controller is capable of this.
  87. endif # IPMI_HANDLER
  88. config IPMI_KCS_BMC
  89. tristate
  90. config ASPEED_KCS_IPMI_BMC
  91. depends on ARCH_ASPEED || COMPILE_TEST
  92. select IPMI_KCS_BMC
  93. select REGMAP_MMIO
  94. tristate "Aspeed KCS IPMI BMC driver"
  95. help
  96. Provides a driver for the KCS (Keyboard Controller Style) IPMI
  97. interface found on Aspeed SOCs (AST2400 and AST2500).
  98. The driver implements the BMC side of the KCS contorller, it
  99. provides the access of KCS IO space for BMC side.
  100. config NPCM7XX_KCS_IPMI_BMC
  101. depends on ARCH_NPCM || COMPILE_TEST
  102. select IPMI_KCS_BMC
  103. select REGMAP_MMIO
  104. tristate "NPCM KCS IPMI BMC driver"
  105. help
  106. Provides a driver for the KCS (Keyboard Controller Style) IPMI
  107. interface found on Nuvoton NPCM SOCs.
  108. The driver implements the BMC side of the KCS contorller, it
  109. provides the access of KCS IO space for BMC side.
  110. This support is also available as a module. If so, the module
  111. will be called kcs_bmc_npcm7xx.
  112. config IPMI_KCS_BMC_CDEV_IPMI
  113. depends on IPMI_KCS_BMC
  114. tristate "IPMI character device interface for BMC KCS devices"
  115. help
  116. Provides a BMC-side character device implementing IPMI
  117. semantics for KCS IPMI devices.
  118. Say YES if you wish to expose KCS devices on the BMC for IPMI
  119. purposes.
  120. This support is also available as a module. The module will be
  121. called kcs_bmc_cdev_ipmi.
  122. config IPMI_KCS_BMC_SERIO
  123. depends on IPMI_KCS_BMC && SERIO
  124. tristate "SerIO adaptor for BMC KCS devices"
  125. help
  126. Adapts the BMC KCS device for the SerIO subsystem. This allows users
  127. to take advantage of userspace interfaces provided by SerIO where
  128. appropriate.
  129. Say YES if you wish to expose KCS devices on the BMC via SerIO
  130. interfaces.
  131. This support is also available as a module. The module will be
  132. called kcs_bmc_serio.
  133. config ASPEED_BT_IPMI_BMC
  134. depends on ARCH_ASPEED || COMPILE_TEST
  135. depends on MFD_SYSCON
  136. select REGMAP_MMIO
  137. tristate "BT IPMI bmc driver"
  138. help
  139. Provides a driver for the BT (Block Transfer) IPMI interface
  140. found on Aspeed SOCs (AST2400 and AST2500). The driver
  141. implements the BMC side of the BT interface.
  142. config IPMB_DEVICE_INTERFACE
  143. tristate 'IPMB Interface handler'
  144. depends on I2C
  145. depends on I2C_SLAVE
  146. help
  147. Provides a driver for a device (Satellite MC) to
  148. receive requests and send responses back to the BMC via
  149. the IPMB interface. This module requires I2C support.