1Kernel driver fscher 2==================== 3 4Supported chips: 5 * Fujitsu-Siemens Hermes chip 6 Prefix: 'fscher' 7 Addresses scanned: I2C 0x73 8 9Authors: 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 15Description 16----------- 17 18This driver implements support for the Fujitsu-Siemens Hermes chip. It is 19described in the 'Register Set Specification BMC Hermes based Systemboard' 20from Fujitsu-Siemens. 21 22The Hermes chip implements a hardware-based system management, e.g. for 23controlling fan speed and core voltage. There is also a watchdog counter on 24the chip which can trigger an alarm and even shut the system down. 25 26The chip provides three temperature values (CPU, motherboard and 27auxiliary), three voltage values (+12V, +5V and battery) and three fans 28(power supply, CPU and auxiliary). 29 30Temperatures are measured in degrees Celsius. The resolution is 1 degree. 31 32Fan rotation speeds are reported in RPM (rotations per minute). The value 33can be divided by a programmable divider (1, 2 or 4) which is stored on 34the chip. 35 36Voltage sensors (also known as "in" sensors) report their values in volts. 37 38All values are reported as final values from the driver. There is no need 39for further calculations. 40 41 42Detailed description 43-------------------- 44 45Below you'll find a single line description of all the bit values. With 46this information, you're able to decode e. g. alarms, wdog, etc. To make 47use of the watchdog, you'll need to set the watchdog time and enable the 48watchdog. After that it is necessary to restart the watchdog time within 49the 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 149Limitations 150----------- 151 152* Measuring fan speed 153It seems that the chip counts "ripples" (typical fans produce 2 ripples per 154rotation while VERAX fans produce 18) in a 9-bit register. This register is 155read out every second, then the ripple prescaler (2, 4 or 8) is applied and 156the result is stored in the 8 bit output register. Due to the limitation of 157the counting register to 9 bits, it is impossible to measure a VERAX fan 158properly (even with a prescaler of 8). At its maximum speed of 3500 RPM the 159fan produces 1080 ripples per second which causes the counting register to 160overflow twice, leading to only 186 RPM. 161 162* Measuring input voltages 163in2 ("battery") reports the voltage of the onboard lithium battery and not 164+3.3V from the power supply. 165 166* Undocumented features 167Fujitsu-Siemens Computers has not documented all features of the chip so 168far. Their software, System Guard, shows that there are a still some 169features which cannot be controlled by this implementation. 170