svn commit: r197102 - head/sys/dev/amdtemp

Jung-uk Kim jkim at FreeBSD.org
Mon Sep 14 16:29:36 UTC 2009


On Sunday 13 September 2009 12:12 pm, Kris Kennaway wrote:
> Jung-uk Kim wrote:
> > Author: jkim
> > Date: Fri Sep 11 21:47:44 2009
> > New Revision: 197102
> > URL: http://svn.freebsd.org/changeset/base/197102
> >
> > Log:
> >   Improve amdtemp(4) significantly:
> >
> >   - Improve newer AMD processor support (Family 0Fh Revision F
> > and later). - Adjust offset if DiodeOffet is set and valid.  Note
> > it is experimental but it seems to give us more realistic
> > temperatures.  Newer Linux driver blindly adds 21C for Family 0Fh
> > desktop processors, however. - Always populate dev.cpu and
> > dev.amdtemp sysctl trees regardless of probe order for
> > consistency.  Previously, dev.cpu.N.temperature was not populated
> > if amdtemp was loaded later than ACPI CPU driver and temperatures
> > were not accessible from dev.amdtemp.N.sensor0 tree for Family
> > 10h/11h processors. - Read the CPUID from PCI register instead of
> > CPUID instruction to prevent possible revision mismatches on
> > multi-socket system.
> >   - Change macros and variables to make them closer to AMD
> > documents. - Fix style(9) nits and improve comments.
>
> It no longer appears to work for me.  The old version reported:
>
> dev.amdtemp.0.%desc: AMD K8 Thermal Sensors
> dev.amdtemp.0.%driver: amdtemp
> dev.amdtemp.0.%parent: hostb9
> dev.amdtemp.0.sensor0.core0: 38.0C
> dev.amdtemp.0.sensor0.core1: 45.0C
> dev.amdtemp.0.sensor1.core0: 38.0C
> dev.amdtemp.0.sensor1.core1: 45.0C
> dev.cpu.0.temperature: 38.0C
> dev.cpu.1.temperature: 38.0C
>
> but none of those sysctl nodes are now present.
>
> CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 4600+ (2400.10-MHz
> K8-class CPU)
>    Origin = "AuthenticAMD"  Id = 0x20f32  Stepping = 2
>
> Features=0x178bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTR
>R,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2,HTT>
> Features2=0x1<SSE3>
>    AMD Features=0xe2500800<SYSCALL,NX,MMX+,FFXSR,LM,3DNow!+,3DNow!>
>    AMD Features2=0x3<LAHF,CMP>
> ACPI APIC Table: <A M I  OEMAPIC >

Arg...  This is a Socket 939, Revision E processor and Revision C/D/E 
seems to have different DiodeOffset encoding.  Please try the 
attached patch until I fix it properly.

Sorry for the inconvenience.

Jung-uk Kim
-------------- next part --------------
--- sys/dev/amdtemp/amdtemp.c
+++ sys/dev/amdtemp/amdtemp.c
@@ -185,13 +185,6 @@ amdtemp_probe(device_t dev)
 		break;
 	case 0x10:
 	case 0x11:
-		/*
-		 * DiodeOffset must be non-zero if thermal diode is supported.
-		 */
-		temp = pci_read_config(dev, AMDTEMP_THERMTP_STAT, 4);
-		temp = (temp >> 8) & 0x7f;
-		if (temp == 0)
-			return (ENXIO);
 		break;
 	default:
 		return (ENXIO);


More information about the svn-src-all mailing list