Lines Matching +full:ipmi +full:- +full:bt
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
186 --------
204 offsets a little easier :-).
231 /* Place-holder for the data, don't make any assumptions about
241 -------------------------------------------
244 view of the IPMI interfaces. It allows multiple SMI interfaces to be
252 When your code comes up, the IPMI driver may or may not have detected
253 if IPMI devices exist. So you might have to defer your setup until
280 To send a message from kernel-land, the ipmi_request_settime() call does
282 self-explanatory. However, it takes a "msgid" parameter. This is NOT
306 When you send a command (which is defined by the lowest-order bit of
307 the netfn per the IPMI spec) on the IPMB bus, the driver will
309 command. If the response is not receive in the IPMI-specified 5
330 The driver takes care of polling for IPMI events and receiving
337 "val" to non-zero. Any events that have been received by the driver
355 -------------------------------
368 -------------
370 The SI driver allows KCS, BT, and SMIC interfaces to be configured
392 The si_type may be either "kcs", "smic", or "bt". If you leave it blank, it
395 If you specify addrs as non-zero for an interface, the driver will
399 If you specify ports as non-zero for an interface, the driver will
402 If you specify irqs as non-zero for an interface, the driver will
411 locations and they may not be in 8-bit registers. These parameters
421 data used by IPMI is 8-bits wide, but it may be inside a larger
425 Since the register size may be larger than 32 bits, the IPMI data may not
427 the data to get to the actual IPMI data.
429 The slave_addrs specifies the IPMI address of the local BMC. This is
434 (if set to 0) the kernel IPMI daemon. Normally this is auto-detected
459 If your IPMI interface does not support interrupts and is a KCS or
460 SMIC interface, the IPMI driver will start a kernel thread for the
461 interface to help speed things up. This is a low-priority kernel
462 thread that constantly polls the IPMI driver while an IPMI operation
474 tuned to your needs. Maybe, someday, auto-tuning will be added, but
475 that's not a simple thing and even the auto-tuning would need to be
481 write-only parameter. You write a string to this interface. The string
488 add|remove,kcs|bt|smic,mem|i/o,<address>[,<opt1>[,<opt2>[,...]]]
505 -----------------------
522 name of the adapter, as shown in /sys/class/i2c-adapter/i2c-<n>/name.
523 It is *NOT* i2c-<n> itself. Also, the comparison is done ignoring
529 IPMI messages: 1, driver state: 2, timing: 4, I2C probe: 8
537 The slave_addrs specifies the IPMI address of the local BMC. This is
544 Discovering the IPMI compliant BMC on the SMBus can cause devices on
545 the I2C bus to fail. The SMBus driver writes a "Get Device ID" IPMI
564 The I2C driver does not support non-blocking access or polling, so
565 this driver cannod to IPMI panic events, extend the watchdog at panic
566 time, or other panic-related IPMI functions without special kernel
574 ------------
576 Get the detailed info related with the IPMI device
577 --------------------------------------------------
580 the address came from or the raw base device for the IPMI interface.
581 You can use the IPMI smi_watcher to catch the IPMI interfaces as they
604 --------
606 A watchdog timer is provided that implements the Linux-standard
615 The default is -1, which means to pick the first one registered.
618 is the amount of seconds before the reset that the pre-timeout panic will
666 gets a pre-action. During a panic or a reboot, the watchdog will
671 comes from the IPMI controller, so it must assume that if it gets an
672 otherwise unhandled NMI, it must be from IPMI and it will panic
682 --------------
684 The OpenIPMI driver supports the ability to put semi-custom and custom
687 one event on a panic in a standard IPMI event format. If you enable
695 * EvM Rev: 0x03 (this event is formatting in IPMI 1.0 format)
698 * Event Dir | Event Type: 0x6f (Assertion, sensor-specific event info)
703 See the IPMI spec for the details of the event layout. This event is
709 * Record ID (bytes 0-1): Set by the SEL.
710 * Record type (byte 2): 0xf0 (OEM non-timestamped)
729 --------
731 If the poweroff capability is selected, the IPMI driver will install
734 it will send the proper IPMI commands to do this. This is supported on
738 either be zero (do a power down) or non-zero (do a power cycle, power
742 in /proc/sys/dev/ipmi/poweroff_powercycle. Note that if the system
746 code should use. The default is -1, which means to pick the first one