Lines Matching +full:ipmi +full:- +full:smic
2 The Linux IPMI Driver
7 The Intelligent Platform Management Interface, or IPMI, is a
12 standardized database for field-replaceable units (FRUs) and a watchdog
15 To use this, you need an interface to an IPMI controller in your
17 management software that can use the IPMI system.
19 This document describes how to use the IPMI driver for Linux. If you
20 are not familiar with IPMI itself, see the web site at
21 https://www.intel.com/design/servers/ipmi/index.htm. IPMI is a big
25 -------------
27 The Linux IPMI driver is modular, which means you have to pick several
29 these are available in the 'Character Devices' menu then the IPMI
32 No matter what, you must pick 'IPMI top-level message handler' to use
33 IPMI. What you do beyond that depends on your needs and hardware.
35 The message handler does not provide any user-level interfaces.
37 from userland, you need to select 'Device interface for IPMI' if you
41 properly provides the SMBIOS info for IPMI, the driver will detect it
43 will generally be either "KCS", "SMIC", or "BT", consult your hardware
44 manual), choose the 'IPMI SI handler' option. A driver also exists
45 for direct I2C access to the IPMI management controller. Some boards
47 this, choose 'IPMI SMBus handler', but be ready to try to do some
50 these enabled and let the drivers auto-detect what is present.
52 You should generally enable ACPI on your system, as systems with IPMI
56 their job correctly, the IPMI controller should be automatically
61 "The SMBus Driver" on how to hand-configure your system.
63 IPMI defines a standard watchdog timer. You can enable this with the
64 'IPMI Watchdog Timer' config option. If you compile the driver into
65 the kernel, then via a kernel command-line option you can have the
73 IPMI systems can often be powered off using IPMI commands. Select
74 'IPMI Poweroff' to do this. The driver will auto-detect if the system
75 can be powered off by IPMI. It is safe to enable this even if your
77 Radisys CPI1 card, and any IPMI system that supports standard chassis
89 ------------
91 The Linux IPMI driver is designed to be very modular and flexible, you
96 ipmi_msghandler - This is the central piece of software for the IPMI
98 IPMI users tie into this, and the IPMI physical interfaces (called
100 provides the kernelland interface for IPMI, but does not provide an
103 ipmi_devintf - This provides a userland IOCTL interface for the IPMI
105 as an IPMI user.
107 ipmi_si - A driver for various system interfaces. This supports KCS,
108 SMIC, and BT interfaces. Unless you have an SMBus interface or your
111 ipmi_ssif - A driver for accessing BMCs on the SMBus. It uses the
112 I2C kernel driver's SMBus interfaces to send and receive IPMI messages
115 ipmi_powernv - A driver for access BMCs on POWERNV systems.
117 ipmi_watchdog - IPMI requires systems to have a very capable watchdog
119 interface on top of the IPMI message handler.
121 ipmi_poweroff - Some systems support the ability to be turned off via
122 IPMI commands.
124 bt-bmc - This is not part of the main driver, but instead a driver for
125 accessing a BMC-side interface of a BT interface. It is used on BMCs
131 IPMI include files are:
133 linux/ipmi.h - Contains the user interface and IOCTL interface for IPMI.
135 linux/ipmi_smi.h - Contains the interface for system management interfaces
136 (things that interface to IPMI controllers) to use.
138 linux/ipmi_msgdefs.h - General definitions for base IPMI messaging.
142 ----------
144 The IPMI addressing works much like IP addresses, you have an overlay
181 than one channel, it corresponds to the channel as defined in the IPMI
203 --------
221 offsets a little easier :-).
248 /* Place-holder for the data, don't make any assumptions about
258 -------------------------------------------
261 view of the IPMI interfaces. It allows multiple SMI interfaces to be
269 When your code comes up, the IPMI driver may or may not have detected
270 if IPMI devices exist. So you might have to defer your setup until
297 To send a message from kernel-land, the ipmi_request_settime() call does
299 self-explanatory. However, it takes a "msgid" parameter. This is NOT
323 When you send a command (which is defined by the lowest-order bit of
324 the netfn per the IPMI spec) on the IPMB bus, the driver will
326 command. If the response is not receive in the IPMI-specified 5
347 The driver takes care of polling for IPMI events and receiving
354 "val" to non-zero. Any events that have been received by the driver
376 -------------------------------
389 -------------
391 The SI driver allows KCS, BT, and SMIC interfaces to be configured
413 The si_type may be either "kcs", "smic", or "bt". If you leave it blank, it
416 If you specify addrs as non-zero for an interface, the driver will
420 If you specify ports as non-zero for an interface, the driver will
423 If you specify irqs as non-zero for an interface, the driver will
432 locations and they may not be in 8-bit registers. These parameters
442 data used by IPMI is 8-bits wide, but it may be inside a larger
446 Since the register size may be larger than 32 bits, the IPMI data may not
448 the data to get to the actual IPMI data.
450 The slave_addrs specifies the IPMI address of the local BMC. This is
455 (if set to 0) the kernel IPMI daemon. Normally this is auto-detected
480 If your IPMI interface does not support interrupts and is a KCS or
481 SMIC interface, the IPMI driver will start a kernel thread for the
482 interface to help speed things up. This is a low-priority kernel
483 thread that constantly polls the IPMI driver while an IPMI operation
495 tuned to your needs. Maybe, someday, auto-tuning will be added, but
496 that's not a simple thing and even the auto-tuning would need to be
502 write-only parameter. You write a string to this interface. The string
509 add|remove,kcs|bt|smic,mem|i/o,<address>[,<opt1>[,<opt2>[,...]]]
526 -----------------------
543 name of the adapter, as shown in /sys/bus/i2c/devices/i2c-<n>/name.
544 It is *NOT* i2c-<n> itself. Also, the comparison is done ignoring
550 IPMI messages: 1, driver state: 2, timing: 4, I2C probe: 8
558 The slave_addrs specifies the IPMI address of the local BMC. This is
565 Discovering the IPMI compliant BMC on the SMBus can cause devices on
566 the I2C bus to fail. The SMBus driver writes a "Get Device ID" IPMI
585 The I2C driver does not support non-blocking access or polling, so
586 this driver cannod to IPMI panic events, extend the watchdog at panic
587 time, or other panic-related IPMI functions without special kernel
594 The IPMI IPMB Driver
595 --------------------
598 allows the interface to look like a normal IPMI interface. Sending
600 to the registered BMC on the system (default at IPMI address 0x20).
617 echo ipmi-ipmb <addr> > /sys/class/i2c-dev/i2c-<n>/device/new_device
619 Note that the address you give here is the I2C address, not the IPMI
631 channels being 0-7 and try the IPMB channels.
634 ------------
636 Get the detailed info related with the IPMI device
637 --------------------------------------------------
640 the address came from or the raw base device for the IPMI interface.
641 You can use the IPMI smi_watcher to catch the IPMI interfaces as they
664 --------
666 A watchdog timer is provided that implements the Linux-standard
675 The default is -1, which means to pick the first one registered.
678 is the amount of seconds before the reset that the pre-timeout panic will
726 gets a pre-action. During a panic or a reboot, the watchdog will
731 comes from the IPMI controller, so it must assume that if it gets an
732 otherwise unhandled NMI, it must be from IPMI and it will panic
742 --------------
744 The OpenIPMI driver supports the ability to put semi-custom and custom
747 one event on a panic in a standard IPMI event format. If you enable
755 * EvM Rev: 0x03 (this event is formatting in IPMI 1.0 format)
758 * Event Dir | Event Type: 0x6f (Assertion, sensor-specific event info)
763 See the IPMI spec for the details of the event layout. This event is
769 * Record ID (bytes 0-1): Set by the SEL.
770 * Record type (byte 2): 0xf0 (OEM non-timestamped)
789 --------
791 If the poweroff capability is selected, the IPMI driver will install
794 it will send the proper IPMI commands to do this. This is supported on
798 either be zero (do a power down) or non-zero (do a power cycle, power
802 in /proc/sys/dev/ipmi/poweroff_powercycle. Note that if the system
806 code should use. The default is -1, which means to pick the first one