요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
Kernel driver w83627ehf
=======================
Supported chips:
* Winbond W83627EHF/EHG (ISA access ONLY)
Prefix: 'w83627ehf'
Addresses scanned: ISA address retrieved from Super I/O registers
Datasheet: not available
* Winbond W83627DHG
Prefix: 'w83627dhg'
Addresses scanned: ISA address retrieved from Super I/O registers
Datasheet: not available
* Winbond W83627DHG-P
Prefix: 'w83627dhg'
Addresses scanned: ISA address retrieved from Super I/O registers
Datasheet: not available
* Winbond W83627UHG
Prefix: 'w83627uhg'
Addresses scanned: ISA address retrieved from Super I/O registers
Datasheet: available from www.nuvoton.com
* Winbond W83667HG
Prefix: 'w83667hg'
Addresses scanned: ISA address retrieved from Super I/O registers
Datasheet: not available
* Winbond W83667HG-B
Prefix: 'w83667hg'
Addresses scanned: ISA address retrieved from Super I/O registers
Datasheet: Available from Nuvoton upon request
* Nuvoton NCT6775F/W83667HG-I
Prefix: 'nct6775'
Addresses scanned: ISA address retrieved from Super I/O registers
Datasheet: Available from Nuvoton upon request
* Nuvoton NCT6776F
Prefix: 'nct6776'
Addresses scanned: ISA address retrieved from Super I/O registers
Datasheet: Available from Nuvoton upon request
Authors:
- Jean Delvare <[email protected]>
- Yuan Mu (Winbond)
- Rudolf Marek <[email protected]>
- David Hubbard <[email protected]>
- Gong Jun <[email protected]>
Description
-----------
This driver implements support for the Winbond W83627EHF, W83627EHG,
W83627DHG, W83627DHG-P, W83627UHG, W83667HG, W83667HG-B, W83667HG-I
(NCT6775F), and NCT6776F super I/O chips. We will refer to them collectively
as Winbond chips.
The chips implement 3 to 4 temperature sensors (9 for NCT6775F and NCT6776F),
2 to 5 fan rotation speed sensors, 8 to 10 analog voltage sensors, one VID
(except for 627UHG), alarms with beep warnings (control unimplemented),
and some automatic fan regulation strategies (plus manual fan control mode).
The temperature sensor sources on W82677HG-B, NCT6775F, and NCT6776F are
configurable. temp4 and higher attributes are only reported if its temperature
source differs from the temperature sources of the already reported temperature
sensors. The configured source for each of the temperature sensors is provided
in tempX_label.
Temperatures are measured in degrees Celsius and measurement resolution is 1
degC for temp1 and 0.5 degC for temp2 and temp3. For temp4 and higher,
resolution is 1 degC for W83667HG-B and 0.0 degC for NCT6775F and NCT6776F.
An alarm is triggered when the temperature gets higher than high limit;
it stays on until the temperature falls below the hysteresis value.
Alarms are only supported for temp1, temp2, and temp3.
Fan rotation speeds are reported in RPM (rotations per minute). An alarm is
triggered if the rotation speed has dropped below a programmable limit. Fan
readings can be divided by a programmable divider (1, 2, 4, 8, 16, 32, 64 or
128) to give the readings more range or accuracy. The driver sets the most
suitable fan divisor itself. Some fans might not be present because they
share pins with other functions.
Voltage sensors (also known as IN sensors) report their values in millivolts.
An alarm is triggered if the voltage has crossed a programmable minimum
or maximum limit.
The driver supports automatic fan control mode known as Thermal Cruise.
In this mode, the chip attempts to keep the measured temperature in a
predefined temperature range. If the temperature goes out of range, fan
is driven slower/faster to reach the predefined range again.
The mode works for fan1-fan4. Mapping of temperatures to pwm outputs is as
follows::
temp1 -> pwm1
temp2 -> pwm2
temp3 -> pwm3 (not on 627UHG)
prog -> pwm4 (not on 667HG and 667HG-B; the programmable setting is not
supported by the driver)
/sys files
----------
name
this is a standard hwmon device entry, it contains the name of
the device (see the prefix in the list of supported devices at
the top of this file)
pwm[1-4]
this file stores PWM duty cycle or DC value (fan speed) in range:
0 (stop) to 255 (full)
pwm[1-4]_enable
this file controls mode of fan/temperature control:
* 1 Manual mode, write to pwm file any value 0-255 (full speed)
* 2 "Thermal Cruise" mode
* 3 "Fan Speed Cruise" mode
* 4 "Smart Fan III" mode
* 5 "Smart Fan IV" mode
SmartFan III mode is not supported on NCT6776F.
SmartFan IV mode is configurable only if it was configured at system
startup, and is only supported for W83677HG-B, NCT6775F, and NCT6776F.
SmartFan IV operational parameters can not be configured at this time,
and the various pwm attributes are not used in SmartFan IV mode.
The attributes can be written to, which is useful if you plan to
configure the system for a different pwm mode. However, the information
returned when reading pwm attributes is unrelated to SmartFan IV
operation.
pwm[1-4]_mode
controls if output is PWM or DC level
* 0 DC output (0 - 12v)
* 1 PWM output
Thermal Cruise mode
-------------------
If the temperature is in the range defined by:
pwm[1-4]_target
set target temperature, unit millidegree Celsius
(range 0 - 127000)
pwm[1-4]_tolerance
tolerance, unit millidegree Celsius (range 0 - 15000)
there are no changes to fan speed. Once the temperature leaves the interval,
fan speed increases (temp is higher) or decreases if lower than desired.
There are defined steps and times, but not exported by the driver yet.
pwm[1-4]_min_output
minimum fan speed (range 1 - 255), when the temperature
is below defined range.
pwm[1-4]_stop_time
how many milliseconds [ms] must elapse to switch
corresponding fan off. (when the temperature was below
defined range).
pwm[1-4]_start_output
minimum fan speed (range 1 - 255) when spinning up
pwm[1-4]_step_output
rate of fan speed change (1 - 255)
pwm[1-4]_stop_output
minimum fan speed (range 1 - 255) when spinning down
pwm[1-4]_max_output
maximum fan speed (range 1 - 255), when the temperature
is above defined range.
Note: last six functions are influenced by other control bits, not yet exported
by the driver, so a change might not have any effect.
Implementation Details
----------------------
Future driver development should bear in mind that the following registers have
different functions on the 627EHF and the 627DHG. Some registers also have
different power-on default values, but BIOS should already be loading
appropriate defaults. Note that bank selection must be performed as is currently
done in the driver for all register addresses.
========================= =====================================================
Register(s) Meaning
========================= =====================================================
0x49 only on DHG, selects temperature source for AUX fan,
CPU fan0
0x4a not completely documented for the EHF and the DHG
documentation assigns different behavior to bits 7
and 6, including extending the temperature input
selection to SmartFan I, not just SmartFan III.
Testing on the EHF will reveal whether they are
compatible or not.
0x58 Chip ID: 0xa1=EHF 0xc1=DHG
0x5e only on DHG, has bits to enable "current mode"
temperature detection and critical temperature
protection
0x45b only on EHF, bit 3, vin4 alarm (EHF supports 10
inputs, only 9 on DHG)
0x552 only on EHF, vin4
0x558 only on EHF, vin4 high limit
0x559 only on EHF, vin4 low limit
0x6b only on DHG, SYS fan critical temperature
0x6c only on DHG, CPU fan0 critical temperature
0x6d only on DHG, AUX fan critical temperature
0x6e only on DHG, CPU fan1 critical temperature
0x50-0x55 and 0x650-0x657 marked as:
- "Test Register" for the EHF
- "Reserved Register" for the DHG
========================= =====================================================
The DHG also supports PECI, where the DHG queries Intel CPU temperatures, and
the ICH8 southbridge gets that data via PECI from the DHG, so that the
southbridge drives the fans. And the DHG supports SST, a one-wire serial bus.
The DHG-P has an additional automatic fan speed control mode named Smart Fan
(TM) III+. This mode is not yet supported by the driver.
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
지원 칩과 접두사
1-78이 드라이버는 ISA 접근 전용 Winbond W83627EHF/EHG, W83627DHG, W83627DHG-P, W83627UHG, W83667HG, W83667HG-B와 Nuvoton NCT6775F/W83667HG-I, NCT6776F를 지원합니다.
접두사는 칩 계열에 따라 `w83627ehf`, `w83627dhg`, `w83627uhg`, `w83667hg`, `nct6775`, `nct6776`입니다. 모든 장치의 ISA 주소는 Super-I/O 레지스터에서 가져옵니다.
W83627UHG 데이터시트는 Nuvoton 웹사이트에서 구할 수 있고 W83667HG-B, NCT6775F, NCT6776F 자료는 요청하면 받을 수 있습니다. 나머지 칩의 데이터시트는 공개되지 않았습니다.
작성자는 Jean Delvare, Yuan Mu, Rudolf Marek, David Hubbard, Gong Jun입니다.
지원 칩, 접두사, 데이터시트 상태를 정리합니다.
Super-I/O 정보로 칩 변형과 접두사를 결정합니다.
Kernel driver w83627ehf
=======================
Supported chips:
* Winbond W83627EHF/EHG (ISA access ONLY)
Prefix: 'w83627ehf'
Addresses scanned: ISA address retrieved from Super I/O registers
Datasheet: not available
* Winbond W83627DHG
Prefix: 'w83627dhg'
Addresses scanned: ISA address retrieved from Super I/O registers
Datasheet: not available
* Winbond W83627DHG-P
Prefix: 'w83627dhg'
Addresses scanned: ISA address retrieved from Super I/O registers
Datasheet: not available
* Winbond W83627UHG
Prefix: 'w83627uhg'
Addresses scanned: ISA address retrieved from Super I/O registers
Datasheet: available from www.nuvoton.com
* Winbond W83667HG
Prefix: 'w83667hg'
Addresses scanned: ISA address retrieved from Super I/O registers
Datasheet: not available
* Winbond W83667HG-B
Prefix: 'w83667hg'
Addresses scanned: ISA address retrieved from Super I/O registers
Datasheet: Available from Nuvoton upon request
* Nuvoton NCT6775F/W83667HG-I
Prefix: 'nct6775'
Addresses scanned: ISA address retrieved from Super I/O registers
Datasheet: Available from Nuvoton upon request
* Nuvoton NCT6776F
Prefix: 'nct6776'
Addresses scanned: ISA address retrieved from Super I/O registers
Datasheet: Available from Nuvoton upon request
Authors:
- Jean Delvare <[email protected]>
- Yuan Mu (Winbond)
- Rudolf Marek <[email protected]>
- David Hubbard <[email protected]>
- Gong Jun <[email protected]>
센서와 Thermal Cruise
79-129문서에서는 지원되는 Winbond와 Nuvoton Super-I/O 칩을 통칭해 Winbond 칩이라고 부릅니다. 칩에 따라 온도 센서 3~4개, 팬 회전 센서 2~5개, 아날로그 전압 센서 8~10개, VID 하나를 제공합니다. W83627UHG에는 VID가 없습니다. 비프 경보는 있지만 제어는 구현되지 않았고 자동·수동 팬 제어 전략이 있습니다.
W83667HG-B, NCT6775F, NCT6776F의 온도 센서 원천은 구성할 수 있습니다. `temp4` 이상은 이미 보고한 온도 센서와 원천이 다를 때만 노출되며 `tempX_label`에 구성된 원천이 표시됩니다.
온도 해상도는 `temp1`이 1 °C, `temp2`와 `temp3`이 0.5 °C입니다. `temp4` 이상은 W83667HG-B에서 1 °C, NCT6775F와 NCT6776F에서 문서상 0.0 °C입니다. 온도가 상한을 넘으면 경보가 나고 히스테리시스 아래로 내려갈 때까지 유지됩니다. 경보는 `temp1`~`temp3`만 지원합니다.
팬 속도는 RPM이며 프로그램 가능한 최저 한계 아래에서 경보가 납니다. 분주기는 1, 2, 4, 8, 16, 32, 64, 128이고 드라이버가 가장 적절한 값을 자동 선택합니다. 일부 팬 핀은 다른 기능과 공유되어 존재하지 않을 수 있습니다. 전압은 mV로 보고되며 최소·최대 한계를 넘으면 경보가 납니다.
Thermal Cruise 자동 팬 제어는 측정 온도를 미리 정한 범위에 유지하려 합니다. 범위를 벗어나면 팬을 느리게 또는 빠르게 돌립니다. fan1~fan4에 적용되며 `temp1→pwm1`, `temp2→pwm2`, `temp3→pwm3`입니다. 627UHG에는 pwm3 매핑이 없습니다. 프로그래밍 입력은 pwm4에 대응하지만 667HG/HG-B에는 없고 드라이버도 이 설정을 지원하지 않습니다.
센서 범위와 Thermal Cruise 온도-PWM 관계를 함께 정리합니다.
측정 온도를 목표 범위로 되돌리기 위한 팬 제어입니다.
Description
-----------
This driver implements support for the Winbond W83627EHF, W83627EHG,
W83627DHG, W83627DHG-P, W83627UHG, W83667HG, W83667HG-B, W83667HG-I
(NCT6775F), and NCT6776F super I/O chips. We will refer to them collectively
as Winbond chips.
The chips implement 3 to 4 temperature sensors (9 for NCT6775F and NCT6776F),
2 to 5 fan rotation speed sensors, 8 to 10 analog voltage sensors, one VID
(except for 627UHG), alarms with beep warnings (control unimplemented),
and some automatic fan regulation strategies (plus manual fan control mode).
The temperature sensor sources on W82677HG-B, NCT6775F, and NCT6776F are
configurable. temp4 and higher attributes are only reported if its temperature
source differs from the temperature sources of the already reported temperature
sensors. The configured source for each of the temperature sensors is provided
in tempX_label.
Temperatures are measured in degrees Celsius and measurement resolution is 1
degC for temp1 and 0.5 degC for temp2 and temp3. For temp4 and higher,
resolution is 1 degC for W83667HG-B and 0.0 degC for NCT6775F and NCT6776F.
An alarm is triggered when the temperature gets higher than high limit;
it stays on until the temperature falls below the hysteresis value.
Alarms are only supported for temp1, temp2, and temp3.
Fan rotation speeds are reported in RPM (rotations per minute). An alarm is
triggered if the rotation speed has dropped below a programmable limit. Fan
readings can be divided by a programmable divider (1, 2, 4, 8, 16, 32, 64 or
128) to give the readings more range or accuracy. The driver sets the most
suitable fan divisor itself. Some fans might not be present because they
share pins with other functions.
Voltage sensors (also known as IN sensors) report their values in millivolts.
An alarm is triggered if the voltage has crossed a programmable minimum
or maximum limit.
The driver supports automatic fan control mode known as Thermal Cruise.
In this mode, the chip attempts to keep the measured temperature in a
predefined temperature range. If the temperature goes out of range, fan
is driven slower/faster to reach the predefined range again.
The mode works for fan1-fan4. Mapping of temperatures to pwm outputs is as
follows::
temp1 -> pwm1
temp2 -> pwm2
temp3 -> pwm3 (not on 627UHG)
prog -> pwm4 (not on 667HG and 667HG-B; the programmable setting is not
supported by the driver)
PWM sysfs 모드
130-168표준 hwmon `name` 파일에는 문서 앞부분의 접두사에 해당하는 장치 이름이 들어 있습니다. `pwm[1-4]`는 PWM 듀티 또는 DC 팬 속도를 0(정지)부터 255(최대)까지 저장합니다.
`pwm[1-4]_enable`은 팬·온도 제어 모드를 선택합니다. 값 1은 `pwm` 파일에 0~255를 쓰는 수동 모드, 2는 Thermal Cruise, 3은 Fan Speed Cruise, 4는 Smart Fan III, 5는 Smart Fan IV입니다.
NCT6776F는 Smart Fan III를 지원하지 않습니다. Smart Fan IV는 시스템 시작 때 이미 구성된 경우에만 선택할 수 있고 W83667HG-B, NCT6775F, NCT6776F에서만 지원됩니다.
현재 Smart Fan IV의 동작 매개변수는 구성할 수 없고 여러 pwm 속성도 이 모드에서 사용되지 않습니다. 다른 모드로 바꾸기 위한 값을 미리 쓰는 것은 가능하지만 pwm 속성을 읽어 돌려받는 정보는 Smart Fan IV 동작과 관계없습니다.
`pwm[1-4]_mode`는 출력 전기 방식을 선택합니다. 0은 0~12 V DC 출력, 1은 PWM 출력입니다.
enable 값과 출력 방식의 의미를 구분합니다.
사용하려는 제어 방식과 칩 지원 여부를 확인합니다.
/sys files
----------
name
this is a standard hwmon device entry, it contains the name of
the device (see the prefix in the list of supported devices at
the top of this file)
pwm[1-4]
this file stores PWM duty cycle or DC value (fan speed) in range:
0 (stop) to 255 (full)
pwm[1-4]_enable
this file controls mode of fan/temperature control:
* 1 Manual mode, write to pwm file any value 0-255 (full speed)
* 2 "Thermal Cruise" mode
* 3 "Fan Speed Cruise" mode
* 4 "Smart Fan III" mode
* 5 "Smart Fan IV" mode
SmartFan III mode is not supported on NCT6776F.
SmartFan IV mode is configurable only if it was configured at system
startup, and is only supported for W83677HG-B, NCT6775F, and NCT6776F.
SmartFan IV operational parameters can not be configured at this time,
and the various pwm attributes are not used in SmartFan IV mode.
The attributes can be written to, which is useful if you plan to
configure the system for a different pwm mode. However, the information
returned when reading pwm attributes is unrelated to SmartFan IV
operation.
pwm[1-4]_mode
controls if output is PWM or DC level
* 0 DC output (0 - 12v)
* 1 PWM output
Thermal Cruise 매개변수
169-203Thermal Cruise에서 `pwm[1-4]_target`은 목표 온도를 밀리섭씨 0~127000 범위로 설정하고 `pwm[1-4]_tolerance`는 허용 오차를 밀리섭씨 0~15000 범위로 설정합니다.
온도가 목표±허용 오차 범위 안에 있으면 팬 속도를 바꾸지 않습니다. 범위를 벗어나면 높은 경우 가속하고 낮은 경우 감속합니다. 단계와 시간 설정도 정의되어 있지만 드라이버는 아직 이를 내보내지 않습니다.
`pwm*_min_output`은 온도가 범위 아래일 때의 최소 팬 속도 1~255, `pwm*_stop_time`은 팬을 끄기 전 기다리는 밀리초입니다. `pwm*_start_output`은 회전을 시작할 때의 최소 속도, `pwm*_step_output`은 속도 변화율, `pwm*_stop_output`은 감속 중 최소 속도, `pwm*_max_output`은 범위 위에서의 최대 속도이며 출력 값은 각각 1~255입니다.
마지막 여섯 기능은 아직 드라이버가 노출하지 않는 다른 제어 비트의 영향을 받으므로 값을 바꿔도 효과가 없을 수 있습니다.
목표 범위와 팬 출력 조정 속성을 정리합니다.
온도 위치에 따라 출력을 유지·증가·감소합니다.
Thermal Cruise mode
-------------------
If the temperature is in the range defined by:
pwm[1-4]_target
set target temperature, unit millidegree Celsius
(range 0 - 127000)
pwm[1-4]_tolerance
tolerance, unit millidegree Celsius (range 0 - 15000)
there are no changes to fan speed. Once the temperature leaves the interval,
fan speed increases (temp is higher) or decreases if lower than desired.
There are defined steps and times, but not exported by the driver yet.
pwm[1-4]_min_output
minimum fan speed (range 1 - 255), when the temperature
is below defined range.
pwm[1-4]_stop_time
how many milliseconds [ms] must elapse to switch
corresponding fan off. (when the temperature was below
defined range).
pwm[1-4]_start_output
minimum fan speed (range 1 - 255) when spinning up
pwm[1-4]_step_output
rate of fan speed change (1 - 255)
pwm[1-4]_stop_output
minimum fan speed (range 1 - 255) when spinning down
pwm[1-4]_max_output
maximum fan speed (range 1 - 255), when the temperature
is above defined range.
Note: last six functions are influenced by other control bits, not yet exported
by the driver, so a change might not have any effect.
칩별 레지스터 차이
204-248향후 드라이버 개발에서는 627EHF와 627DHG에서 일부 레지스터의 기능과 전원 인가 기본값이 다름을 고려해야 합니다. BIOS가 적절한 기본값을 적재해야 하며 모든 레지스터 주소는 현재 드라이버처럼 뱅크를 선택한 뒤 접근해야 합니다.
`0x49`는 DHG에만 있고 AUX fan과 CPU fan0의 온도 원천을 선택합니다. `0x4a`는 EHF 문서가 불완전하며 DHG에서는 비트 7·6의 동작과 SmartFan I까지 확장되는 온도 입력 선택이 다르게 정의됩니다. 실제 호환성은 EHF 시험이 필요합니다.
`0x58`의 칩 ID는 EHF가 `0xa1`, DHG가 `0xc1`입니다. `0x5e`는 DHG 전용으로 current mode 온도 감지와 임계 온도 보호를 활성화합니다. `0x45b`의 비트 3과 `0x552`, `0x558`, `0x559`는 EHF의 열 번째 전압 입력 vin4와 경보·상한·하한에 해당합니다.
`0x6b`~`0x6e`는 DHG의 SYS fan, CPU fan0, AUX fan, CPU fan1 임계 온도입니다. `0x50`~`0x55`, `0x650`~`0x657`은 EHF에서는 Test Register, DHG에서는 Reserved Register로 표시됩니다.
DHG는 Intel CPU 온도를 조회하고 ICH8 사우스브리지가 PECI로 이를 받아 팬을 구동하는 PECI와, 1선 직렬 버스 SST도 지원합니다. DHG-P에는 Smart Fan III+ 자동 팬 제어 모드가 추가되지만 드라이버는 아직 지원하지 않습니다.
원문의 구현 레지스터 표를 기능별로 보존했습니다.
칩 변형별 의미를 확인하고 올바른 뱅크에서 접근합니다.
Implementation Details
----------------------
Future driver development should bear in mind that the following registers have
different functions on the 627EHF and the 627DHG. Some registers also have
different power-on default values, but BIOS should already be loading
appropriate defaults. Note that bank selection must be performed as is currently
done in the driver for all register addresses.
========================= =====================================================
Register(s) Meaning
========================= =====================================================
0x49 only on DHG, selects temperature source for AUX fan,
CPU fan0
0x4a not completely documented for the EHF and the DHG
documentation assigns different behavior to bits 7
and 6, including extending the temperature input
selection to SmartFan I, not just SmartFan III.
Testing on the EHF will reveal whether they are
compatible or not.
0x58 Chip ID: 0xa1=EHF 0xc1=DHG
0x5e only on DHG, has bits to enable "current mode"
temperature detection and critical temperature
protection
0x45b only on EHF, bit 3, vin4 alarm (EHF supports 10
inputs, only 9 on DHG)
0x552 only on EHF, vin4
0x558 only on EHF, vin4 high limit
0x559 only on EHF, vin4 low limit
0x6b only on DHG, SYS fan critical temperature
0x6c only on DHG, CPU fan0 critical temperature
0x6d only on DHG, AUX fan critical temperature
0x6e only on DHG, CPU fan1 critical temperature
0x50-0x55 and 0x650-0x657 marked as:
- "Test Register" for the EHF
- "Reserved Register" for the DHG
========================= =====================================================
The DHG also supports PECI, where the DHG queries Intel CPU temperatures, and
the ICH8 southbridge gets that data via PECI from the DHG, so that the
southbridge drives the fans. And the DHG supports SST, a one-wire serial bus.
The DHG-P has an additional automatic fan speed control mode named Smart Fan
(TM) III+. This mode is not yet supported by the driver.
요약·해설
w83627ehf.rst:1-248W83627EHF 계열은 온도·팬·전압·VID를 감시하고 여러 자동 팬 모드를 제공하며 EHF와 DHG의 레지스터 의미가 일부 다릅니다.
원문 분량과 핵심 기능을 요약합니다.
장치 초기화부터 측정·상태 제공까지의 순서입니다.