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

asc7621.rst (10283B)


      1=====================
      2Kernel driver asc7621
      3=====================
      4
      5Supported chips:
      6
      7    Andigilog aSC7621 and aSC7621a
      8
      9    Prefix: 'asc7621'
     10
     11    Addresses scanned: I2C 0x2c, 0x2d, 0x2e
     12
     13    Datasheet: http://www.fairview5.com/linux/asc7621/asc7621.pdf
     14
     15Author:
     16		George Joseph
     17
     18Description provided by Dave Pivin @ Andigilog:
     19
     20Andigilog has both the PECI and pre-PECI versions of the Heceta-6, as
     21Intel calls them. Heceta-6e has high frequency PWM and Heceta-6p has
     22added PECI and a 4th thermal zone. The Andigilog aSC7611 is the
     23Heceta-6e part and aSC7621 is the Heceta-6p part. They are both in
     24volume production, shipping to Intel and their subs.
     25
     26We have enhanced both parts relative to the governing Intel
     27specification. First enhancement is temperature reading resolution. We
     28have used registers below 20h for vendor-specific functions in addition
     29to those in the Intel-specified vendor range.
     30
     31Our conversion process produces a result that is reported as two bytes.
     32The fan speed control uses this finer value to produce a "step-less" fan
     33PWM output. These two bytes are "read-locked" to guarantee that once a
     34high or low byte is read, the other byte is locked-in until after the
     35next read of any register. So to get an atomic reading, read high or low
     36byte, then the very next read should be the opposite byte. Our data
     37sheet says 10-bits of resolution, although you may find the lower bits
     38are active, they are not necessarily reliable or useful externally. We
     39chose not to mask them.
     40
     41We employ significant filtering that is user tunable as described in the
     42data sheet. Our temperature reports and fan PWM outputs are very smooth
     43when compared to the competition, in addition to the higher resolution
     44temperature reports. The smoother PWM output does not require user
     45intervention.
     46
     47We offer GPIO features on the former VID pins. These are open-drain
     48outputs or inputs and may be used as general purpose I/O or as alarm
     49outputs that are based on temperature limits. These are in 19h and 1Ah.
     50
     51We offer flexible mapping of temperature readings to thermal zones. Any
     52temperature may be mapped to any zone, which has a default assignment
     53that follows Intel's specs.
     54
     55Since there is a fan to zone assignment that allows for the "hotter" of
     56a set of zones to control the PWM of an individual fan, but there is no
     57indication to the user, we have added an indicator that shows which zone
     58is currently controlling the PWM for a given fan. This is in register
     5900h.
     60
     61Both remote diode temperature readings may be given an offset value such
     62that the reported reading as well as the temperature used to determine
     63PWM may be offset for system calibration purposes.
     64
     65PECI Extended configuration allows for having more than two domains per
     66PECI address and also provides an enabling function for each PECI
     67address. One could use our flexible zone assignment to have a zone
     68assigned to up to 4 PECI addresses. This is not possible in the default
     69Intel configuration. This would be useful in multi-CPU systems with
     70individual fans on each that would benefit from individual fan control.
     71This is in register 0Eh.
     72
     73The tachometer measurement system is flexible and able to adapt to many
     74fan types. We can also support pulse-stretched PWM so that 3-wire fans
     75may be used. These characteristics are in registers 04h to 07h.
     76
     77Finally, we have added a tach disable function that turns off the tach
     78measurement system for individual tachs in order to save power. That is
     79in register 75h.
     80
     81--------------------------------------------------------------------------
     82
     83aSC7621 Product Description
     84===========================
     85
     86The aSC7621 has a two wire digital interface compatible with SMBus 2.0.
     87Using a 10-bit ADC, the aSC7621 measures the temperature of two remote diode
     88connected transistors as well as its own die. Support for Platform
     89Environmental Control Interface (PECI) is included.
     90
     91Using temperature information from these four zones, an automatic fan speed
     92control algorithm is employed to minimize acoustic impact while achieving
     93recommended CPU temperature under varying operational loads.
     94
     95To set fan speed, the aSC7621 has three independent pulse width modulation
     96(PWM) outputs that are controlled by one, or a combination of three,
     97temperature zones. Both high- and low-frequency PWM ranges are supported.
     98
     99The aSC7621 also includes a digital filter that can be invoked to smooth
    100temperature readings for better control of fan speed and minimum acoustic
    101impact.
    102
    103The aSC7621 has tachometer inputs to measure fan speed on up to four fans.
    104Limit and status registers for all measured values are included to alert
    105the system host that any measurements are outside of programmed limits
    106via status registers.
    107
    108System voltages of VCCP, 2.5V, 3.3V, 5.0V, and 12V motherboard power are
    109monitored efficiently with internal scaling resistors.
    110
    111Features
    112--------
    113
    114- Supports PECI interface and monitors internal and remote thermal diodes
    115- 2-wire, SMBus 2.0 compliant, serial interface
    116- 10-bit ADC
    117- Monitors VCCP, 2.5V, 3.3V, 5.0V, and 12V motherboard/processor supplies
    118- Programmable autonomous fan control based on temperature readings
    119- Noise filtering of temperature reading for fan speed control
    120- 0.25C digital temperature sensor resolution
    121- 3 PWM fan speed control outputs for 2-, 3- or 4-wire fans and up to 4 fan
    122  tachometer inputs
    123- Enhanced measured temperature to Temperature Zone assignment.
    124- Provides high and low PWM frequency ranges
    125- 3 GPIO pins for custom use
    126- 24-Lead QSOP package
    127
    128Configuration Notes
    129===================
    130
    131Except where noted below, the sysfs entries created by this driver follow
    132the standards defined in "sysfs-interface".
    133
    134temp1_source
    135	=	===============================================
    136	0 	(default) peci_legacy = 0, Remote 1 Temperature
    137		peci_legacy = 1, PECI Processor Temperature 0
    138	1 	Remote 1 Temperature
    139	2 	Remote 2 Temperature
    140	3 	Internal Temperature
    141	4 	PECI Processor Temperature 0
    142	5 	PECI Processor Temperature 1
    143	6 	PECI Processor Temperature 2
    144	7	PECI Processor Temperature 3
    145	=	===============================================
    146
    147temp2_source
    148	=	===============================================
    149	0 	(default) Internal Temperature
    150	1 	Remote 1 Temperature
    151	2 	Remote 2 Temperature
    152	3 	Internal Temperature
    153	4 	PECI Processor Temperature 0
    154	5 	PECI Processor Temperature 1
    155	6 	PECI Processor Temperature 2
    156	7 	PECI Processor Temperature 3
    157	=	===============================================
    158
    159temp3_source
    160	=	===============================================
    161	0 	(default) Remote 2 Temperature
    162	1 	Remote 1 Temperature
    163	2 	Remote 2 Temperature
    164	3 	Internal Temperature
    165	4 	PECI Processor Temperature 0
    166	5 	PECI Processor Temperature 1
    167	6 	PECI Processor Temperature 2
    168	7 	PECI Processor Temperature 3
    169	=	===============================================
    170
    171temp4_source
    172	=	===============================================
    173	0 	(default) peci_legacy = 0, PECI Processor Temperature 0
    174		peci_legacy = 1, Remote 1 Temperature
    175	1 	Remote 1 Temperature
    176	2 	Remote 2 Temperature
    177	3 	Internal Temperature
    178	4 	PECI Processor Temperature 0
    179	5 	PECI Processor Temperature 1
    180	6 	PECI Processor Temperature 2
    181	7 	PECI Processor Temperature 3
    182	=	===============================================
    183
    184temp[1-4]_smoothing_enable / temp[1-4]_smoothing_time
    185	Smooths spikes in temp readings caused by noise.
    186	Valid values in milliseconds are:
    187
    188	* 35000
    189	* 17600
    190	* 11800
    191	*  7000
    192	*  4400
    193	*  3000
    194	*  1600
    195	*   800
    196
    197temp[1-4]_crit
    198	When the corresponding zone temperature reaches this value,
    199	ALL pwm outputs will got to 100%.
    200
    201temp[5-8]_input / temp[5-8]_enable
    202	The aSC7621 can also read temperatures provided by the processor
    203	via the PECI bus.  Usually these are "core" temps and are relative
    204	to the point where the automatic thermal control circuit starts
    205	throttling.  This means that these are usually negative numbers.
    206
    207pwm[1-3]_enable
    208	=============== ========================================================
    209	0		Fan off.
    210	1		Fan on manual control.
    211	2		Fan on automatic control and will run at the minimum pwm
    212			if the temperature for the zone is below the minimum.
    213	3		Fan on automatic control but will be off if the
    214			temperature for the zone is below the minimum.
    215	4-254		Ignored.
    216	255		Fan on full.
    217	=============== ========================================================
    218
    219pwm[1-3]_auto_channels
    220	Bitmap as described in sysctl-interface with the following
    221	exceptions...
    222
    223	Only the following combination of zones (and their corresponding masks)
    224	are valid:
    225
    226	* 1
    227	* 2
    228	* 3
    229	* 2,3
    230	* 1,2,3
    231	* 4
    232	* 1,2,3,4
    233
    234	* Special values:
    235
    236	  ==		======================
    237	  0		Disabled.
    238	  16		Fan on manual control.
    239	  31		Fan on full.
    240	  ==		======================
    241
    242
    243pwm[1-3]_invert
    244	When set, inverts the meaning of pwm[1-3].
    245	i.e.  when pwm = 0, the fan will be on full and
    246	when pwm = 255 the fan will be off.
    247
    248pwm[1-3]_freq
    249	PWM frequency in Hz
    250	Valid values in Hz are:
    251
    252	* 10
    253	* 15
    254	* 23
    255	* 30  (default)
    256	* 38
    257	* 47
    258	* 62
    259	* 94
    260	* 23000
    261	* 24000
    262	* 25000
    263	* 26000
    264	* 27000
    265	* 28000
    266	* 29000
    267	* 30000
    268
    269	Setting any other value will be ignored.
    270
    271peci_enable
    272	Enables or disables PECI
    273
    274peci_avg
    275	Input filter average time.
    276
    277	* 0 	0 Sec. (no Smoothing) (default)
    278	* 1 	0.25 Sec.
    279	* 2 	0.5 Sec.
    280	* 3 	1.0 Sec.
    281	* 4 	2.0 Sec.
    282	* 5 	4.0 Sec.
    283	* 6 	8.0 Sec.
    284	* 7 	0.0 Sec.
    285
    286peci_legacy
    287	=	============================================
    288	0	Standard Mode (default)
    289		Remote Diode 1 reading is associated with
    290		Temperature Zone 1, PECI is associated with
    291		Zone 4
    292
    293	1	Legacy Mode
    294		PECI is associated with Temperature Zone 1,
    295		Remote Diode 1 is associated with Zone 4
    296	=	============================================
    297
    298peci_diode
    299	Diode filter
    300
    301	=	====================
    302	0	0.25 Sec.
    303	1 	1.1 Sec.
    304	2 	2.4 Sec.  (default)
    305	3 	3.4 Sec.
    306	4 	5.0 Sec.
    307	5 	6.8 Sec.
    308	6 	10.2 Sec.
    309	7 	16.4 Sec.
    310	=	====================
    311
    312peci_4domain
    313	Four domain enable
    314
    315	=	===============================================
    316	0 	1 or 2 Domains for enabled processors (default)
    317	1 	3 or 4 Domains for enabled processors
    318	=	===============================================
    319
    320peci_domain
    321	Domain
    322
    323	=	==================================================
    324	0 	Processor contains a single domain (0) 	 (default)
    325	1 	Processor contains two domains (0,1)
    326	=	==================================================