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

TOMOYO Linux Cross Reference
Linux/Documentation/hwmon/abituguru-datasheet.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/hwmon/abituguru-datasheet.rst (Version linux-6.12-rc7) and /Documentation/hwmon/abituguru-datasheet.rst (Version linux-5.18.19)


  1 ===============                                     1 ===============
  2 uGuru datasheet                                     2 uGuru datasheet
  3 ===============                                     3 ===============
  4                                                     4 
  5 First of all, what I know about uGuru is no fa      5 First of all, what I know about uGuru is no fact based on any help, hints or
  6 datasheet from Abit. The data I have got on uG      6 datasheet from Abit. The data I have got on uGuru have I assembled through
  7 my weak knowledge in "backwards engineering".       7 my weak knowledge in "backwards engineering".
  8 And just for the record, you may have noticed       8 And just for the record, you may have noticed uGuru isn't a chip developed by
  9 Abit, as they claim it to be. It's really just      9 Abit, as they claim it to be. It's really just an microprocessor (uC) created by
 10 Winbond (W83L950D). And no, reading the manual     10 Winbond (W83L950D). And no, reading the manual for this specific uC or
 11 mailing  Windbond for help won't give any usef     11 mailing  Windbond for help won't give any useful data about uGuru, as it is
 12 the program inside the uC that is responding t     12 the program inside the uC that is responding to calls.
 13                                                    13 
 14 Olle Sandberg <ollebull@gmail.com>, 2005-05-25      14 Olle Sandberg <ollebull@gmail.com>, 2005-05-25
 15                                                    15 
 16                                                    16 
 17 Original version by Olle Sandberg who did the      17 Original version by Olle Sandberg who did the heavy lifting of the initial
 18 reverse engineering. This version has been alm     18 reverse engineering. This version has been almost fully rewritten for clarity
 19 and extended with write support and info on mo     19 and extended with write support and info on more databanks, the write support
 20 is once again reverse engineered by Olle the a     20 is once again reverse engineered by Olle the additional databanks have been
 21 reverse engineered by me. I would like to expr     21 reverse engineered by me. I would like to express my thanks to Olle, this
 22 document and the Linux driver could not have b     22 document and the Linux driver could not have been written without his efforts.
 23                                                    23 
 24 Note: because of the lack of specs only the se     24 Note: because of the lack of specs only the sensors part of the uGuru is
 25 described here and not the CPU / RAM / etc vol     25 described here and not the CPU / RAM / etc voltage & frequency control.
 26                                                    26 
 27 Hans de Goede <j.w.r.degoede@hhs.nl>, 28-01-200     27 Hans de Goede <j.w.r.degoede@hhs.nl>, 28-01-2006
 28                                                    28 
 29                                                    29 
 30 Detection                                          30 Detection
 31 =========                                          31 =========
 32                                                    32 
 33 As far as known the uGuru is always placed at      33 As far as known the uGuru is always placed at and using the (ISA) I/O-ports
 34 0xE0 and 0xE4, so we don't have to scan any po     34 0xE0 and 0xE4, so we don't have to scan any port-range, just check what the two
 35 ports are holding for detection. We will refer     35 ports are holding for detection. We will refer to 0xE0 as CMD (command-port)
 36 and 0xE4 as DATA because Abit refers to them w     36 and 0xE4 as DATA because Abit refers to them with these names.
 37                                                    37 
 38 If DATA holds 0x00 or 0x08 and CMD holds 0x00      38 If DATA holds 0x00 or 0x08 and CMD holds 0x00 or 0xAC an uGuru could be
 39 present. We have to check for two different va     39 present. We have to check for two different values at data-port, because
 40 after a reboot uGuru will hold 0x00 here, but      40 after a reboot uGuru will hold 0x00 here, but if the driver is removed and
 41 later on attached again data-port will hold 0x     41 later on attached again data-port will hold 0x08, more about this later.
 42                                                    42 
 43 After wider testing of the Linux kernel driver     43 After wider testing of the Linux kernel driver some variants of the uGuru have
 44 turned up which will hold 0x00 instead of 0xAC     44 turned up which will hold 0x00 instead of 0xAC at the CMD port, thus we also
 45 have to test CMD for two different values. On      45 have to test CMD for two different values. On these uGuru's DATA will initially
 46 hold 0x09 and will only hold 0x08 after readin     46 hold 0x09 and will only hold 0x08 after reading CMD first, so CMD must be read
 47 first!                                             47 first!
 48                                                    48 
 49 To be really sure an uGuru is present a test r     49 To be really sure an uGuru is present a test read of one or more register
 50 sets should be done.                               50 sets should be done.
 51                                                    51 
 52                                                    52 
 53 Reading / Writing                                  53 Reading / Writing
 54 =================                                  54 =================
 55                                                    55 
 56 Addressing                                         56 Addressing
 57 ----------                                         57 ----------
 58                                                    58 
 59 The uGuru has a number of different addressing     59 The uGuru has a number of different addressing levels. The first addressing
 60 level we will call banks. A bank holds data fo     60 level we will call banks. A bank holds data for one or more sensors. The data
 61 in a bank for a sensor is one or more bytes la     61 in a bank for a sensor is one or more bytes large.
 62                                                    62 
 63 The number of bytes is fixed for a given bank,     63 The number of bytes is fixed for a given bank, you should always read or write
 64 that many bytes, reading / writing more will f     64 that many bytes, reading / writing more will fail, the results when writing
 65 less then the number of bytes for a given bank     65 less then the number of bytes for a given bank are undetermined.
 66                                                    66 
 67 See below for all known bank addresses, number     67 See below for all known bank addresses, numbers of sensors in that bank,
 68 number of bytes data per sensor and contents/m     68 number of bytes data per sensor and contents/meaning of those bytes.
 69                                                    69 
 70 Although both this document and the kernel dri     70 Although both this document and the kernel driver have kept the sensor
 71 terminology for the addressing within a bank t     71 terminology for the addressing within a bank this is not 100% correct, in
 72 bank 0x24 for example the addressing within th     72 bank 0x24 for example the addressing within the bank selects a PWM output not
 73 a sensor.                                          73 a sensor.
 74                                                    74 
 75 Notice that some banks have both a read and a      75 Notice that some banks have both a read and a write address this is how the
 76 uGuru determines if a read from or a write to      76 uGuru determines if a read from or a write to the bank is taking place, thus
 77 when reading you should always use the read ad     77 when reading you should always use the read address and when writing the
 78 write address. The write address is always one     78 write address. The write address is always one (1) more than the read address.
 79                                                    79 
 80                                                    80 
 81 uGuru ready                                        81 uGuru ready
 82 -----------                                        82 -----------
 83                                                    83 
 84 Before you can read from or write to the uGuru     84 Before you can read from or write to the uGuru you must first put the uGuru
 85 in "ready" mode.                                   85 in "ready" mode.
 86                                                    86 
 87 To put the uGuru in ready mode first write 0x0     87 To put the uGuru in ready mode first write 0x00 to DATA and then wait for DATA
 88 to hold 0x09, DATA should read 0x09 within 250     88 to hold 0x09, DATA should read 0x09 within 250 read cycles.
 89                                                    89 
 90 Next CMD _must_ be read and should hold 0xAC,      90 Next CMD _must_ be read and should hold 0xAC, usually CMD will hold 0xAC the
 91 first read but sometimes it takes a while befo     91 first read but sometimes it takes a while before CMD holds 0xAC and thus it
 92 has to be read a number of times (max 50).         92 has to be read a number of times (max 50).
 93                                                    93 
 94 After reading CMD, DATA should hold 0x08 which     94 After reading CMD, DATA should hold 0x08 which means that the uGuru is ready
 95 for input. As above DATA will usually hold 0x0     95 for input. As above DATA will usually hold 0x08 the first read but not always.
 96 This step can be skipped, but it is undetermin     96 This step can be skipped, but it is undetermined what happens if the uGuru has
 97 not yet reported 0x08 at DATA and you proceed      97 not yet reported 0x08 at DATA and you proceed with writing a bank address.
 98                                                    98 
 99                                                    99 
