k8temp - AMD K8 thermal diode reader ==================================== Synopsis -------- k8temp displays readings from the on-die thermal diodes found in most AMD K8 processors, including Athlon 64's and Opterons. ======= WARNING ======= Since this pokes at PCI registers, it has the potential to make your system crash, reboot, catch fire, and frame you for conspiracy to murder heads of state. k8temp has caused at least one of these things to happen during development. Installation ------------ If you're on FreeBSD, consider using the port at sysutils/k8temp. Otherwise, just: make make install The Makefile should detect any flags your OS needs. If you want to try it on a system without bsd.prog.mk: cc -o k8temp k8temp.c k8temp_devpci.c OpenBSD users (who have USER_PCI configured kernels) may want: cc -DWITHOUT_PCIOCGETCONF -o k8temp k8temp.c k8temp_devpci.c NetBSD users can try: cc -DWITH_LIBPCI -o k8temp k8temp.c k8temp_libpci.c But note this has only been build tested (on FreeBSD and NetBSD/Sparc...) DragonFlyBSD should Just Work(tm), since it has an identical /dev/pci API to FreeBSD. Let me know if you get it working on systems other than FreeBSD 6/amd64. Examples -------- -% sudo k8temp CPU 0 Core 0 Sensor 0: 35c CPU 0 Core 1 Sensor 0: 36c CPU 1 Core 0 Sensor 0: 33c CPU 1 Core 1 Sensor 0: 32c -% sudo k8temp -n 0:0:0 1:0:0 35 33 -% sudo k8temp -d CPUID: Vendor: AuthenticAMD, Id=0x20f12 Model=1 Family=15 Stepping=2 Advanced Power Management=0xf Temperature sensor: Yes Frequency ID control: Yes Voltage ID control: Yes THERMTRIP support: Yes HW Thermal control: No SW Thermal control: No 100MHz multipliers: No HW P-State control: No TSC Invariant: No Thermtrip=0x0d540524 (CurTmp=0x54 (35c) TjOffset=0x0d DiodeOffset=0x05 (6c)) CPU 0 Core 0 Sensor 0: 35c Thermtrip=0x0d560520 (CurTmp=0x56 (37c) TjOffset=0x0d DiodeOffset=0x05 (6c)) CPU 0 Core 1 Sensor 0: 37c Thermtrip=0x0f530224 (CurTmp=0x53 (34c) TjOffset=0x0f DiodeOffset=0x02 (9c)) CPU 1 Core 0 Sensor 0: 34c Thermtrip=0x0f520220 (CurTmp=0x52 (33c) TjOffset=0x0f DiodeOffset=0x02 (9c)) CPU 1 Core 1 Sensor 0: 33c Yes, some AMD64's allegedly have two sensors per core. References ---------- BIOS and Kernel Developer's Guide for AMD NPT Family 0fh Processors. Section 4.6.23, Thermtrip Status Register. http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/32559.pdf (Upcoming, hopefully) BIOS and Kernel Developer's Guide (BKDG) For AMD Family 10h Processors Section 3.6.F3xA4, Reported Temperature Control Register. http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/31116.pdf AMD CPUID Specification, revision 2.26. http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/25481.pdf Linux kernel, drivers/hwmon/k8temp.c Blame ----- k8temp was written by Thomas Hurst WWW: http://hur.st/k8temp/