Files
ember-tune-rs/assets/hardware_db.toml

148 lines
4.7 KiB
TOML

[metadata]
version = "1.1.0"
updated = "2026-02-26"
description = "Hardware and Conflict Database for ember-tune Thermal Engine"
# service collision
[[conflicts]]
id = "tlp_vs_ppd"
services = ["tlp.service", "power-profiles-daemon.service"]
contention = "ACPI Platform Profile / EPP"
severity = "Critical"
fix_action = "MaskBoth"
help_text = "TLP and Power-Profiles-Daemon fight over power envelopes. Mask both to allow ember-tune deterministic control."
[[conflicts]]
id = "thermal_logic_collision"
services = ["thermald.service", "throttled.service"]
contention = "RAPL / MSR / BD-PROCHOT"
severity = "High"
fix_action = "SuspendService"
help_text = "Thermald and Throttled create a 'register ping-pong' loop. Disable throttled; ember-tune will manage RAPL limits."
[[conflicts]]
id = "freq_scaling_collision"
services = ["auto-cpufreq.service"]
contention = "CPU Scaling Governor"
severity = "Medium"
fix_action = "SuspendService"
help_text = "Auto-cpufreq interferes with deterministic Silicon Knee identification."
[[conflicts]]
id = "dell_fan_collision"
services = ["i8kmon.service"]
contention = "Dell SMM Fan Control"
severity = "High"
fix_action = "SuspendService"
help_text = "i8kmon fights with ember-tune for SMM fan duty cycles. Suspend during benchmark."
# manufacturer wide logic
[ecosystems.dell]
vendor_regex = "(Dell.*|Precision.*|Latitude.*|XPS.*)"
polling_cap_ms = 1000
drivers = ["dell_smm_hwmon"]
fan_manual_mode_cmd = "dell-bios-fan-control 0"
fan_auto_mode_cmd = "dell-bios-fan-control 1"
safety_register = "0x1FC" # BD PROCHOT MSR
help_text = "Dell systems often require 'SMM Security Mitigation' disabled in BIOS for fan control."
[ecosystems.lenovo]
vendor_regex = "LENOVO"
lap_mode_path = "/sys/devices/platform/thinkpad_acpi/dytc_lapmode"
profiles_path = "/sys/firmware/acpi/platform_profile"
ec_write_required = false # Varies by model
[ecosystems.asus]
vendor_regex = "ASUSTeK.*"
thermal_policy_path = "/sys/devices/platform/asus-nb-wmi/throttle_thermal_policy"
policy_map = { Balanced = 0, Turbo = 1, Silent = 2 }
[ecosystems.hp]
vendor_regex = "HP"
msr_lock_register = "0x610"
msr_lock_bit = 63
fan_boost_path = "/sys/devices/platform/hp-wmi/hwmon/hwmon*/pwm1_enable"
[ecosystems.framework]
vendor_regex = "Framework"
ec_tool = "ectool"
optimization = "Direct-FFI-SMC"
polling_cap_ms = 500
[ecosystems.surface]
vendor_regex = "Microsoft Corporation"
product_regex = "Surface.*"
drivers = ["surface_acpi"]
profiles_path = "/sys/bus/platform/devices/surface_performance/platform_profile"
# quirks: model quirks and fixes
[[quirks]]
model_regex = "XPS 13 93.*"
id = "dell_bd_prochot_fix"
issue = "False Positive 400MHz Lock"
monitor_msr = "0x1FC"
reset_bit = 0
action = "ClearBitOnSafeTemp"
[[quirks]]
model_regex = "ThinkPad T14.*"
id = "lenovo_lap_throttling"
issue = "11W TDP Lock in Lap Mode"
trigger_path = "/sys/devices/platform/thinkpad_acpi/dytc_lapmode"
trigger_value = "1"
action = "AbortOnLapMode"
[[quirks]]
model_regex = "ROG Zephyrus G14"
id = "asus_fan_hex_support"
issue = "Custom Hex Curve Interface"
target_path = "/sys/devices/platform/asus-nb-wmi/fan_curve"
format = "HexPair16"
action = "ManualFanControlRequired"
[[quirks]]
model_regex = "Spectre x360"
id = "hp_rapl_lockout"
issue = "Hardware MSR Lockout"
action = "WarnUserMSRLocked"
[[quirks]]
model_regex = "Framework.*"
id = "framework_prochot_stuck"
issue = "BD PROCHOT wedged at 200MHz"
monitor_msr = "0x1FC"
reset_bit = 0
action = "ClearBitOnSafeTemp"
# heuristic discovery
[discovery.sensors]
temp_labels = ["Package id 0", "Tdie", "Tctl", "CPU Temperature", "Core 0", "Composite"]
fan_labels = ["CPU Fan", "GPU Fan", "System Fan", "Processor Fan"]
hwmon_priority = ["coretemp", "zenpower", "k10temp", "dell_smm", "thinkpad", "asus"]
[discovery.actuators]
rapl_paths = ["intel-rapl:0", "package-0", "intel-rapl:1"]
amd_energy_paths = ["zenpower/energy1_input", "k10temp/energy1_input"]
governor_files = ["energy_performance_preference", "energy_performance_hint", "scaling_governor"]
# env health verification
[[preflight_checks]]
name = "MSR Write Access"
check_cmd = "grep -q 'msr.allow_writes=on' /proc/cmdline"
fail_help = "Add 'msr.allow_writes=on' to kernel parameters to allow power limit manipulation."
[[preflight_checks]]
name = "Kernel Lockdown Status"
check_cmd = "cat /sys/kernel/security/lockdown | grep -q '\\[none\\]' || ! [ -f /sys/kernel/security/lockdown ]"
fail_help = "Kernel Lockdown is enabled. MMIO/MSR actuators are restricted by the Linux Security Module."
[[preflight_checks]]
name = "Intel P-State Check"
check_cmd = "[ -d /sys/devices/system/cpu/intel_pstate ] || [ -d /sys/devices/system/cpu/cpufreq/policy0 ]"
fail_help = "CPU Frequency scaling driver not detected. Ensure intel_pstate or acpi-cpufreq is loaded."