aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/IPMI.txt
diff options
context:
space:
mode:
authorCorey Minyard <cminyard@mvista.com>2016-10-25 21:31:53 -0400
committerCorey Minyard <cminyard@mvista.com>2016-11-07 13:16:06 -0500
commitc11daf6a8fcc42d540ad6d7bb06a6a203de908b3 (patch)
tree18cc9c3b8e365318752c38568c7eeadb918efdf2 /Documentation/IPMI.txt
parent56189b5f2f0f386838f278e93654d2e2cbb51c9a (diff)
ipmi: Update documentation
The documentation has some information that was old and needed some things added that are new. Signed-off-by: Corey Minyard <cminyard@mvista.com>
Diffstat (limited to 'Documentation/IPMI.txt')
-rw-r--r--Documentation/IPMI.txt57
1 files changed, 32 insertions, 25 deletions
diff --git a/Documentation/IPMI.txt b/Documentation/IPMI.txt
index c0d8788e75d3..72292308d0f5 100644
--- a/Documentation/IPMI.txt
+++ b/Documentation/IPMI.txt
@@ -111,6 +111,8 @@ ipmi_ssif - A driver for accessing BMCs on the SMBus. It uses the
111I2C kernel driver's SMBus interfaces to send and receive IPMI messages 111I2C kernel driver's SMBus interfaces to send and receive IPMI messages
112over the SMBus. 112over the SMBus.
113 113
114ipmi_powernv - A driver for access BMCs on POWERNV systems.
115
114ipmi_watchdog - IPMI requires systems to have a very capable watchdog 116ipmi_watchdog - IPMI requires systems to have a very capable watchdog
115timer. This driver implements the standard Linux watchdog timer 117timer. This driver implements the standard Linux watchdog timer
116interface on top of the IPMI message handler. 118interface on top of the IPMI message handler.
@@ -118,17 +120,15 @@ interface on top of the IPMI message handler.
118ipmi_poweroff - Some systems support the ability to be turned off via 120ipmi_poweroff - Some systems support the ability to be turned off via
119IPMI commands. 121IPMI commands.
120 122
121These are all individually selectable via configuration options. 123bt-bmc - This is not part of the main driver, but instead a driver for
124accessing a BMC-side interface of a BT interface. It is used on BMCs
125running Linux to provide an interface to the host.
122 126
123Note that the KCS-only interface has been removed. The af_ipmi driver 127These are all individually selectable via configuration options.
124is no longer supported and has been removed because it was impossible
125to do 32 bit emulation on 64-bit kernels with it.
126 128
127Much documentation for the interface is in the include files. The 129Much documentation for the interface is in the include files. The
128IPMI include files are: 130IPMI include files are:
129 131
130net/af_ipmi.h - Contains the socket interface.
131
132linux/ipmi.h - Contains the user interface and IOCTL interface for IPMI. 132linux/ipmi.h - Contains the user interface and IOCTL interface for IPMI.
133 133
134linux/ipmi_smi.h - Contains the interface for system management interfaces 134linux/ipmi_smi.h - Contains the interface for system management interfaces
@@ -245,6 +245,16 @@ addressed (because some boards actually have multiple BMCs on them)
245and the user should not have to care what type of SMI is below them. 245and the user should not have to care what type of SMI is below them.
246 246
247 247
248Watching For Interfaces
249
250When your code comes up, the IPMI driver may or may not have detected
251if IPMI devices exist. So you might have to defer your setup until
252the device is detected, or you might be able to do it immediately.
253To handle this, and to allow for discovery, you register an SMI
254watcher with ipmi_smi_watcher_register() to iterate over interfaces
255and tell you when they come and go.
256
257
248Creating the User 258Creating the User
249 259
250To user the message handler, you must first create a user using 260To user the message handler, you must first create a user using
@@ -263,7 +273,7 @@ closing the device automatically destroys the user.
263 273
264Messaging 274Messaging
265 275
266To send a message from kernel-land, the ipmi_request() call does 276To send a message from kernel-land, the ipmi_request_settime() call does
267pretty much all message handling. Most of the parameter are 277pretty much all message handling. Most of the parameter are
268self-explanatory. However, it takes a "msgid" parameter. This is NOT 278self-explanatory. However, it takes a "msgid" parameter. This is NOT
269the sequence number of messages. It is simply a long value that is 279the sequence number of messages. It is simply a long value that is
@@ -352,11 +362,12 @@ that for more details.
352The SI Driver 362The SI Driver
353------------- 363-------------
354 364
355The SI driver allows up to 4 KCS or SMIC interfaces to be configured 365The SI driver allows KCS, BT, and SMIC interfaces to be configured
356in the system. By default, scan the ACPI tables for interfaces, and 366in the system. It discovers interfaces through a host of different
357if it doesn't find any the driver will attempt to register one KCS 367methods, depending on the system.
358interface at the spec-specified I/O port 0xca2 without interrupts. 368
359You can change this at module load time (for a module) with: 369You can specify up to four interfaces on the module load line and
370control some module parameters:
360 371
361 modprobe ipmi_si.o type=<type1>,<type2>.... 372 modprobe ipmi_si.o type=<type1>,<type2>....
362 ports=<port1>,<port2>... addrs=<addr1>,<addr2>... 373 ports=<port1>,<port2>... addrs=<addr1>,<addr2>...
@@ -367,7 +378,7 @@ You can change this at module load time (for a module) with:
367 force_kipmid=<enable1>,<enable2>,... 378 force_kipmid=<enable1>,<enable2>,...
368 kipmid_max_busy_us=<ustime1>,<ustime2>,... 379 kipmid_max_busy_us=<ustime1>,<ustime2>,...
369 unload_when_empty=[0|1] 380 unload_when_empty=[0|1]
370 trydefaults=[0|1] trydmi=[0|1] tryacpi=[0|1] 381 trydmi=[0|1] tryacpi=[0|1]
371 tryplatform=[0|1] trypci=[0|1] 382 tryplatform=[0|1] trypci=[0|1]
372 383
373Each of these except try... items is a list, the first item for the 384Each of these except try... items is a list, the first item for the
@@ -386,10 +397,6 @@ use the I/O port given as the device address.
386If you specify irqs as non-zero for an interface, the driver will 397If you specify irqs as non-zero for an interface, the driver will
387attempt to use the given interrupt for the device. 398attempt to use the given interrupt for the device.
388 399
389trydefaults sets whether the standard IPMI interface at 0xca2 and
390any interfaces specified by ACPE are tried. By default, the driver
391tries it, set this value to zero to turn this off.
392
393The other try... items disable discovery by their corresponding 400The other try... items disable discovery by their corresponding
394names. These are all enabled by default, set them to zero to disable 401names. These are all enabled by default, set them to zero to disable
395them. The tryplatform disables openfirmware. 402them. The tryplatform disables openfirmware.
@@ -434,7 +441,7 @@ kernel command line as:
434 441
435 ipmi_si.type=<type1>,<type2>... 442 ipmi_si.type=<type1>,<type2>...
436 ipmi_si.ports=<port1>,<port2>... ipmi_si.addrs=<addr1>,<addr2>... 443 ipmi_si.ports=<port1>,<port2>... ipmi_si.addrs=<addr1>,<addr2>...
437 ipmi_si.irqs=<irq1>,<irq2>... ipmi_si.trydefaults=[0|1] 444 ipmi_si.irqs=<irq1>,<irq2>...
438 ipmi_si.regspacings=<sp1>,<sp2>,... 445 ipmi_si.regspacings=<sp1>,<sp2>,...
439 ipmi_si.regsizes=<size1>,<size2>,... 446 ipmi_si.regsizes=<size1>,<size2>,...
440 ipmi_si.regshifts=<shift1>,<shift2>,... 447 ipmi_si.regshifts=<shift1>,<shift2>,...
@@ -444,11 +451,6 @@ kernel command line as:
444 451
445It works the same as the module parameters of the same names. 452It works the same as the module parameters of the same names.
446 453
447By default, the driver will attempt to detect any device specified by
448ACPI, and if none of those then a KCS device at the spec-specified
4490xca2. If you want to turn this off, set the "trydefaults" option to
450false.
451
452If your IPMI interface does not support interrupts and is a KCS or 454If your IPMI interface does not support interrupts and is a KCS or
453SMIC interface, the IPMI driver will start a kernel thread for the 455SMIC interface, the IPMI driver will start a kernel thread for the
454interface to help speed things up. This is a low-priority kernel 456interface to help speed things up. This is a low-priority kernel
@@ -500,7 +502,8 @@ at module load time (for a module) with:
500 addr=<i2caddr1>[,<i2caddr2>[,...]] 502 addr=<i2caddr1>[,<i2caddr2>[,...]]
501 adapter=<adapter1>[,<adapter2>[...]] 503 adapter=<adapter1>[,<adapter2>[...]]
502 dbg=<flags1>,<flags2>... 504 dbg=<flags1>,<flags2>...
503 slave_addrs=<addr1>,<addr2>,... 505 slave_addrs=<addr1>,<addr2>,...
506 tryacpi=[0|1] trydmi=[0|1]
504 [dbg_probe=1] 507 [dbg_probe=1]
505 508
506The addresses are normal I2C addresses. The adapter is the string 509The addresses are normal I2C addresses. The adapter is the string
@@ -513,6 +516,9 @@ spaces in kernel parameters.
513The debug flags are bit flags for each BMC found, they are: 516The debug flags are bit flags for each BMC found, they are:
514IPMI messages: 1, driver state: 2, timing: 4, I2C probe: 8 517IPMI messages: 1, driver state: 2, timing: 4, I2C probe: 8
515 518
519The tryxxx parameters can be used to disable detecting interfaces
520from various sources.
521
516Setting dbg_probe to 1 will enable debugging of the probing and 522Setting dbg_probe to 1 will enable debugging of the probing and
517detection process for BMCs on the SMBusses. 523detection process for BMCs on the SMBusses.
518 524
@@ -535,7 +541,8 @@ kernel command line as:
535 ipmi_ssif.adapter=<adapter1>[,<adapter2>[...]] 541 ipmi_ssif.adapter=<adapter1>[,<adapter2>[...]]
536 ipmi_ssif.dbg=<flags1>[,<flags2>[...]] 542 ipmi_ssif.dbg=<flags1>[,<flags2>[...]]
537 ipmi_ssif.dbg_probe=1 543 ipmi_ssif.dbg_probe=1
538 ipmi_ssif.slave_addrs=<addr1>[,<addr2>[...]] 544 ipmi_ssif.slave_addrs=<addr1>[,<addr2>[...]]
545 ipmi_ssif.tryacpi=[0|1] ipmi_ssif.trydmi=[0|1]
539 546
540These are the same options as on the module command line. 547These are the same options as on the module command line.
541 548