~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux-2.6.17/Documentation/hwmon/fscher

Version: ~ [ 2.6.16 ] ~ [ 2.6.17 ] ~
Architecture: ~ [ ia64 ] ~ [ i386 ] ~ [ arm ] ~ [ ppc ] ~ [ sparc64 ] ~

  1 Kernel driver fscher
  2 ====================
  3 
  4 Supported chips:
  5   * Fujitsu-Siemens Hermes chip
  6     Prefix: 'fscher'
  7     Addresses scanned: I2C 0x73
  8 
  9 Authors:
 10         Reinhard Nissl <rnissl@gmx.de> based on work
 11         from Hermann Jung <hej@odn.de>,
 12         Frodo Looijaard <frodol@dds.nl>,
 13         Philip Edelbrock <phil@netroedge.com>
 14 
 15 Description
 16 -----------
 17 
 18 This driver implements support for the Fujitsu-Siemens Hermes chip. It is
 19 described in the 'Register Set Specification BMC Hermes based Systemboard'
 20 from Fujitsu-Siemens.
 21 
 22 The Hermes chip implements a hardware-based system management, e.g. for
 23 controlling fan speed and core voltage. There is also a watchdog counter on
 24 the chip which can trigger an alarm and even shut the system down.
 25 
 26 The chip provides three temperature values (CPU, motherboard and
 27 auxiliary), three voltage values (+12V, +5V and battery) and three fans
 28 (power supply, CPU and auxiliary).
 29 
 30 Temperatures are measured in degrees Celsius. The resolution is 1 degree.
 31 
 32 Fan rotation speeds are reported in RPM (rotations per minute). The value
 33 can be divided by a programmable divider (1, 2 or 4) which is stored on
 34 the chip.
 35 
 36 Voltage sensors (also known as "in" sensors) report their values in volts.
 37 
 38 All values are reported as final values from the driver. There is no need
 39 for further calculations.
 40 
 41 
 42 Detailed description
 43 --------------------
 44 
 45 Below you'll find a single line description of all the bit values. With
 46 this information, you're able to decode e. g. alarms, wdog, etc. To make
 47 use of the watchdog, you'll need to set the watchdog time and enable the
 48 watchdog. After that it is necessary to restart the watchdog time within
 49 the specified period of time, or a system reset will occur.
 50 
 51 * revision
 52   READING & 0xff = 0x??: HERMES revision identification
 53 
 54 * alarms
 55   READING & 0x80 = 0x80: CPU throttling active
 56   READING & 0x80 = 0x00: CPU running at full speed
 57 
 58   READING & 0x10 = 0x10: software event (see control:1)
 59   READING & 0x10 = 0x00: no software event
 60 
 61   READING & 0x08 = 0x08: watchdog event (see wdog:2)
 62   READING & 0x08 = 0x00: no watchdog event
 63 
 64   READING & 0x02 = 0x02: thermal event (see temp*:1)
 65   READING & 0x02 = 0x00: no thermal event
 66 
 67   READING & 0x01 = 0x01: fan event (see fan*:1)
 68   READING & 0x01 = 0x00: no fan event
 69 
 70   READING & 0x13 ! 0x00: ALERT LED is flashing
 71 
 72 * control
 73   READING & 0x01 = 0x01: software event
 74   READING & 0x01 = 0x00: no software event
 75 
 76   WRITING & 0x01 = 0x01: set software event
 77   WRITING & 0x01 = 0x00: clear software event
 78 
 79 * watchdog_control
 80   READING & 0x80 = 0x80: power off on watchdog event while thermal event
 81   READING & 0x80 = 0x00: watchdog power off disabled (just system reset enabled)
 82 
 83   READING & 0x40 = 0x40: watchdog timebase 60 seconds (see also wdog:1)
 84   READING & 0x40 = 0x00: watchdog timebase  2 seconds
 85 
 86   READING & 0x10 = 0x10: watchdog enabled
 87   READING & 0x10 = 0x00: watchdog disabled
 88 
 89   WRITING & 0x80 = 0x80: enable "power off on watchdog event while thermal event"
 90   WRITING & 0x80 = 0x00: disable "power off on watchdog event while thermal event"
 91 
 92   WRITING & 0x40 = 0x40: set watchdog timebase to 60 seconds
 93   WRITING & 0x40 = 0x00: set watchdog timebase to  2 seconds
 94 
 95   WRITING & 0x20 = 0x20: disable watchdog
 96 
 97   WRITING & 0x10 = 0x10: enable watchdog / restart watchdog time
 98 
 99 * watchdog_state
