Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 06 Jan 2019 19:18:14 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 234657] AMD Opteron X3000 series CPU temperature sensor support
Message-ID:  <bug-234657-227-lHBVVNrUaF@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-234657-227@https.bugs.freebsd.org/bugzilla/>
References:  <bug-234657-227@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D234657

Conrad Meyer <cem@freebsd.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|Open                        |In Progress
            Version|11.2-STABLE                 |CURRENT
           Assignee|bugs@FreeBSD.org            |cem@freebsd.org
                 CC|cem@freebsd.org             |

--- Comment #1 from Conrad Meyer <cem@freebsd.org> ---
I think I understand where the device=3D0x1573 guess is coming from.  Famil=
y 15h
Model 60h BKDG documents 0x1573 as the deviceid for PCI D18F3.  On the earl=
ier
Model *00h*, which we currently support, the PCI D18F3 device register 0xa4=
 is
the Reported Temperature.

However, on Model *60h*, Reported Temperature lives in a different register,
"D0F0xBC_xD820_0CA4" (page 238 of the relevant BKDG below).  So I suspect
0x1573 is wrong.

https://www.amd.com/system/files/TechDocs/50742_15h_Models_60h-6Fh_BKDG.pdf

D0F0 (PCI Root complex) on 60h has the vendor:device id 0x1022:0x1576.

It seems like Family 15h Model 60h also requires indirect SMU / SMN access =
(p.
233), like on Family 17h:

> D0F0xB8 SMU Index Address
> The index/data pair registers, D0F0xB8 and D0F0xBC, are used to access th=
e registers at
> D0F0xBC_x[FFFF_FFFF:0000_0000]. To access any of these registers, the add=
ress is first written into the
> index register, D0F0xB8, and then the data is read from or written to the=
 data register, D0F0xBC.

0xB8 is the 32-bit register NbSmuIndAddr.
0xBC is the 32-bit register NbSmuIndData.

So we must indirectly access the index "0xD820_0CA4" to read the temperatur=
e on
15h, model 60h.

I'm going to do a quick spot check of other 15h BKDGs to see what other mod=
els
specify.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-234657-227-lHBVVNrUaF>