요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
Kernel driver f71805f
=====================
Supported chips:
* Fintek F71805F/FG
Prefix: 'f71805f'
Addresses scanned: none, address read from Super I/O config space
Datasheet: Available from the Fintek website
* Fintek F71806F/FG
Prefix: 'f71872f'
Addresses scanned: none, address read from Super I/O config space
Datasheet: Available from the Fintek website
* Fintek F71872F/FG
Prefix: 'f71872f'
Addresses scanned: none, address read from Super I/O config space
Datasheet: Available from the Fintek website
Author: Jean Delvare <[email protected]>
Thanks to Denis Kieft from Barracuda Networks for the donation of a
test system (custom Jetway K8M8MS motherboard, with CPU and RAM) and
for providing initial documentation.
Thanks to Kris Chen and Aaron Huang from Fintek for answering technical
questions and providing additional documentation.
Thanks to Chris Lin from Jetway for providing wiring schematics and
answering technical questions.
Description
-----------
The Fintek F71805F/FG Super I/O chip includes complete hardware monitoring
capabilities. It can monitor up to 9 voltages (counting its own power
source), 3 fans and 3 temperature sensors.
This chip also has fan controlling features, using either DC or PWM, in
three different modes (one manual, two automatic).
The Fintek F71872F/FG Super I/O chip is almost the same, with two
additional internal voltages monitored (VSB and battery). It also features
6 VID inputs. The VID inputs are not yet supported by this driver.
The Fintek F71806F/FG Super-I/O chip is essentially the same as the
F71872F/FG, and is undistinguishable therefrom.
The driver assumes that no more than one chip is present, which seems
reasonable.
Voltage Monitoring
------------------
Voltages are sampled by an 8-bit ADC with a LSB of 8 mV. The supported
range is thus from 0 to 2.040 V. Voltage values outside of this range
need external resistors. An exception is in0, which is used to monitor
the chip's own power source (+3.3V), and is divided internally by a
factor 2. For the F71872F/FG, in9 (VSB) and in10 (battery) are also
divided internally by a factor 2.
The two LSB of the voltage limit registers are not used (always 0), so
you can only set the limits in steps of 32 mV (before scaling).
The wirings and resistor values suggested by Fintek are as follow:
======= ======= =========== ==== ======= ============ ==============
in pin expected
name use R1 R2 divider raw val.
======= ======= =========== ==== ======= ============ ==============
in0 VCC VCC3.3V int. int. 2.00 1.65 V
in1 VIN1 VTT1.2V 10K - 1.00 1.20 V
in2 VIN2 VRAM 100K 100K 2.00 ~1.25 V [1]_
in3 VIN3 VCHIPSET 47K 100K 1.47 2.24 V [2]_
in4 VIN4 VCC5V 200K 47K 5.25 0.95 V
in5 VIN5 +12V 200K 20K 11.00 1.05 V
in6 VIN6 VCC1.5V 10K - 1.00 1.50 V
in7 VIN7 VCORE 10K - 1.00 ~1.40 V [1]_
in8 VIN8 VSB5V 200K 47K 1.00 0.95 V
in10 VSB VSB3.3V int. int. 2.00 1.65 V [3]_
in9 VBAT VBATTERY int. int. 2.00 1.50 V [3]_
======= ======= =========== ==== ======= ============ ==============
.. [1] Depends on your hardware setup.
.. [2] Obviously not correct, swapping R1 and R2 would make more sense.
.. [3] F71872F/FG only.
These values can be used as hints at best, as motherboard manufacturers
are free to use a completely different setup. As a matter of fact, the
Jetway K8M8MS uses a significantly different setup. You will have to
find out documentation about your own motherboard, and edit sensors.conf
accordingly.
Each voltage measured has associated low and high limits, each of which
triggers an alarm when crossed.
Fan Monitoring
--------------
Fan rotation speeds are reported as 12-bit values from a gated clock
signal. Speeds down to 366 RPM can be measured. There is no theoretical
high limit, but values over 6000 RPM seem to cause problem. The effective
resolution is much lower than you would expect, the step between different
register values being 10 rather than 1.
The chip assumes 2 pulse-per-revolution fans.
An alarm is triggered if the rotation speed drops below a programmable
limit or is too low to be measured.
Temperature Monitoring
----------------------
Temperatures are reported in degrees Celsius. Each temperature measured
has a high limit, those crossing triggers an alarm. There is an associated
hysteresis value, below which the temperature has to drop before the
alarm is cleared.
All temperature channels are external, there is no embedded temperature
sensor. Each channel can be used for connecting either a thermal diode
or a thermistor. The driver reports the currently selected mode, but
doesn't allow changing it. In theory, the BIOS should have configured
everything properly.
Fan Control
-----------
Both PWM (pulse-width modulation) and DC fan speed control methods are
supported. The right one to use depends on external circuitry on the
motherboard, so the driver assumes that the BIOS set the method
properly. The driver will report the method, but won't let you change
it.
When the PWM method is used, you can select the operating frequency,
from 187.5 kHz (default) to 31 Hz. The best frequency depends on the
fan model. As a rule of thumb, lower frequencies seem to give better
control, but may generate annoying high-pitch noise. So a frequency just
above the audible range, such as 25 kHz, may be a good choice; if this
doesn't give you good linear control, try reducing it. Fintek recommends
not going below 1 kHz, as the fan tachometers get confused by lower
frequencies as well.
When the DC method is used, Fintek recommends not going below 5 V, which
corresponds to a pwm value of 106 for the driver. The driver doesn't
enforce this limit though.
Three different fan control modes are supported; the mode number is written
to the pwm<n>_enable file.
* 1: Manual mode
You ask for a specific PWM duty cycle or DC voltage by writing to the
pwm<n> file.
* 2: Temperature mode
You define 3 temperature/fan speed trip points using the
pwm<n>_auto_point<m>_temp and _fan files. These define a staircase
relationship between temperature and fan speed with two additional points
interpolated between the values that you define. When the temperature
is below auto_point1_temp the fan is switched off.
* 3: Fan speed mode
You ask for a specific fan speed by writing to the fan<n>_target file.
Both of the automatic modes require that pwm1 corresponds to fan1, pwm2 to
fan2 and pwm3 to fan3. Temperature mode also requires that temp1 corresponds
to pwm1 and fan1, etc.
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
F71805F·F71806F·F71872F 지원
1-42이 드라이버는 Fintek F71805F/FG를 prefix `f71805f`로, F71806F/FG와 F71872F/FG를 prefix `f71872f`로 지원합니다. 주소를 scan하지 않고 Super I/O configuration space에서 읽습니다. Datasheet는 Fintek website에서 제공됩니다.
저자는 Jean Delvare입니다. Denis Kieft와 Barracuda Networks는 CPU와 RAM을 갖춘 custom Jetway K8M8MS test system과 초기 문서를 제공했고, Fintek의 Kris Chen·Aaron Huang은 기술 질문과 추가 문서에 답했습니다. Jetway의 Chris Lin은 배선 schematic과 기술 답변을 제공했습니다.
Super I/O configuration에서 식별하는 세 계열입니다.
일반 bus scan 대신 Super I/O configuration을 사용합니다.
Kernel driver f71805f
=====================
Supported chips:
* Fintek F71805F/FG
Prefix: 'f71805f'
Addresses scanned: none, address read from Super I/O config space
Datasheet: Available from the Fintek website
* Fintek F71806F/FG
Prefix: 'f71872f'
Addresses scanned: none, address read from Super I/O config space
Datasheet: Available from the Fintek website
* Fintek F71872F/FG
Prefix: 'f71872f'
Addresses scanned: none, address read from Super I/O config space
Datasheet: Available from the Fintek website
Author: Jean Delvare <[email protected]>
Thanks to Denis Kieft from Barracuda Networks for the donation of a
test system (custom Jetway K8M8MS motherboard, with CPU and RAM) and
for providing initial documentation.
Thanks to Kris Chen and Aaron Huang from Fintek for answering technical
questions and providing additional documentation.
Thanks to Chris Lin from Jetway for providing wiring schematics and
answering technical questions.
감시 채널과 fan 제어 능력
43-63Fintek F71805F/FG Super I/O chip은 자체 전원을 포함해 최대 9개 전압, fan 3개, 온도 sensor 3개를 감시하는 완전한 hardware monitoring 기능을 제공합니다. Fan은 DC 또는 PWM 방식과 수동 1개·자동 2개의 세 mode로 제어할 수 있습니다.
F71872F/FG는 거의 같은 chip이지만 VSB와 battery의 내부 전압 2개를 추가로 감시하고 VID input 6개를 제공합니다. VID input은 아직 이 드라이버에서 지원하지 않습니다. F71806F/FG는 본질적으로 F71872F/FG와 같아 구별할 수 없습니다.
드라이버는 chip이 하나보다 많이 존재하지 않는다고 가정합니다.
계열별 monitoring 차이입니다.
단일 chip 가정 아래 각 sensor 그룹을 등록합니다.
Description
-----------
The Fintek F71805F/FG Super I/O chip includes complete hardware monitoring
capabilities. It can monitor up to 9 voltages (counting its own power
source), 3 fans and 3 temperature sensors.
This chip also has fan controlling features, using either DC or PWM, in
three different modes (one manual, two automatic).
The Fintek F71872F/FG Super I/O chip is almost the same, with two
additional internal voltages monitored (VSB and battery). It also features
6 VID inputs. The VID inputs are not yet supported by this driver.
The Fintek F71806F/FG Super-I/O chip is essentially the same as the
F71872F/FG, and is undistinguishable therefrom.
The driver assumes that no more than one chip is present, which seems
reasonable.
8-bit ADC와 전압 배선
64-109전압은 LSB가 8 mV인 8-bit ADC로 sample하므로 지원 범위는 0~2.040 V입니다. 이 범위를 벗어나는 전압에는 외부 resistor가 필요합니다. `in0`은 chip 자체의 +3.3V 전원을 감시하며 내부에서 2로 나눕니다. F71872F/FG의 `in9` VSB와 `in10` battery도 내부에서 2로 나눕니다.
전압 limit register의 하위 2 bit는 사용하지 않고 항상 0이므로 scaling 전 limit는 32 mV step으로만 설정할 수 있습니다.
Fintek가 제안한 배선은 아래 표와 같습니다. `in2`와 `in7`의 예상 raw 값은 hardware setup에 따라 달라지고, `in3` 값은 명백히 맞지 않아 R1과 R2를 바꾸는 편이 합리적입니다. `in9`와 `in10`은 F71872F/FG에만 있습니다.
이 값들은 힌트일 뿐입니다. Motherboard 제조사는 완전히 다른 배선을 사용할 수 있고 실제 Jetway K8M8MS도 크게 다릅니다. 자신의 motherboard 문서를 확인해 `sensors.conf`를 알맞게 편집해야 합니다. 각 측정 전압에는 low·high limit가 있으며 임계값을 넘으면 각각 alarm을 발생시킵니다.
원문의 ASCII 표를 동일한 열 구조로 다시 그렸습니다.
Board 배선에 맞춰 raw ADC를 실제 전압으로 해석합니다.
Voltage Monitoring
------------------
Voltages are sampled by an 8-bit ADC with a LSB of 8 mV. The supported
range is thus from 0 to 2.040 V. Voltage values outside of this range
need external resistors. An exception is in0, which is used to monitor
the chip's own power source (+3.3V), and is divided internally by a
factor 2. For the F71872F/FG, in9 (VSB) and in10 (battery) are also
divided internally by a factor 2.
The two LSB of the voltage limit registers are not used (always 0), so
you can only set the limits in steps of 32 mV (before scaling).
The wirings and resistor values suggested by Fintek are as follow:
======= ======= =========== ==== ======= ============ ==============
in pin expected
name use R1 R2 divider raw val.
======= ======= =========== ==== ======= ============ ==============
in0 VCC VCC3.3V int. int. 2.00 1.65 V
in1 VIN1 VTT1.2V 10K - 1.00 1.20 V
in2 VIN2 VRAM 100K 100K 2.00 ~1.25 V [1]_
in3 VIN3 VCHIPSET 47K 100K 1.47 2.24 V [2]_
in4 VIN4 VCC5V 200K 47K 5.25 0.95 V
in5 VIN5 +12V 200K 20K 11.00 1.05 V
in6 VIN6 VCC1.5V 10K - 1.00 1.50 V
in7 VIN7 VCORE 10K - 1.00 ~1.40 V [1]_
in8 VIN8 VSB5V 200K 47K 1.00 0.95 V
in10 VSB VSB3.3V int. int. 2.00 1.65 V [3]_
in9 VBAT VBATTERY int. int. 2.00 1.50 V [3]_
======= ======= =========== ==== ======= ============ ==============
.. [1] Depends on your hardware setup.
.. [2] Obviously not correct, swapping R1 and R2 would make more sense.
.. [3] F71872F/FG only.
These values can be used as hints at best, as motherboard manufacturers
are free to use a completely different setup. As a matter of fact, the
Jetway K8M8MS uses a significantly different setup. You will have to
find out documentation about your own motherboard, and edit sensors.conf
accordingly.
Each voltage measured has associated low and high limits, each of which
triggers an alarm when crossed.
Fan RPM 감시
110-124Fan 회전 속도는 gated clock signal에서 12-bit 값으로 보고됩니다. 366 RPM까지 측정할 수 있고 이론적 상한은 없지만 6000 RPM을 넘는 값은 문제가 생기는 것으로 보입니다. 서로 다른 register 값 사이의 step이 1이 아니라 10이므로 실효 resolution은 예상보다 훨씬 낮습니다.
Chip은 회전당 2 pulse인 fan을 가정합니다. 속도가 programmable limit 아래로 떨어지거나 너무 낮아 측정할 수 없으면 alarm이 발생합니다.
측정 범위와 alarm 조건입니다.
Tachometer 값을 limit와 측정 가능 범위에 비교합니다.
Fan Monitoring
--------------
Fan rotation speeds are reported as 12-bit values from a gated clock
signal. Speeds down to 366 RPM can be measured. There is no theoretical
high limit, but values over 6000 RPM seem to cause problem. The effective
resolution is much lower than you would expect, the step between different
register values being 10 rather than 1.
The chip assumes 2 pulse-per-revolution fans.
An alarm is triggered if the rotation speed drops below a programmable
limit or is too low to be measured.
외부 온도 채널과 hysteresis
125-139온도는 섭씨로 보고됩니다. 각 온도 측정값에는 high limit가 있으며 이를 넘으면 alarm이 발생합니다. 연관된 hysteresis 값 아래로 온도가 내려가야 alarm이 해제됩니다.
모든 온도 채널은 외부 채널이며 내장 온도 sensor는 없습니다. 각 채널에는 thermal diode 또는 thermistor를 연결할 수 있습니다. 드라이버는 현재 선택된 mode를 보고하지만 변경은 허용하지 않습니다. 이론상 BIOS가 모든 항목을 올바르게 구성해야 합니다.
Sensor 유형과 alarm hysteresis입니다.
BIOS가 정한 sensor mode에서 high limit와 hysteresis를 적용합니다.
Temperature Monitoring
----------------------
Temperatures are reported in degrees Celsius. Each temperature measured
has a high limit, those crossing triggers an alarm. There is an associated
hysteresis value, below which the temperature has to drop before the
alarm is cleared.
All temperature channels are external, there is no embedded temperature
sensor. Each channel can be used for connecting either a thermal diode
or a thermistor. The driver reports the currently selected mode, but
doesn't allow changing it. In theory, the BIOS should have configured
everything properly.
PWM·DC fan 제어 mode
140-181PWM과 DC fan speed control을 모두 지원합니다. 어떤 방식을 쓸지는 motherboard의 외부 회로에 달려 있으므로 드라이버는 BIOS가 올바른 method를 설정했다고 가정합니다. 드라이버는 method를 보고하지만 변경을 허용하지 않습니다.
PWM method에서는 동작 주파수를 기본 187.5 kHz부터 31 Hz까지 선택할 수 있습니다. 가장 좋은 주파수는 fan model에 따라 다릅니다. 일반적으로 낮은 주파수가 제어에는 낫지만 거슬리는 고주파음을 낼 수 있으므로 가청 범위 바로 위인 25 kHz가 좋은 출발점입니다. 선형 제어가 좋지 않으면 주파수를 낮춥니다. 더 낮은 주파수에서는 tachometer가 혼동할 수 있어 Fintek는 1 kHz 아래로 내리지 않기를 권장합니다.
DC method에서 Fintek는 5 V 아래로 내리지 않기를 권장합니다. 드라이버의 `pwm` 값으로는 106에 해당하지만 드라이버가 이 limit를 강제하지는 않습니다.
Fan control mode 번호는 `pwm<n>_enable`에 씁니다. Mode 1 manual에서는 `pwm<n>`에 특정 PWM duty cycle 또는 DC voltage를 씁니다. Mode 2 temperature에서는 `pwm<n>_auto_point<m>_temp`와 `_fan`으로 세 temperature/fan speed trip point를 정의합니다. 두 개의 추가 point를 보간해 staircase 관계를 만들며 temperature가 `auto_point1_temp` 아래이면 fan을 끕니다. Mode 3 fan speed에서는 `fan<n>_target`에 특정 fan speed를 씁니다.
두 automatic mode 모두 `pwm1`-`fan1`, `pwm2`-`fan2`, `pwm3`-`fan3`의 대응이 필요합니다. Temperature mode에서는 `temp1`도 `pwm1`·`fan1`에 대응하는 식으로 temperature channel까지 일치해야 합니다.
pwm<n>_enable 값과 제어 입력입니다.
Channel 대응을 지킨 상태에서 temperature 또는 RPM을 목표로 제어합니다.
Fan Control
-----------
Both PWM (pulse-width modulation) and DC fan speed control methods are
supported. The right one to use depends on external circuitry on the
motherboard, so the driver assumes that the BIOS set the method
properly. The driver will report the method, but won't let you change
it.
When the PWM method is used, you can select the operating frequency,
from 187.5 kHz (default) to 31 Hz. The best frequency depends on the
fan model. As a rule of thumb, lower frequencies seem to give better
control, but may generate annoying high-pitch noise. So a frequency just
above the audible range, such as 25 kHz, may be a good choice; if this
doesn't give you good linear control, try reducing it. Fintek recommends
not going below 1 kHz, as the fan tachometers get confused by lower
frequencies as well.
When the DC method is used, Fintek recommends not going below 5 V, which
corresponds to a pwm value of 106 for the driver. The driver doesn't
enforce this limit though.
Three different fan control modes are supported; the mode number is written
to the pwm<n>_enable file.
* 1: Manual mode
You ask for a specific PWM duty cycle or DC voltage by writing to the
pwm<n> file.
* 2: Temperature mode
You define 3 temperature/fan speed trip points using the
pwm<n>_auto_point<m>_temp and _fan files. These define a staircase
relationship between temperature and fan speed with two additional points
interpolated between the values that you define. When the temperature
is below auto_point1_temp the fan is switched off.
* 3: Fan speed mode
You ask for a specific fan speed by writing to the fan<n>_target file.
Both of the automatic modes require that pwm1 corresponds to fan1, pwm2 to
fan2 and pwm3 to fan3. Temperature mode also requires that temp1 corresponds
to pwm1 and fan1, etc.
요약·해설
f71805f.rst:1-181Super I/O에서 찾은 Fintek chip의 board별 전압 배선과 PWM·DC fan 제어를 다룹니다.
원문 분량과 핵심 범위입니다.
장치 동작의 기본 순서입니다.