From c023ec3d2fbf7d60a812eecd0e966fb5e85c6eb6 Mon Sep 17 00:00:00 2001 From: "Mark D. Studebaker" Date: Sat, 16 Nov 2002 19:11:36 +0000 Subject: [PATCH] add ipmi driver docs git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@1614 7894878c-1315-0410-8ee3-d5d059ff63e0 --- doc/busses/i2c-ipmb | 55 +++++++++++++++++ doc/busses/i2c-ipmi | 61 +++++++++++++++++++ doc/chips/SUMMARY | 10 +++- doc/chips/bmcsensors | 136 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 260 insertions(+), 2 deletions(-) create mode 100644 doc/busses/i2c-ipmb create mode 100644 doc/busses/i2c-ipmi create mode 100644 doc/chips/bmcsensors diff --git a/doc/busses/i2c-ipmb b/doc/busses/i2c-ipmb new file mode 100644 index 00000000..6c2f6e79 --- /dev/null +++ b/doc/busses/i2c-ipmb @@ -0,0 +1,55 @@ +Kernel driver `i2c-ipmb.o' + +Status: Alpha + +Supported adapters: + * IPMI BMC + +Author: Mark D. Studebaker + + +Module Parameters +----------------- +(none) + + +Description +----------- +This is an adapter which provides access to the IPMB +(Intelligent Platform Management Bus) and other I2C / SMBus busses +behind the BMC (Baseboard Management Controller) via +IPMI (Intelligent Platform Management Interface). + +This provides low-level access to all devices on busses +behind the BMC. For high-level access to sensors known +to the BMC, use the i2c-ipmi and bmcsensors modules. + +This module REQUIRES the IPMI kernel patch by Corey Minyard, +v13 or higher, available at http://openipmi.sourceforge.net . +Other IPMI drivers are not supported. + +See http://www.intel.com/design/servers/ipmi/ for +IPMI standards information. + +You must configure the following features in your kernel +(under Character Devices): + IPMI top-level message handler + IPMI KCS handler +The IPMI device interface and IPMI watchdog handler are not required. + +If the KCS handler (ipmi_kcs_drv) is configured as a module, +you must modprobe it separately, it will not load automatically +when you modprobe i2c-ipmi or ipmi_msghandler (unless you set up +/etc/modules.conf to load ipmi_kcs_drv when ipmi_msghandler is loaded). + +Issues +------ +Only one BMC is supported - shouldn't be a problem. + +Alpha! + + + +********************** +The lm_sensors project gratefully acknowledges the support of +Hewlett Packard (Ft. Collins) in the development of this driver. diff --git a/doc/busses/i2c-ipmi b/doc/busses/i2c-ipmi new file mode 100644 index 00000000..7832c776 --- /dev/null +++ b/doc/busses/i2c-ipmi @@ -0,0 +1,61 @@ +Kernel driver `i2c-ipmi.o' + +Status: Alpha + +Supported adapters: + * IPMI BMC + +Author: Mark D. Studebaker + + +Module Parameters +----------------- +(none) + + +Description +----------- +This is a "dummy" adapter which provides access to the +BMC (Baseboard Management Controller) via IPMI (Intelligent Platform +Management Interface). It is used by the bmcsensors module. + +Together with the bmcsensors module, this provides high-level +access to sensors known by the BMC. For low-level access to +IPMB (I2C/SMBus) busses behind the BMC, use the i2c-ipmb module. + +This module REQUIRES the IPMI kernel patch by Corey Minyard, +v13 or higher, available at http://openipmi.sourceforge.net . +Other IPMI drivers are not supported. + +See http://www.intel.com/design/servers/ipmi/ for +IPMI standards information. + +You must configure the following features in your kernel +(under Character Devices): + IPMI top-level message handler + IPMI KCS handler +The IPMI device interface and IPMI watchdog handler are not required. + +If the KCS handler (ipmi_kcs_drv) is configured as a module, +you must modprobe it separately, it will not load automatically +when you modprobe i2c-ipmi or ipmi_msghandler (unless you set up +/etc/modules.conf to load ipmi_kcs_drv when ipmi_msghandler is loaded). + +Issues +------ +Only one BMC is supported - shouldn't be a problem. + +Only one client is supported - to be fixed. + +Libsensors was hacked to support this dummy driver; only +the ISA dummy driver was supported previously. +The library needs further enhancements for full +dummy driver support. + +Alpha! + + + +********************** +The lm_sensors project gratefully acknowledges the support of +Hewlett Packard (Ft. Collins) in the development of this driver. diff --git a/doc/chips/SUMMARY b/doc/chips/SUMMARY index e26a35d8..92822973 100644 --- a/doc/chips/SUMMARY +++ b/doc/chips/SUMMARY @@ -50,12 +50,12 @@ adm1021 tc1068 2 - - - yes no tcm1617 2 - - - yes no thmc10 2 - - - yes no + mc1066 2 - - - yes no (xeon - no detection - requires force_adm1021 parameter) xeon 1 - - - yes no (the following chips are detected as a max1617) ne1617 2 - - - yes no ne1617a 2 - - - yes no - mc1066 2 - - - yes no adm1024 adm1024 3 6 - 1 dac yes no @@ -68,6 +68,9 @@ adm9240 ds1780 1 6 2 1 dac yes no lm81 1 6 2 1 dac yes no +bmcsensors + bmcsensors ? ? ? - no no + ds1621 ds1621 1 - - - yes no (the following chip is detected as a ds1621) @@ -125,6 +128,9 @@ mtp008 sis5595 sis5595 0-1 4-5 2 - no yes +smartbatt + smartbatt 1 1 - - yes no + smsc74m1 smsc74m1 - - 2 2 no yes (LPC) @@ -207,13 +213,13 @@ This may help identify a chip after doing a 'i2cdump [bus] [address]'. 0x49 TI 0x4D Maxim 0x50, 0x45, 0x47 Fujitsu-Siemens (at 0x00, 0x01, 0x02) +0x54 On Semi 0x5CA3 Winbond (at 0x4F) 0x90 ITE (at 0x58) 0xA3 Winbond (at 0x4F) 0xAC Myson (at 0x58) 0xC3 Asus (at 0x4F) 0xDA Dallas -0x54 Onsemi ------------------ diff --git a/doc/chips/bmcsensors b/doc/chips/bmcsensors new file mode 100644 index 00000000..3badc285 --- /dev/null +++ b/doc/chips/bmcsensors @@ -0,0 +1,136 @@ +Kernel driver `bmcsensors.o' +========================== + +Status: Alpha + +Supported chips: + * IPMI BMC + Prefix `bmc' + Requires dummy adapter i2c-ipmi; + Driver will be registered as bmc-ipmi-0000. + +Author: M. Studebaker + +License: GPL + + +Module Parameters +----------------- + +None. + + +Detection +--------- + +Registers only with i2c-ipmi. + + +Description +----------- + +Together with the i2c-ipmi module, this provides high-level +access to sensors known by the BMC. For low-level access to +IPMB (I2C/SMBus) busses behind the BMC, use the i2c-ipmb module +and individual chip drivers. + +This module REQUIRES the IPMI kernel patch by Corey Minyard, +v13 or higher, available at http://openipmi.sourceforge.net . +Other IPMI drivers are not supported. + +See http://www.intel.com/design/servers/ipmi/ for +IPMI standards information. + +You must configure the following features in your kernel +(under Character Devices): + IPMI top-level message handler + IPMI KCS handler +The IPMI device interface and IPMI watchdog handler are not required. + +If the KCS handler (ipmi_kcs_drv) is configured as a module, +you must modprobe it separately, it will not load automatically +when you modprobe i2c-ipmi or ipmi_msghandler (unless you set up +/etc/modules.conf to load ipmi_kcs_drv when ipmi_msghandler is loaded). + +/proc entries +------------- + +The BMC SDR's (Sensor Data Records) are scanned and +the /proc table is built dynamically. Sensor types and quantities +depend on what the BMC supports. + + curr1-n Currents. Max, min, and reading in amps. + fan1-n Fan speeds. Min and reading in RPM. + in1-n Voltages. Max, min, and reading in volts. + temp1-n Temps. Max, hysteresis or min, and reading in degrees C. + +Thresholds will appear as 0 if unsupported or unreadable, as indicated +in the SDR. + +If the thresholds are not settable (as indicated in the SDR), the +/proc permissions for that sensor will be 444. + +After the SDR's are scanned, the module will print +the sensor names and bindings to syslog/dmesg. +Cut these messages out and paste them to /etc/sensors.conf +so that 'sensors' has correct labeling. + + +Issues +------ +The module will not register in /proc/sys/dev/sensors until +the SDR's are scanned. This may take several seconds. + +The driver uses a very simple state machine. It only sends +one message at a time and then waits for a response. +This makes the driver relatively slow. +If a response is an error or does not arrive, the driver +will probably be stuck. + +/proc access kicks off an update but returns the old data, +not the new; need to wait for update to finish and then return. + +Probably there are some locking issues. + +Every attempt is made to present the sensor data in /proc in a +manner consistent with lm_sensors /proc standards, as defined +in doc/developers/proc. Given the wide variation in possible SDR definitions, +this may not generate expected or useful data. + +IPMI supports up to 4 max and 4 min thresholds (non-recoverable, critical, +non-critical, and hysteresis) for each sensor. This driver +tries to pick out the best one and exports it as the max and min +to /proc. + +ins start at 1, other modules start at in0. + +Alarms and thresholds are not yet supported. + +Threshold-only sensors are not supported. + +Threshold setting is not yet supported. + +1's and 2's complement formats not yet supported. + +Non-linear conversions not supported. + +Fan divs are not supported (or required) - should the driver +export a fan_div entry (1 1 1 ...) for compatibility? + +Supports only sensor types 1-4 (temp, voltage, current, and fan). + +Libsensors can't handle dynamic /proc entries so the table +in lib/chips.c must be static and contain the max number of +each sensor. Bmcsensors can register more of a sensor type +than libsensors supports in its static table. + +Only one BMC is supported - shouldn't be a problem. + +Alpha! + + + + +********************** +The lm_sensors project gratefully acknowledges the support of +Hewlett Packard (Ft. Collins) in the development of this driver.