OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [Documentation/] [hwmon/] [fscher] - Blame information for rev 62

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
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  based on work
11
        from Hermann Jung ,
12
        Frodo Looijaard ,
13
        Philip Edelbrock 
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.

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.