About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / hwmon / fscher


Based on kernel version 2.6.31. Page generated on 2009-09-16 22:26 EST.

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[AT]gmx[DOT]de> based on work
11	        from Hermann Jung <hej[AT]odn[DOT]de>,
12	        Frodo Looijaard <frodol[AT]dds[DOT]nl>,
13	        Philip Edelbrock <phil[AT]netroedge[DOT]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.
Hide Line Numbers


About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog