This is an old revision of the document!
amdtemp
- универсальный драйвер для датчика температуры в процессорах AMD.
Драйвер основательно переписан, полностью изменён подход к работе с процессором:
старый подход: в драйвере прописаны все известные ID процессоров и как работать с каждым из них
новый подход: во время инициализации определяем какие методы для считывания показаний доступны и используем их, ID используются только для старых процессоров и процессоров где считывание имеет особенности.
Те новый подход полностью идентичен тому как кодеки и прочий софт определяет наличие MMX, SSE, AVX и прочих специфичных вещей в конкретном процессоре, вместо того чтобы таскать с собой базу процессоров где есть эти наборы инструкций.
Скачать: amdtemp.c PR194792
Лицензия: BSD
Установка
Скачать
Заменить amdtemp.c в папке /usr/src/sys/dev/amdtemp/ на скаченный
Пересобрать и установить ядро целиком или только модуль:
kldunload amdtemp
cd /usr/src/sys/modules/amdtemp/
make
make install
make cleandir
Поддерживаемые методы считывания
D18F3xE4 Thermtrip Status Register (TTS)
D18F3x64 Hardware Thermal Control (HTC)
D18F3xA4 Reported Temperature Control Register (RTC)
SB-TSI - Temperature Sensor Interface via CPU registers (TSI)
TSI via SMBus - не реализовано!
Для каждого метода считывания можно задать свой offset - значение которое будет прибавляться или отниматься от показаний датчика.
Крутилки
Добавлено множество параметров которые можно посмотреть, а некоторые изменить.
Более подробные описания параметров - см в документации на процессор.
D18F3xE4 Thermtrip Status Register
TjOffset (RD) - This field is the offset from CurTmp used to normalize to Tcontrol.
DiodeOffset (RD) - Thermal diode offset is used to correct the measurement made by an external temperature sensor.
ThermtpEn (RD) - The THERMTRIP state is supported by the processor.
Thermtrip (RD) - The processor has entered the THERMTRIP state.
D18F3x64 Hardware Thermal Control (HTC)
HtcTmpLmt (RD, Кельвины) - HTC temperature limit
HtcHystLmt (RW, Кельвины) - HTC hysteresis. The processor exits the HTC active state when the temperature selected by HtcSlewSel is less than the HTC temperature limit (HtcTmpLmt) minus the HTC hysteresis (HtcHystLmt).
HtcEn (RW) - HTC is enabled; the processor is capable of entering the HTC-active state.
HtcLock (RW) - HtcPstateLimit, HtcHystLmt, HtcTmpLmt, and HtcEn are read-only.
HtcSlewSel (RW) - HTC slew-controlled temperature select.
HtcPstateLimit (RW) - HTC P-state limit select.
HtcAct (RW) - The processor is currently in the HTC-active state.
HtcActSts (RW) - set-by-hardware; write-1-to-clear. Reset: 0. This bit is set by hardware when the processor enters the HTC-active state. It is cleared by writing a 1 to it.
PslApicHiEn (RW) - P-state limit higher value change APIC interrupt enable.
PslApicLoEn (RW) - P-state limit lower value change APIC interrupt enable.
D18F3xA4 Reported Temperature Control Register
CurTmp (RD, Кельвины) - Provides the current control temperature, Tctl, after the slew-rate controls have been applied.
CurTmpTjSel (RW, Кельвины) - Specifies a value used to create Tctl.
TmpSlewDnEn (RW) - Temperature slew downward enable.
TmpMaxDiffUp (RW) - Specifies the maximum difference, (Tctlm - Tctl), when Tctl immediatly updates to Tctlm.
PerStepTimeDn (RW) - Specifies the time that Tctlm must remain below Tctl before applying a 0.125 downward step.
PerStepTimeUp (RW) - Specifies the time that Tctlm must remain above Tctl before applying a 0.125 upward step.
SB-TSI registers
cpu_temperature (RD, Кельвины) - CPU Temperature
high_temperature_threshold (RD, Кельвины) - High Temperature Threshold
low_temperature_threshold (RD, Кельвины) - Low Temperature Threshold
cpu_temperature_offset_hi (RW) - CPU Temperature Offset High Byte
cpu_temperature_offset_lo (RW) - CPU Temperature Offset Low Byte
status (RW) - SB-TSI Status
cfg3 (RW) - SB-TSI Configuration Register 0x03
cfg9 (RW) - SB-TSI Configuration Register 0x09
upd_rate (RW) - Update Rate
timeout_cfg (RW) - Timeout Configuration
alert_threshold (RW) - Alert Threshold
alert_cfg (RW) - Alert Configuration
manufacture_id (RD) - Manufacture ID
revision (RD) - SB-TSI Revision