aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorCorey Minyard <minyard@acm.org>2004-08-22 23:04:14 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-08-22 23:04:14 -0700
commit41556780ed65b58645095589133dc42c8b9570e9 (patch)
treedbc31a638441c8f26abe91e12b8345fb3de12fc6 /Documentation
parent1354e8f58dd3d7d6592d6a89d5df0cdbb43df7ef (diff)
downloadhistory-41556780ed65b58645095589133dc42c8b9570e9.tar.gz
[PATCH] IPMI driver updates
Some people found some bugs and some missing functions in the IPMI driver, so I have patching things together for the next release. The attached patch moves to version 33 of the driver and contains: * SMBIOS table support for specifying register spacing. This allows non-contiguous registers to be specified and some machines do this. * ACPI table updates to support all the possible register sizes and bit offsets into the registers for the IPMI information. * Support for command line parameters to specify register spacing, sizes, and bit offsets. * Support for power control with IPMI. This allows a halt to power down a machine with IPMI. * A fix for a race condition with interrupts enabled on an SMP machine. A lock was released then reclaimed, but there was code later that assumed that had not happened. * A fix for protecting the driver against bad responses from the controller chip. In the past, the driver had assumed that the controller chip would not give it bad data. This has turned out to be a bad assumption * ACPI interrupt handlers now return a return value, adjust accordingly. Thank you to all the people who helped me with this. Signed-off-by: Corey Minyard <minyard@acm.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/IPMI.txt25
1 files changed, 25 insertions, 0 deletions
diff --git a/Documentation/IPMI.txt b/Documentation/IPMI.txt
index f049b66d0298c6..d6dcb2769e0c28 100644
--- a/Documentation/IPMI.txt
+++ b/Documentation/IPMI.txt
@@ -340,6 +340,8 @@ You can change this at module load time (for a module) with:
modprobe ipmi_si.o type=<type1>,<type2>....
ports=<port1>,<port2>... addrs=<addr1>,<addr2>...
irqs=<irq1>,<irq2>... trydefaults=[0|1]
+ regspacings=<sp1>,<sp2>,... regsizes=<size1>,<size2>,...
+ regshifts=<shift1>,<shift2>,...
Each of these except si_trydefaults is a list, the first item for the
first interface, second item for the second interface, etc.
@@ -361,12 +363,35 @@ si_trydefaults sets whether the standard IPMI interface at 0xca2 and
any interfaces specified by ACPE are tried. By default, the driver
tries it, set this value to zero to turn this off.
+The next three parameters have to do with register layout. The
+registers used by the interfaces may not appear at successive
+locations and they may not be in 8-bit registers. These parameters
+allow the layout of the data in the registers to be more precisely
+specified.
+
+The regspacings parameter give the number of bytes between successive
+register start addresses. For instance, if the regspacing is set to 4
+and the start address is 0xca2, then the address for the second
+register would be 0xca6. This defaults to 1.
+
+The regsizes parameter gives the size of a register, in bytes. The
+data used by IPMI is 8-bits wide, but it may be inside a larger
+register. This parameter allows the read and write type to specified.
+It may be 1, 2, 4, or 8. The default is 1.
+
+Since the register size may be larger than 32 bits, the IPMI data may not
+be in the lower 8 bits. The regshifts parameter give the amount to shift
+the data to get to the actual IPMI data.
+
When compiled into the kernel, the addresses can be specified on the
kernel command line as:
ipmi_si.type=<type1>,<type2>...
ipmi_si.ports=<port1>,<port2>... ipmi_si.addrs=<addr1>,<addr2>...
ipmi_si.irqs=<irq1>,<irq2>... ipmi_si.trydefaults=[0|1]
+ ipmi_si.regspacings=<sp1>,<sp2>,...
+ ipmi_si.regsizes=<size1>,<size2>,...
+ ipmi_si.regshifts=<shift1>,<shift2>,...
It works the same as the module parameters of the same names.