Skip to content

Instantly share code, notes, and snippets.

@jonasmalacofilho
Created January 21, 2024 17:29
Show Gist options
  • Save jonasmalacofilho/a0537a64f2c832e6c19bfc6387ff882e to your computer and use it in GitHub Desktop.
Save jonasmalacofilho/a0537a64f2c832e6c19bfc6387ff882e to your computer and use it in GitHub Desktop.
lm-sensors configuration for the ASUS PRIME Z370-A motherboard
# lm-sensors configuration for the ASUS PRIME Z370-A motherboard
#
# Manufacturer: ASUSTeK COMPUTER INC.
# Product Name: PRIME Z370-A
# Version: Rev 1.04
# Super I/O: NCT6793D
# UEFI versions tested: 0805, 1601
#
# Recommended drivers: coretemp, nct6775
# Other Z370 boards from ASUS might use a similar setup
#
# dmesg might show that the kernel failed to bind the nct6775 driver due to an
# ACPI conflict between SystemIO and OpRegion ranges. Ideally a WMI driver
# should be used instead of directly accessing the Super I/O chip but,
# unfortunally, very little is exposed via WMI, even on the latest UEFI.
#
# You can allow the driver to bind to the chip, regardless of the conflict, by
# setting the kernel command line option:
#
# acpi_enforce_resources=lax
#
# This is not known to cause issues on the PRIME Z370-A, but you might still
# want to disable thermal and blacklist eeepc_wmi to minimize conflicts:
#
# thermal.off=1 module_blacklist=eeepc_wmi
#
# Jonas Malaco, 2019
#
# Updated 2024-01-21: ignore newly supported but not functioning NCT6793D sensors
chip "coretemp-*"
label temp1 "CPU Package DTS"
label temp2 "CPU Core 1 DTS"
label temp3 "CPU Core 2 DTS"
label temp4 "CPU Core 3 DTS"
label temp5 "CPU Core 4 DTS"
label temp6 "CPU Core 5 DTS"
label temp7 "CPU Core 6 DTS"
label temp8 "CPU Core 7 DTS"
label temp9 "CPU Core 8 DTS"
chip "nct6793-*"
label in0 "CPU Core Voltage"
compute in0 @ * 2, @ / 2
set in0_max 1.42 # 1.35 V at load/1.42 V max is generally accepted as safe
# for 24/7 i7-8700K
label in1 "ATX +5 V Voltage"
compute in1 @ * 5, @ / 5
set in1_max 5 * 1.05 # ATX 2.4
set in1_min 5 * 0.95 # ATX 2.4
# analog +3.3 V power rail for the Super I/O analog circuits
label in2 "AVCC Analog Voltage"
set in2_max 3.3 * 1.05 # assume ATX ±5% is enough
set in2_min 3.3 * 0.95 # assume ATX ±5% is enough
label in3 "ATX +3.3 V Voltage"
set in3_max 3.3 * 1.05 # ATX 2.4
set in3_min 3.3 * 0.95 # ATX 2.4
label in4 "ATX +12 V Voltage"
compute in4 @ * 12, @ / 12
set in4_max 12 * 1.05 # ATX 2.4
set in4_min 12 * 0.95 # ATX 2.4
label in6 "CPU Graphics Voltage"
compute in6 @ * 2, @ / 2
set in6_max in0_max # little is known, but specs are similar for IA and GT
# +3.3 V stand-by power rail for digital circuits
label in7 "3VSB Standby Voltage"
set in7_max 3.3 * 1.05 # assume ATX ±5% is enough
set in7_min 3.3 * 0.95 # assume ATX ±5% is enough
# +3 V on-board battery for PCH RTC Power Well (RTC & CMOS RAM) and select
# Super I/O features (e.g. case intrusion detection)
label in8 "RTC Battery Voltage"
set in8_max 3.4 # from random CR2032 datasheet
set in8_min 2.0 # from Intel 200-series chipset spec
# VTT for PECI on the Super I/O; should come from CPU VCCST (sustain/standby)
label in9 "CPU Sustain Voltage"
set in9_max 1.00 * 1.05 # from Intel 8-th gen spec
set in9_min 1.00 * 0.95 # from Intel 8-th gen spec
# note: there is a small difference between SIO VTT and CPU VCCST as reported
# by the ASUS EC/UEFI
label in10 "DRAM Voltage"
compute in10 @ * 2, @ / 2
set in10_max 1.5 # max certified Intel XMP 2.0 kits for LGA1151; generally
# accepted as safe for 24/7 Samsung B dies as well
label in11 "CPU System Agent Voltage"
set in11_max 1.35 # generally accepted limit to avoid degradation
set in11_min 1.05 * 0.95 # from Intel 8-th gen spec
label in12 "PCH Core Voltage"
set in12_max 1.0 * 1.05 # from Intel 200-series chipset spec
set in12_min 1.0 * 0.95 # from Intel 200-series chipset spec
label in14 "CPU IO Voltage"
set in14_max 1.25 # generally accepted limit to avoid degradation
set in14_min 0.95 * 0.95 # from Intel 8-th gen spec
ignore in5 # unknown
ignore in13 # unknown
# note: DMI voltage is not monitored by this chip (only ASUS EC)
label temp1 "Board Temperature"
label temp8 "T_SENSOR Header"
# CPU package temperature from the PECI: with less noise than the raw DTS
# (as read by coretemp), this is the recommended sensor for basic monitoring
label temp7 "CPU Temperature"
# CPU temperature shown in/used by the UEFI: significantly lower than the
# package temperature and with frequent over/undershoots, but kept here
# because it is the default sensor in the UEFI for fan control
label temp9 "UEFI CPU Temperature"
# CPUTIN does not report the CPU temperature
ignore temp2 # maybe CPU socket temperature
# AUXTIN is not functional/does not report sensible values
ignore temp3 # somewhat related to GT usage
ignore temp4
ignore temp5
ignore temp6
# PCH temperatures are not monitored by this chip (only ASUS EC)
ignore temp10
ignore temp11
ignore temp12
ignore temp13
# Ignore TSI registers that only report garbage
ignore temp14
ignore temp15
ignore temp16
ignore temp17
ignore temp18
ignore temp19
ignore temp20
label fan1 "CHA_FAN1 Header"
label fan2 "CPU_FAN Header"
label fan3 "M_2_FAN Header"
label fan5 "AIO_PUMP Header"
label fan6 "CHA_FAN2 Header"
ignore fan4 # does not match any physical header/always zero
# note: CPU_OPT header is not monitored by this chip (only ASUS EC)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment