Skip to content
Morgan Touverey Quilling edited this page Sep 18, 2026 · 1 revision

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

Clone this wiki locally