diff options
author | Corey Minyard <cminyard@mvista.com> | 2016-10-25 21:31:53 -0400 |
---|---|---|
committer | Corey Minyard <cminyard@mvista.com> | 2016-11-07 13:16:06 -0500 |
commit | c11daf6a8fcc42d540ad6d7bb06a6a203de908b3 (patch) | |
tree | 18cc9c3b8e365318752c38568c7eeadb918efdf2 /Documentation/IPMI.txt | |
parent | 56189b5f2f0f386838f278e93654d2e2cbb51c9a (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.txt | 57 |
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 | |||
111 | I2C kernel driver's SMBus interfaces to send and receive IPMI messages | 111 | I2C kernel driver's SMBus interfaces to send and receive IPMI messages |
112 | over the SMBus. | 112 | over the SMBus. |
113 | 113 | ||
114 | ipmi_powernv - A driver for access BMCs on POWERNV systems. | ||
115 | |||
114 | ipmi_watchdog - IPMI requires systems to have a very capable watchdog | 116 | ipmi_watchdog - IPMI requires systems to have a very capable watchdog |
115 | timer. This driver implements the standard Linux watchdog timer | 117 | timer. This driver implements the standard Linux watchdog timer |
116 | interface on top of the IPMI message handler. | 118 | interface on top of the IPMI message handler. |
@@ -118,17 +120,15 @@ interface on top of the IPMI message handler. | |||
118 | ipmi_poweroff - Some systems support the ability to be turned off via | 120 | ipmi_poweroff - Some systems support the ability to be turned off via |
119 | IPMI commands. | 121 | IPMI commands. |
120 | 122 | ||
121 | These are all individually selectable via configuration options. | 123 | bt-bmc - This is not part of the main driver, but instead a driver for |
124 | accessing a BMC-side interface of a BT interface. It is used on BMCs | ||
125 | running Linux to provide an interface to the host. | ||
122 | 126 | ||
123 | Note that the KCS-only interface has been removed. The af_ipmi driver | 127 | These are all individually selectable via configuration options. |
124 | is no longer supported and has been removed because it was impossible | ||
125 | to do 32 bit emulation on 64-bit kernels with it. | ||
126 | 128 | ||
127 | Much documentation for the interface is in the include files. The | 129 | Much documentation for the interface is in the include files. The |
128 | IPMI include files are: | 130 | IPMI include files are: |
129 | 131 | ||
130 | net/af_ipmi.h - Contains the socket interface. | ||
131 | |||
132 | linux/ipmi.h - Contains the user interface and IOCTL interface for IPMI. | 132 | linux/ipmi.h - Contains the user interface and IOCTL interface for IPMI. |
133 | 133 | ||
134 | linux/ipmi_smi.h - Contains the interface for system management interfaces | 134 | linux/ipmi_smi.h - Contains the interface for system management interfaces |
@@ -245,6 +245,16 @@ addressed (because some boards actually have multiple BMCs on them) | |||
245 | and the user should not have to care what type of SMI is below them. | 245 | and the user should not have to care what type of SMI is below them. |
246 | 246 | ||
247 | 247 | ||
248 | Watching For Interfaces | ||
249 | |||
250 | When your code comes up, the IPMI driver may or may not have detected | ||
251 | if IPMI devices exist. So you might have to defer your setup until | ||
252 | the device is detected, or you might be able to do it immediately. | ||
253 | To handle this, and to allow for discovery, you register an SMI | ||
254 | watcher with ipmi_smi_watcher_register() to iterate over interfaces | ||
255 | and tell you when they come and go. | ||
256 | |||
257 | |||
248 | Creating the User | 258 | Creating the User |
249 | 259 | ||
250 | To user the message handler, you must first create a user using | 260 | To user the message handler, you must first create a user using |
@@ -263,7 +273,7 @@ closing the device automatically destroys the user. | |||
263 | 273 | ||
264 | Messaging | 274 | Messaging |
265 | 275 | ||
266 | To send a message from kernel-land, the ipmi_request() call does | 276 | To send a message from kernel-land, the ipmi_request_settime() call does |
267 | pretty much all message handling. Most of the parameter are | 277 | pretty much all message handling. Most of the parameter are |
268 | self-explanatory. However, it takes a "msgid" parameter. This is NOT | 278 | self-explanatory. However, it takes a "msgid" parameter. This is NOT |
269 | the sequence number of messages. It is simply a long value that is | 279 | the sequence number of messages. It is simply a long value that is |
@@ -352,11 +362,12 @@ that for more details. | |||
352 | The SI Driver | 362 | The SI Driver |
353 | ------------- | 363 | ------------- |
354 | 364 | ||
355 | The SI driver allows up to 4 KCS or SMIC interfaces to be configured | 365 | The SI driver allows KCS, BT, and SMIC interfaces to be configured |
356 | in the system. By default, scan the ACPI tables for interfaces, and | 366 | in the system. It discovers interfaces through a host of different |
357 | if it doesn't find any the driver will attempt to register one KCS | 367 | methods, depending on the system. |
358 | interface at the spec-specified I/O port 0xca2 without interrupts. | 368 | |
359 | You can change this at module load time (for a module) with: | 369 | You can specify up to four interfaces on the module load line and |
370 | control 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 | ||
373 | Each of these except try... items is a list, the first item for the | 384 | Each 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. | |||
386 | If you specify irqs as non-zero for an interface, the driver will | 397 | If you specify irqs as non-zero for an interface, the driver will |
387 | attempt to use the given interrupt for the device. | 398 | attempt to use the given interrupt for the device. |
388 | 399 | ||
389 | trydefaults sets whether the standard IPMI interface at 0xca2 and | ||
390 | any interfaces specified by ACPE are tried. By default, the driver | ||
391 | tries it, set this value to zero to turn this off. | ||
392 | |||
393 | The other try... items disable discovery by their corresponding | 400 | The other try... items disable discovery by their corresponding |
394 | names. These are all enabled by default, set them to zero to disable | 401 | names. These are all enabled by default, set them to zero to disable |
395 | them. The tryplatform disables openfirmware. | 402 | them. 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 | ||
445 | It works the same as the module parameters of the same names. | 452 | It works the same as the module parameters of the same names. |
446 | 453 | ||
447 | By default, the driver will attempt to detect any device specified by | ||
448 | ACPI, and if none of those then a KCS device at the spec-specified | ||
449 | 0xca2. If you want to turn this off, set the "trydefaults" option to | ||
450 | false. | ||
451 | |||
452 | If your IPMI interface does not support interrupts and is a KCS or | 454 | If your IPMI interface does not support interrupts and is a KCS or |
453 | SMIC interface, the IPMI driver will start a kernel thread for the | 455 | SMIC interface, the IPMI driver will start a kernel thread for the |
454 | interface to help speed things up. This is a low-priority kernel | 456 | interface 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 | ||
506 | The addresses are normal I2C addresses. The adapter is the string | 509 | The addresses are normal I2C addresses. The adapter is the string |
@@ -513,6 +516,9 @@ spaces in kernel parameters. | |||
513 | The debug flags are bit flags for each BMC found, they are: | 516 | The debug flags are bit flags for each BMC found, they are: |
514 | IPMI messages: 1, driver state: 2, timing: 4, I2C probe: 8 | 517 | IPMI messages: 1, driver state: 2, timing: 4, I2C probe: 8 |
515 | 518 | ||
519 | The tryxxx parameters can be used to disable detecting interfaces | ||
520 | from various sources. | ||
521 | |||
516 | Setting dbg_probe to 1 will enable debugging of the probing and | 522 | Setting dbg_probe to 1 will enable debugging of the probing and |
517 | detection process for BMCs on the SMBusses. | 523 | detection 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 | ||
540 | These are the same options as on the module command line. | 547 | These are the same options as on the module command line. |
541 | 548 | ||