100 Sending bank and sensor addresses to the uGuru    100 Sending bank and sensor addresses to the uGuru
101 ----------------------------------------------    101 ----------------------------------------------
102                                                   102 
103 First the uGuru must be in "ready" mode as des    103 First the uGuru must be in "ready" mode as described above, DATA should hold
104 0x08 indicating that the uGuru wants input, in    104 0x08 indicating that the uGuru wants input, in this case the bank address.
105                                                   105 
106 Next write the bank address to DATA. After the    106 Next write the bank address to DATA. After the bank address has been written
107 wait for to DATA to hold 0x08 again indicating    107 wait for to DATA to hold 0x08 again indicating that it wants / is ready for
108 more input (max 250 reads).                       108 more input (max 250 reads).
109                                                   109 
110 Once DATA holds 0x08 again write the sensor ad    110 Once DATA holds 0x08 again write the sensor address to CMD.
111                                                   111 
112                                                   112 
113 Reading                                           113 Reading
114 -------                                           114 -------
115                                                   115 
116 First send the bank and sensor addresses as de    116 First send the bank and sensor addresses as described above.
117 Then for each byte of data you want to read wa    117 Then for each byte of data you want to read wait for DATA to hold 0x01
118 which indicates that the uGuru is ready to be     118 which indicates that the uGuru is ready to be read (max 250 reads) and once
119 DATA holds 0x01 read the byte from CMD.           119 DATA holds 0x01 read the byte from CMD.
120                                                   120 
121 Once all bytes have been read data will hold 0    121 Once all bytes have been read data will hold 0x09, but there is no reason to
122 test for this. Notice that the number of bytes    122 test for this. Notice that the number of bytes is bank address dependent see
123 above and below.                                  123 above and below.
124                                                   124 
125 After completing a successful read it is advis    125 After completing a successful read it is advised to put the uGuru back in
126 ready mode, so that it is ready for the next r    126 ready mode, so that it is ready for the next read / write cycle. This way
127 if your program / driver is unloaded and later    127 if your program / driver is unloaded and later loaded again the detection
128 algorithm described above will still work.        128 algorithm described above will still work.
129                                                   129 
130                                                   130 
131                                                   131 
132 Writing                                           132 Writing
133 -------                                           133 -------
134                                                   134 
135 First send the bank and sensor addresses as de    135 First send the bank and sensor addresses as described above.
136 Then for each byte of data you want to write w    136 Then for each byte of data you want to write wait for DATA to hold 0x00
137 which indicates that the uGuru is ready to be     137 which indicates that the uGuru is ready to be written (max 250 reads) and
138 once DATA holds 0x00 write the byte to CMD.       138 once DATA holds 0x00 write the byte to CMD.
139                                                   139 
140 Once all bytes have been written wait for DATA    140 Once all bytes have been written wait for DATA to hold 0x01 (max 250 reads)
141 don't ask why this is the way it is.              141 don't ask why this is the way it is.
142                                                   142 
143 Once DATA holds 0x01 read CMD it should hold 0    143 Once DATA holds 0x01 read CMD it should hold 0xAC now.
144                                                   144 
145 After completing a successful write it is advi    145 After completing a successful write it is advised to put the uGuru back in
146 ready mode, so that it is ready for the next r    146 ready mode, so that it is ready for the next read / write cycle. This way
147 if your program / driver is unloaded and later    147 if your program / driver is unloaded and later loaded again the detection
148 algorithm described above will still work.        148 algorithm described above will still work.
149                                                   149 
150                                                   150 
151 Gotchas                                           151 Gotchas
152 -------                                           152 -------
153                                                   153 
154 After wider testing of the Linux kernel driver    154 After wider testing of the Linux kernel driver some variants of the uGuru have
155 turned up which do not hold 0x08 at DATA withi    155 turned up which do not hold 0x08 at DATA within 250 reads after writing the
156 bank address. With these versions this happens    156 bank address. With these versions this happens quite frequent, using larger
157 timeouts doesn't help, they just go offline fo    157 timeouts doesn't help, they just go offline for a second or 2, doing some
158 internal calibration or whatever. Your code sh    158 internal calibration or whatever. Your code should be prepared to handle
159 this and in case of no response in this specif    159 this and in case of no response in this specific case just goto sleep for a
160 while and then retry.                             160 while and then retry.
161                                                   161 
162                                                   162 
163 Address Map                                       163 Address Map
164 ===========                                       164 ===========
165                                                   165 
166 Bank 0x20 Alarms (R)                              166 Bank 0x20 Alarms (R)
167 --------------------                              167 --------------------
168 This bank contains 0 sensors, iow the sensor a    168 This bank contains 0 sensors, iow the sensor address is ignored (but must be
169 written) just use 0. Bank 0x20 contains 3 byte    169 written) just use 0. Bank 0x20 contains 3 bytes:
170                                                   170 
171 Byte 0:                                           171 Byte 0:
172   This byte holds the alarm flags for sensor 0    172   This byte holds the alarm flags for sensor 0-7 of Sensor Bank1, with bit 0
173   corresponding to sensor 0, 1 to 1, etc.         173   corresponding to sensor 0, 1 to 1, etc.
174                                                   174 
175 Byte 1:                                           175 Byte 1:
176   This byte holds the alarm flags for sensor 8    176   This byte holds the alarm flags for sensor 8-15 of Sensor Bank1, with bit 0
177   corresponding to sensor 8, 1 to 9, etc.         177   corresponding to sensor 8, 1 to 9, etc.
178                                                   178 
179 Byte 2:                                           179 Byte 2:
180   This byte holds the alarm flags for sensor 0    180   This byte holds the alarm flags for sensor 0-5 of Sensor Bank2, with bit 0
181   corresponding to sensor 0, 1 to 1, etc.         181   corresponding to sensor 0, 1 to 1, etc.
182                                                   182 
183                                                   183 
184 Bank 0x21 Sensor Bank1 Values / Readings (R)      184 Bank 0x21 Sensor Bank1 Values / Readings (R)
185 --------------------------------------------      185 --------------------------------------------
186 This bank contains 16 sensors, for each sensor    186 This bank contains 16 sensors, for each sensor it contains 1 byte.
187 So far the following sensors are known to be a    187 So far the following sensors are known to be available on all motherboards:
188                                                   188 
189 - Sensor  0 CPU temp                              189 - Sensor  0 CPU temp
190 - Sensor  1 SYS temp                              190 - Sensor  1 SYS temp
191 - Sensor  3 CPU core volt                         191 - Sensor  3 CPU core volt
192 - Sensor  4 DDR volt                              192 - Sensor  4 DDR volt
193 - Sensor 10 DDR Vtt volt                          193 - Sensor 10 DDR Vtt volt
194 - Sensor 15 PWM temp                              194 - Sensor 15 PWM temp
195                                                   195 
196 Byte 0:                                           196 Byte 0:
197   This byte holds the reading from the sensor.    197   This byte holds the reading from the sensor. Sensors in Bank1 can be both
198   volt and temp sensors, this is motherboard s    198   volt and temp sensors, this is motherboard specific. The uGuru however does
199   seem to know (be programmed with) what kindo    199   seem to know (be programmed with) what kindoff sensor is attached see Sensor
200   Bank1 Settings description.                     200   Bank1 Settings description.
201                                                   201 
202 Volt sensors use a linear scale, a reading 0 c    202 Volt sensors use a linear scale, a reading 0 corresponds with 0 volt and a
203 reading of 255 with 3494 mV. The sensors for h    203 reading of 255 with 3494 mV. The sensors for higher voltages however are
204 connected through a division circuit. The curr    204 connected through a division circuit. The currently known division circuits
205 in use result in ranges of: 0-4361mV, 0-6248mV    205 in use result in ranges of: 0-4361mV, 0-6248mV or 0-14510mV. 3.3 volt sources
206 use the 0-4361mV range, 5 volt the 0-6248mV an    206 use the 0-4361mV range, 5 volt the 0-6248mV and 12 volt the 0-14510mV .
207                                                   207 
208 Temp sensors also use a linear scale, a readin    208 Temp sensors also use a linear scale, a reading of 0 corresponds with 0 degree
209 Celsius and a reading of 255 with a reading of    209 Celsius and a reading of 255 with a reading of 255 degrees Celsius.
210                                                   210 
211                                                   211 
212 Bank 0x22 Sensor Bank1 Settings (R) and Bank 0    212 Bank 0x22 Sensor Bank1 Settings (R) and Bank 0x23 Sensor Bank1 Settings (W)
213 ----------------------------------------------    213 ---------------------------------------------------------------------------
214                                                   214 
215 Those banks contain 16 sensors, for each senso    215 Those banks contain 16 sensors, for each sensor it contains 3 bytes. Each
216 set of 3 bytes contains the settings for the s    216 set of 3 bytes contains the settings for the sensor with the same sensor
217 address in Bank 0x21 .                            217 address in Bank 0x21 .
218                                                   218 
219 Byte 0:                                           219 Byte 0:
220   Alarm behaviour for the selected sensor. A 1    220   Alarm behaviour for the selected sensor. A 1 enables the described
221   behaviour.                                      221   behaviour.
222                                                   222 
223 Bit 0:                                            223 Bit 0:
224   Give an alarm if measured temp is over the w    224   Give an alarm if measured temp is over the warning threshold          (RW) [1]_
225                                                   225 
226 Bit 1:                                            226 Bit 1:
227   Give an alarm if measured volt is over the m    227   Give an alarm if measured volt is over the max threshold              (RW) [2]_
228                                                   228 
229 Bit 2:                                            229 Bit 2:
230   Give an alarm if measured volt is under the     230   Give an alarm if measured volt is under the min threshold             (RW) [2]_
231                                                   231 
232 Bit 3:                                            232 Bit 3:
233   Beep if alarm                                   233   Beep if alarm                                                         (RW)
234                                                   234 
235 Bit 4:                                            235 Bit 4:
236   1 if alarm cause measured temp is over the w    236   1 if alarm cause measured temp is over the warning threshold          (R)
237                                                   237 
238 Bit 5:                                            238 Bit 5:
239   1 if alarm cause measured volt is over the m    239   1 if alarm cause measured volt is over the max threshold              (R)
240                                                   240 
241 Bit 6:                                            241 Bit 6:
242   1 if alarm cause measured volt is under the     242   1 if alarm cause measured volt is under the min threshold             (R)
243                                                   243 
244 Bit 7:                                            244 Bit 7:
245   - Volt sensor: Shutdown if alarm persist for    245   - Volt sensor: Shutdown if alarm persist for more than 4 seconds      (RW)
246   - Temp sensor: Shutdown if temp is over the     246   - Temp sensor: Shutdown if temp is over the shutdown threshold        (RW)
247                                                   247 
248 .. [1] This bit is only honored/used by the uG    248 .. [1] This bit is only honored/used by the uGuru if a temp sensor is connected
249                                                   249 
250 .. [2] This bit is only honored/used by the uG    250 .. [2] This bit is only honored/used by the uGuru if a volt sensor is connected
251        Note with some trickery this can be use    251        Note with some trickery this can be used to find out what kinda sensor
252        is detected see the Linux kernel driver    252        is detected see the Linux kernel driver for an example with many
253        comments on how todo this.                 253        comments on how todo this.
254                                                   254 
255 Byte 1:                                           255 Byte 1:
256   - Temp sensor: warning threshold  (scale as     256   - Temp sensor: warning threshold  (scale as bank 0x21)
257   - Volt sensor: min threshold      (scale as     257   - Volt sensor: min threshold      (scale as bank 0x21)
258                                                   258 
259 Byte 2:                                           259 Byte 2:
260   - Temp sensor: shutdown threshold (scale as     260   - Temp sensor: shutdown threshold (scale as bank 0x21)
261   - Volt sensor: max threshold      (scale as     261   - Volt sensor: max threshold      (scale as bank 0x21)
262                                                   262 
263                                                   263 
264 Bank 0x24 PWM outputs for FAN's (R) and Bank 0    264 Bank 0x24 PWM outputs for FAN's (R) and Bank 0x25 PWM outputs for FAN's (W)
265 ----------------------------------------------    265 ---------------------------------------------------------------------------
266                                                   266 
267 Those banks contain 3 "sensors", for each sens    267 Those banks contain 3 "sensors", for each sensor it contains 5 bytes.
268   - Sensor 0 usually controls the CPU fan         268   - Sensor 0 usually controls the CPU fan
269   - Sensor 1 usually controls the NB (or chips    269   - Sensor 1 usually controls the NB (or chipset for single chip) fan
270   - Sensor 2 usually controls the System fan      270   - Sensor 2 usually controls the System fan
271                                                   271 
272 Byte 0:                                           272 Byte 0:
273   Flag 0x80 to enable control, Fan runs at 100    273   Flag 0x80 to enable control, Fan runs at 100% when disabled.
274   low nibble (temp)sensor address at bank 0x21    274   low nibble (temp)sensor address at bank 0x21 used for control.
275                                                   275 
276 Byte 1:                                           276 Byte 1:
277   0-255 = 0-12v (linear), specify voltage at w    277   0-255 = 0-12v (linear), specify voltage at which fan will rotate when under
278   low threshold temp (specified in byte 3)        278   low threshold temp (specified in byte 3)
279                                                   279 
280 Byte 2:                                           280 Byte 2:
281   0-255 = 0-12v (linear), specify voltage at w    281   0-255 = 0-12v (linear), specify voltage at which fan will rotate when above
282   high threshold temp (specified in byte 4)       282   high threshold temp (specified in byte 4)
283                                                   283 
284 Byte 3:                                           284 Byte 3:
285   Low threshold temp  (scale as bank 0x21)        285   Low threshold temp  (scale as bank 0x21)
286                                                   286 
287 byte 4:                                           287 byte 4:
288   High threshold temp (scale as bank 0x21)        288   High threshold temp (scale as bank 0x21)
289                                                   289 
290                                                   290 
291 Bank 0x26 Sensors Bank2 Values / Readings (R)     291 Bank 0x26 Sensors Bank2 Values / Readings (R)
292 ---------------------------------------------     292 ---------------------------------------------
293                                                   293 
294 This bank contains 6 sensors (AFAIK), for each    294 This bank contains 6 sensors (AFAIK), for each sensor it contains 1 byte.
295                                                   295 
296 So far the following sensors are known to be a    296 So far the following sensors are known to be available on all motherboards:
297   - Sensor 0: CPU fan speed                       297   - Sensor 0: CPU fan speed
298   - Sensor 1: NB (or chipset for single chip)     298   - Sensor 1: NB (or chipset for single chip) fan speed
299   - Sensor 2: SYS fan speed                       299   - Sensor 2: SYS fan speed
300                                                   300 
301 Byte 0:                                           301 Byte 0:
302   This byte holds the reading from the sensor.    302   This byte holds the reading from the sensor. 0-255 = 0-15300 (linear)
303                                                   303 
304                                                   304 
305 Bank 0x27 Sensors Bank2 Settings (R) and Bank     305 Bank 0x27 Sensors Bank2 Settings (R) and Bank 0x28 Sensors Bank2 Settings (W)
306 ----------------------------------------------    306 -----------------------------------------------------------------------------
307                                                   307 
308 Those banks contain 6 sensors (AFAIK), for eac    308 Those banks contain 6 sensors (AFAIK), for each sensor it contains 2 bytes.
309                                                   309 
310 Byte 0:                                           310 Byte 0:
311   Alarm behaviour for the selected sensor. A 1    311   Alarm behaviour for the selected sensor. A 1 enables the described behaviour.
312                                                   312 
313 Bit 0:                                            313 Bit 0:
314   Give an alarm if measured rpm is under the m    314   Give an alarm if measured rpm is under the min threshold      (RW)
315                                                   315 
316 Bit 3:                                            316 Bit 3:
317   Beep if alarm                                   317   Beep if alarm                                                 (RW)
318                                                   318 
319 Bit 7:                                            319 Bit 7:
320   Shutdown if alarm persist for more than 4 se    320   Shutdown if alarm persist for more than 4 seconds             (RW)
321                                                   321 
322 Byte 1:                                           322 Byte 1:
323   min threshold (scale as bank 0x26)              323   min threshold (scale as bank 0x26)
324                                                   324 
325                                                   325 
326 Warning for the adventurous                       326 Warning for the adventurous
327 ===========================                       327 ===========================
328                                                   328 
329 A word of caution to those who want to experim    329 A word of caution to those who want to experiment and see if they can figure
330 the voltage / clock programming out, I tried r    330 the voltage / clock programming out, I tried reading and only reading banks
331 0-0x30 with the reading code used for the sens    331 0-0x30 with the reading code used for the sensor banks (0x20-0x28) and this
332 resulted in a _permanent_ reprogramming of the    332 resulted in a _permanent_ reprogramming of the voltages, luckily I had the
333 sensors part configured so that it would shutd    333 sensors part configured so that it would shutdown my system on any out of spec
334 voltages which probably safed my computer (aft    334 voltages which probably safed my computer (after a reboot I managed to
335 immediately enter the bios and reload the defa    335 immediately enter the bios and reload the defaults). This probably means that
336 the read/write cycle for the non sensor part i    336 the read/write cycle for the non sensor part is different from the sensor part.
                                                      

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

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php