#
# IPMI device configuration
#

menuconfig IPMI_HANDLER
       tristate 'IPMI top-level message handler'
       depends on HAS_IOMEM
       help
         This enables the central IPMI message handler, required for IPMI
	 to work.

         IPMI is a standard for managing sensors (temperature,
         voltage, etc.) in a system.

         See <file:Documentation/IPMI.txt> for more details on the driver.

	 If unsure, say N.

if IPMI_HANDLER

config IPMI_PANIC_EVENT
       bool 'Generate a panic event to all BMCs on a panic'
       help
         When a panic occurs, this will cause the IPMI message handler to
	 generate an IPMI event describing the panic to each interface
	 registered with the message handler.

config IPMI_PANIC_STRING
	bool 'Generate OEM events containing the panic string'
	depends on IPMI_PANIC_EVENT
	help
	  When a panic occurs, this will cause the IPMI message handler to
	  generate IPMI OEM type f0 events holding the IPMB address of the
	  panic generator (byte 4 of the event), a sequence number for the
	  string (byte 5 of the event) and part of the string (the rest of the
	  event).  Bytes 1, 2, and 3 are the normal usage for an OEM event.
	  You can fetch these events and use the sequence numbers to piece the
	  string together.

config IPMI_DEVICE_INTERFACE
       tristate 'Device interface for IPMI'
       help
         This provides an IOCTL interface to the IPMI message handler so
	 userland processes may use IPMI.  It supports poll() and select().

config IPMI_SI
       tristate 'IPMI System Interface handler'
       help
         Provides a driver for System Interfaces (KCS, SMIC, BT).
	 Currently, only KCS and SMIC are supported.  If
	 you are using IPMI, you should probably say "y" here.

config IPMI_SI_PROBE_DEFAULTS
       bool 'Probe for all possible IPMI system interfaces by default'
       default n
       depends on IPMI_SI
       help
	 Modern systems will usually expose IPMI interfaces via a discoverable
	 firmware mechanism such as ACPI or DMI. Older systems do not, and so
	 the driver is forced to probe hardware manually. This may cause boot
	 delays. Say "n" here to disable this manual probing. IPMI will then
	 only be available on older systems if the "ipmi_si_intf.trydefaults=1"
	 boot argument is passed.

config IPMI_SSIF
       tristate 'IPMI SMBus handler (SSIF)'
       select I2C
       help
         Provides a driver for a SMBus interface to a BMC, meaning that you
	 have a driver that must be accessed over an I2C bus instead of a
	 standard interface.  This module requires I2C support.

config IPMI_POWERNV
       depends on PPC_POWERNV
       tristate 'POWERNV (OPAL firmware) IPMI interface'
       help
         Provides a driver for OPAL firmware-based IPMI interfaces.

config IPMI_WATCHDOG
       tristate 'IPMI Watchdog Timer'
       help
         This enables the IPMI watchdog timer.

config IPMI_POWEROFF
       tristate 'IPMI Poweroff'
       help
         This enables a function to power off the system with IPMI if
	 the IPMI management controller is capable of this.

endif # IPMI_HANDLER
