165 lines
5.2 KiB
TOML
165 lines
5.2 KiB
TOML
[metadata]
|
|
version = "1.2.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", "lenovo_fix.service", "lenovo-throttling-fix.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"]
|
|
|
|
[discovery.configs]
|
|
throttled = ["/etc/throttled.conf", "/usr/local/etc/throttled.conf", "/etc/lenovo_fix.conf"]
|
|
i8kmon = ["/etc/i8kmon.conf", "/etc/default/i8kmon"]
|
|
tlp = ["/etc/tlp.conf", "/etc/default/tlp"]
|
|
|
|
[discovery.tools]
|
|
dell_fan_ctrl = "dell-bios-fan-control"
|
|
ectool = "ectool"
|
|
ryzenadj = "ryzenadj"
|
|
|
|
# env health verification
|
|
|
|
[benchmarking]
|
|
idle_duration_s = 10
|
|
stress_duration_min_s = 15
|
|
stress_duration_max_s = 45
|
|
cool_down_s = 5
|
|
power_steps_watts = [15.0, 20.0, 25.0, 30.0, 35.0]
|
|
|
|
[[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."
|