-
Notifications
You must be signed in to change notification settings - Fork 115
Dell XPS 17 9730
i9-13900H, BIOS 1.27.0. undervolt --temp runs without error here but has no effect: the firmware sets the lock bit (bit 31) of MSR_IA32_TEMPERATURE_TARGET (0x1A2), so writes to the temperature target are discarded. From Linux you can see it directly — writing /sys/devices/pci0000:00/0000:00:04.0/tcc_offset_degree_celsius returns EPERM, which is intel_tcc_set_offset() refusing because of that bit.
What sets the lock is a BIOS setup option Dell doesn't show in its menu, "Tcc Offset Lock Enable", stored in the CpuSetup EFI variable. Linux can read that variable but not write it. The firmware rejects SetVariable at runtime, so it has to be cleared from a UEFI shell with setup_var.efi. Once cleared, --temp and the sysfs file both work.
The byte offset differs per model and BIOS version; it's 0x1CD on this one. I wrote some scripts that pull the offset out of your own BIOS image and handle the UEFI shell part: https://github.com/toverux/dell-tcc-unlock