From owner-freebsd-current@FreeBSD.ORG Wed May 5 06:43:19 2010 Return-Path: Delivered-To: current@FreeBSD.org Received: from hub.freebsd.org (localhost [127.0.0.1]) by hub.freebsd.org (Postfix) with SMTP id A61CA1065672; Wed, 5 May 2010 06:43:18 +0000 (UTC) (envelope-from nork@FreeBSD.org) Date: Wed, 5 May 2010 15:43:12 +0900 From: Norikatsu Shigemura To: jkim@FreeBSD.org Message-Id: <20100505154312.49e7a2cc.nork@FreeBSD.org> X-Mailer: Sylpheed 3.0.0 (GTK+ 2.18.7; i386-portbld-freebsd8.0) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: nork@FreeBSD.org, current@FreeBSD.org Subject: amdtemp(4) issue X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 May 2010 06:43:19 -0000 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 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? -- Norikatsu Shigemura