cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

adm1021.rst (4628B)


      1Kernel driver adm1021
      2=====================
      3
      4Supported chips:
      5
      6  * Analog Devices ADM1021
      7
      8    Prefix: 'adm1021'
      9
     10    Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
     11
     12    Datasheet: Publicly available at the Analog Devices website
     13
     14  * Analog Devices ADM1021A/ADM1023
     15
     16    Prefix: 'adm1023'
     17
     18    Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
     19
     20    Datasheet: Publicly available at the Analog Devices website
     21
     22  * Genesys Logic GL523SM
     23
     24    Prefix: 'gl523sm'
     25
     26    Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
     27
     28    Datasheet:
     29
     30  * Maxim MAX1617
     31
     32    Prefix: 'max1617'
     33
     34    Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
     35
     36    Datasheet: Publicly available at the Maxim website
     37
     38  * Maxim MAX1617A
     39
     40    Prefix: 'max1617a'
     41
     42    Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
     43
     44    Datasheet: Publicly available at the Maxim website
     45
     46  * National Semiconductor LM84
     47
     48    Prefix: 'lm84'
     49
     50    Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
     51
     52    Datasheet: Publicly available at the National Semiconductor website
     53
     54  * Philips NE1617
     55
     56    Prefix: 'max1617' (probably detected as a max1617)
     57
     58    Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
     59
     60    Datasheet: Publicly available at the Philips website
     61
     62  * Philips NE1617A
     63
     64    Prefix: 'max1617' (probably detected as a max1617)
     65
     66    Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
     67
     68    Datasheet: Publicly available at the Philips website
     69
     70  * TI THMC10
     71
     72    Prefix: 'thmc10'
     73
     74    Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
     75
     76    Datasheet: Publicly available at the TI website
     77
     78  * Onsemi MC1066
     79
     80    Prefix: 'mc1066'
     81
     82    Addresses scanned: I2C 0x18 - 0x1a, 0x29 - 0x2b, 0x4c - 0x4e
     83
     84    Datasheet: Publicly available at the Onsemi website
     85
     86
     87Authors:
     88	- Frodo Looijaard <frodol@dds.nl>,
     89	- Philip Edelbrock <phil@netroedge.com>
     90
     91Module Parameters
     92-----------------
     93
     94* read_only: int
     95  Don't set any values, read only mode
     96
     97
     98Description
     99-----------
    100
    101The chips supported by this driver are very similar. The Maxim MAX1617 is
    102the oldest; it has the problem that it is not very well detectable. The
    103MAX1617A solves that. The ADM1021 is a straight clone of the MAX1617A.
    104Ditto for the THMC10. From here on, we will refer to all these chips as
    105ADM1021-clones.
    106
    107The ADM1021 and MAX1617A reports a die code, which is a sort of revision
    108code. This can help us pinpoint problems; it is not very useful
    109otherwise.
    110
    111ADM1021-clones implement two temperature sensors. One of them is internal,
    112and measures the temperature of the chip itself; the other is external and
    113is realised in the form of a transistor-like device. A special alarm
    114indicates whether the remote sensor is connected.
    115
    116Each sensor has its own low and high limits. When they are crossed, the
    117corresponding alarm is set and remains on as long as the temperature stays
    118out of range. Temperatures are measured in degrees Celsius. Measurements
    119are possible between -65 and +127 degrees, with a resolution of one degree.
    120
    121If an alarm triggers, it will remain triggered until the hardware register
    122is read at least once. This means that the cause for the alarm may already
    123have disappeared!
    124
    125This driver only updates its values each 1.5 seconds; reading it more often
    126will do no harm, but will return 'old' values. It is possible to make
    127ADM1021-clones do faster measurements, but there is really no good reason
    128for that.
    129
    130
    131Netburst-based Xeon support
    132---------------------------
    133
    134Some Xeon processors based on the Netburst (early Pentium 4, from 2001 to
    1352003) microarchitecture had real MAX1617, ADM1021, or compatible chips
    136within them, with two temperature sensors. Other Xeon processors of this
    137era (with 400 MHz FSB) had chips with only one temperature sensor.
    138
    139If you have such an old Xeon, and you get two valid temperatures when
    140loading the adm1021 module, then things are good.
    141
    142If nothing happens when loading the adm1021 module, and you are certain
    143that your specific Xeon processor model includes compatible sensors, you
    144will have to explicitly instantiate the sensor chips from user-space. See
    145method 4 in Documentation/i2c/instantiating-devices.rst. Possible slave
    146addresses are 0x18, 0x1a, 0x29, 0x2b, 0x4c, or 0x4e. It is likely that
    147only temp2 will be correct and temp1 will have to be ignored.
    148
    149Previous generations of the Xeon processor (based on Pentium II/III)
    150didn't have these sensors. Next generations of Xeon processors (533 MHz
    151FSB and faster) lost them, until the Core-based generation which
    152introduced integrated digital thermal sensors. These are supported by
    153the coretemp driver.