On Wednesday 05 May 2010 02:43 am, Norikatsu Shigemura wrote:
> Hi jkim.
>
>       I can't get CPU temperature via amdtemp(4).  So I researched, but
>       I can't fix this issue, maybe initialization problem.  Please help
>       me!
>
>       1st issue in amdtemp_gettemp function:
>               now:            offset += (diode_offset - 11) * 10;     is BAD
>               should fix:     offset += (11 - diode_offset) * 10;     is OK
>       According to AMD's BIOS and Kernel Developer's Guid (BKDG) For
>       AMD Family 10th Processors, Rev 3.48 - April 22, 2010 [*],
>       P327 - F3xE4 Thermtrip Status Register:
>
> 01h to 3Fh: correction = +11C - DiodeOffset, or {01h to 3Fh} =
> {+10C to -52C}.
>
>       In fact, in my environment, DiodeOffset = 0x18 so 11-0x18=-13C.
>
> 11 - 0x01 = +10C
> 11 - 0x18 = -13C
> 11 - 0x3f = -52C
>
> [*] http://support.amd.com/us/Processor_TechDocs/31116.pdf

AMD keeps flipping the sign from core to core. :-( Please see 
AMDTEMP_FLAG_DO_SIGN for Family 0Fh, for example.  In fact, Linux 
driver (k10temp) does not care about the DiodeOffset at all.  
Instead, they just say "input" temperature.

>       2nd issue, result of AMDTEMP_REPTMP_CTRL in amdtemp_gettemp
> function: I got following result:
>
> May  5 15:06:53 nadesico kernel: amdtemp0:
> AMDTEMP_REPTMP_CTRL(temp) = 0xc1880
>
>       So result (CurTmp: current temperature: 31:21) = 0C. (logic is OK)
>
>       I got following thermal related registers in amdtemp_gettemp
> function: May  5 15:06:53 nadesico kernel: amdtemp0: F3x64 Hardware
> Thermal Control(HTC) Register = 0x3a4c0005 May  5 15:06:53 nadesico
> kernel: amdtemp0: F3x68 Software Thermal Control(STC) Register =
> 0x10000000 May  5 15:06:53 nadesico kernel: amdtemp0: F3xA4
> Reported Temperature Control Register  = 0x000c1880 May  5 15:06:53
> nadesico kernel: amdtemp0: F3xE4 Thermtrip Status Register         
>     = 0x1cc01830 May  5 15:06:53 nadesico kernel: amdtemp0: F3xE8
> Northbridge Capabilities Register      = 0x0207df19
>
>       But I don't have any idea to fix register's paraemters.  Do you
>       have any idea?

Sorry, I don't.  You may find Linux k10temp driver 
(drivers/hwmon/k10temp.c) useful, though.

Jung-uk Kim
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to