100   READING & 0x02 = 0x02: watchdog system reset occurred
101   READING & 0x02 = 0x00: no watchdog system reset occurred
102 
103   WRITING & 0x02 = 0x02: clear watchdog event
104 
105 * watchdog_preset
106   READING & 0xff = 0x??: configured watch dog time in units (see wdog:3 0x40)
107 
108   WRITING & 0xff = 0x??: configure watch dog time in units
109 
110 * in*     (0: +5V, 1: +12V, 2: onboard 3V battery)
111   READING: actual voltage value
112 
113 * temp*_status   (1: CPU sensor, 2: onboard sensor, 3: auxiliary sensor)
114   READING & 0x02 = 0x02: thermal event (overtemperature)
115   READING & 0x02 = 0x00: no thermal event
116 
117   READING & 0x01 = 0x01: sensor is working
118   READING & 0x01 = 0x00: sensor is faulty
119 
120   WRITING & 0x02 = 0x02: clear thermal event
121 
122 * temp*_input   (1: CPU sensor, 2: onboard sensor, 3: auxiliary sensor)
123   READING: actual temperature value
124 
125 * fan*_status   (1: power supply fan, 2: CPU fan, 3: auxiliary fan)
126   READING & 0x04 = 0x04: fan event (fan fault)
127   READING & 0x04 = 0x00: no fan event
128 
129   WRITING & 0x04 = 0x04: clear fan event
130 
131 * fan*_div (1: power supply fan, 2: CPU fan, 3: auxiliary fan)
132         Divisors 2,4 and 8 are supported, both for reading and writing
133 
134 * fan*_pwm   (1: power supply fan, 2: CPU fan, 3: auxiliary fan)
135   READING & 0xff = 0x00: fan may be switched off
136   READING & 0xff = 0x01: fan must run at least at minimum speed (supply: 6V)
137   READING & 0xff = 0xff: fan must run at maximum speed (supply: 12V)
138   READING & 0xff = 0x??: fan must run at least at given speed (supply: 6V..12V)
139 
140   WRITING & 0xff = 0x00: fan may be switched off
141   WRITING & 0xff = 0x01: fan must run at least at minimum speed (supply: 6V)
142   WRITING & 0xff = 0xff: fan must run at maximum speed (supply: 12V)
143   WRITING & 0xff = 0x??: fan must run at least at given speed (supply: 6V..12V)
144 
145 * fan*_input   (1: power supply fan, 2: CPU fan, 3: auxiliary fan)
146   READING: actual RPM value
147 
148 
149 Limitations
150 -----------
151 
152 * Measuring fan speed
153 It seems that the chip counts "ripples" (typical fans produce 2 ripples per
154 rotation while VERAX fans produce 18) in a 9-bit register. This register is
155 read out every second, then the ripple prescaler (2, 4 or 8) is applied and
156 the result is stored in the 8 bit output register. Due to the limitation of
157 the counting register to 9 bits, it is impossible to measure a VERAX fan
158 properly (even with a prescaler of 8). At its maximum speed of 3500 RPM the
159 fan produces 1080 ripples per second which causes the counting register to
160 overflow twice, leading to only 186 RPM.
161 
162 * Measuring input voltages
163 in2 ("battery") reports the voltage of the onboard lithium battery and not
164 +3.3V from the power supply.
165 
166 * Undocumented features
167 Fujitsu-Siemens Computers has not documented all features of the chip so
168 far. Their software, System Guard, shows that there are a still some
169 features which cannot be controlled by this implementation.

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.