aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/amdtemp
Commit message (Collapse)AuthorAgeFilesLines
* amdtemp(4): Add missing Family 17h modelsConrad Meyer2021-03-041-3/+4
| | | | | | | | | Add missing model numbers M20h (Dali, Zen1), M60H (Renoir, Zen2), and M90H (Van Gogh, Zen2). Submitted by: Greg V <greg AT unrelenting.technology> (cherry picked from commit b499ab877f3d6bf5e2c894edfcfdcf89ce7c79d3)
* amdsmn(4), amdtemp(4): add support for Family 19h (Zen 3)Conrad Meyer2021-03-041-18/+51
| | | | | | | | | | | | Zen 3 "Vermeer" support, tested on Ryzen 9 5950X. Model numbers from https://en.wikichip.org/wiki/amd/cpuid "Extended Model" column. Submitted by: Greg V <greg AT unrelenting.technology> Differential Revision: https://reviews.freebsd.org/D27552 (cherry picked from commit ea6189d3a470ce9ffb19335f915eab6af0cfef57)
* amdtemp(4), amdsmn(4): Attach to Ryzen 4000 APU (Zen 2, "Renoir")Conrad Meyer2021-03-041-0/+2
| | | | | | | | PR: 249864 Reported by: Florian Millet <florian.millet AT laposte.net> Tested by: Florian Millet (cherry picked from commit 5b505170794dfaae633294aaf178bd797b7a1b11)
* amdtemp(4): Remove dead code that snuck in with r357190Conrad Meyer2021-03-041-5/+0
| | | | | | I intended to remove this before committing, but neglected to. (cherry picked from commit cc3b01385bfd7e7f67866c4ac0a1b43370d7e6b7)
* amdtemp(4): Add support for Family 17h CCD sensorsConrad Meyer2021-03-041-9/+93
| | | | | | | | | Probe Family 17h CPUs for up to 4 (Zen, Zen+) or 8 (Zen2) CCD temperature sensors. These were discovered by Ondrej Čerman (https://github.com/ocerman) and collaborators experimentally, and are not currently documented in any datasheet I have access to. (cherry picked from commit c59b9a4f8d2c7a34782a3885f1c76fb1decea174)
* amdtemp(4): Refactor shared temperature calculation logicConrad Meyer2021-03-041-15/+30
| | | | | | No functional change intended. (cherry picked from commit 02f700029357ddf31b538bbb5a23785d4ca4c7a8)
* MFC r350624 (by cem):Alexander Motin2019-12-091-0/+2
| | | | | | | | | amdtemp(4), amdsmn(4): Attach to Ryzen 3 (Zen 2) hostbridges PR: 239607 Notes: svn path=/stable/12/; revision=355561
* MFC r342977 (by cem): amdtemp(4): Add support for Family 15h, Model >=60hAlexander Motin2019-01-221-42/+137
| | | | | | | | | | | | | | | | | | | | | | | | | Family 15h is a bit of an oddball. Early models used the same temperature register and spec (mostly[1]) as earlier CPU families. Model 60h-6Fh and 70-7Fh use something more like Family 17h's Service Management Network, communicating with it in a similar fashion. To support them, add support for their version of SMU indirection to amdsmn(4) and use it in amdtemp(4) on these models. While here, clarify some of the deviceid macros in amdtemp(4) that were added with arbitrary, incorrect family numbers, and remove ones that were not used. Additionally, clarify intent and condition of heterogenous multi-socket system detection. [1]: 15h adds the "adjust range by -49°C if a certain condition is met," which previous families did not have. Reported by: D. C. <tjoard AT gmail.com> PR: 234657 Tested by: D. C. <tjoard AT gmail.com> Notes: svn path=/stable/12/; revision=343322
* MFC r340426 (by cem)Eric van Gyzen2018-11-141-4/+13
| | | | | | | | | | | | | | | | | | | | amdtemp(4): Fix temperature reporting on AMD 2990WX Update the AMD family 17h temperature reporting based on AMD Tech Doc 56255 OSRR, section 4.2.1. For CPUS w/CUR_TEMP_RANGE_SEL set, scale the reported temperature into the range -49..206; i.e., subtract 49°C. Submitted by: gallatin@ Reported by: bcran@ Reviewed by: cem (long ago) Approved by: re (kib) Relnotes: yes Differential Revision: https://reviews.freebsd.org/D16855 Notes: svn path=/stable/12/; revision=340447
* MFC r340425 (by cem)Eric van Gyzen2018-11-141-2/+6
| | | | | | | | | | | | | | | | | | | amdsmn(4)/amdtemp(4): Attach to Ryzen 2 hostbridges As reported, tested, and patch supplied by Johannes. There may be future work to do to support multiple sensors, but for now, any sensor at all is a strict improvement for Ryzen 2 systems. PR: 228480 Submitted by: Johannes Lundberg <johalun0 AT gmail.com> (earlier version) Reported by: deischen@, Johannes, and numerous others Early MFC approved by: cem Approved by: re (kib) Relnotes: yes Notes: svn path=/stable/12/; revision=340446
* Reapply, with minor tweaks, r338025, from the original commit:Warner Losh2018-09-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove unused and easy to misuse PNP macro parameter Inspired by r338025, just remove the element size parameter to the MODULE_PNP_INFO macro entirely. The 'table' parameter is now required to have correct pointer (or array) type. Since all invocations of the macro already had this property and the emitted PNP data continues to include the element size, there is no functional change. Mostly done with the coccinelle 'spatch' tool: $ cat modpnpsize0.cocci @normaltables@ identifier b,c; expression a,d,e; declarer MODULE_PNP_INFO; @@ MODULE_PNP_INFO(a,b,c,d, -sizeof(d[0]), e); @singletons@ identifier b,c,d; expression a; declarer MODULE_PNP_INFO; @@ MODULE_PNP_INFO(a,b,c,&d, -sizeof(d), 1); $ rg -l MODULE_PNP_INFO -- sys | \ xargs spatch --in-place --sp-file modpnpsize0.cocci (Note that coccinelle invokes diff(1) via a PATH search and expects diff to tolerate the -B flag, which BSD diff does not. So I had to link gdiff into PATH as diff to use spatch.) Tinderbox'd (-DMAKE_JUST_KERNELS). Approved by: re (glen) Notes: svn path=/head/; revision=338948
* Back out r338035 until Warner is finished churning GSoC PNP patchesConrad Meyer2018-08-191-1/+1
| | | | | | | | | | I was not aware Warner was making or planning to make forward progress in this area and have since been informed of that. It's easy to apply/reapply when churn dies down. Notes: svn path=/head/; revision=338037
* Remove unused and easy to misuse PNP macro parameterConrad Meyer2018-08-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Inspired by r338025, just remove the element size parameter to the MODULE_PNP_INFO macro entirely. The 'table' parameter is now required to have correct pointer (or array) type. Since all invocations of the macro already had this property and the emitted PNP data continues to include the element size, there is no functional change. Mostly done with the coccinelle 'spatch' tool: $ cat modpnpsize0.cocci @normaltables@ identifier b,c; expression a,d,e; declarer MODULE_PNP_INFO; @@ MODULE_PNP_INFO(a,b,c,d, -sizeof(d[0]), e); @singletons@ identifier b,c,d; expression a; declarer MODULE_PNP_INFO; @@ MODULE_PNP_INFO(a,b,c,&d, -sizeof(d), 1); $ rg -l MODULE_PNP_INFO -- sys | \ xargs spatch --in-place --sp-file modpnpsize0.cocci (Note that coccinelle invokes diff(1) via a PATH search and expects diff to tolerate the -B flag, which BSD diff does not. So I had to link gdiff into PATH as diff to use spatch.) Tinderbox'd (-DMAKE_JUST_KERNELS). Notes: svn path=/head/; revision=338035
* sys/dev: further adoption of SPDX licensing ID tags.Pedro F. Giffuni2017-11-271-0/+2
| | | | | | | | | | | | | | | Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone - task. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts. Notes: svn path=/head/; revision=326255
* Add PNP metadata to a few driversConrad Meyer2017-09-141-2/+3
| | | | | | | | | | | | An eventual devd(8) or other component should be able to scan buses and automatically load drivers that match device ids described in this metadata. Reviewed by: imp Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D12364 Notes: svn path=/head/; revision=323586
* amdtemp(4): Do not probe not matching hostbridgesConrad Meyer2017-09-051-0/+2
| | | | | | | | | | | Some systems have hostbs that do not match our PCI device id criteria. Detect and ignore these devices in probe. PR: 218264 Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=323195
* amdtemp(4): Add support for Family 17h temperature sensorConrad Meyer2017-09-051-2/+42
| | | | | | | | | | | | | | | | The sensor value is formatted similarly to previous models (same bitfield sizes, same units), but must be read off of the internal System Management Network (SMN) from the System Management Unit (SMU) co-processor. PR: 218264 Reported and tested by: Nils Beyer <nbe AT renzel.net> Reviewed by: avg (no +1), mjoras, truckman Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D12217 Notes: svn path=/head/; revision=323185
* Fix the deciKelvin to Celsius conversion in kernel.Luiz Otavio O Souza2016-05-221-1/+1
| | | | | | | | | | | | | | After r285994, sysctl(8) was fixed to use 273.15 instead of 273.20 as 0C reference and as result, the temperature read in sysctl(8) now exibits a +0.1C difference. This commit fix the kernel references to match the reference value used in sysctl(8) after r285994. Sponsored by: Rubicon Communications (Netgate) Notes: svn path=/head/; revision=300421
* Add PCI ID for family 10h model 30h to amdtemp(4).Luiz Otavio O Souza2016-04-191-0/+2
| | | | | | | | | | This adds support to CPU found in PC Engines APU2 series. MFC after: 3 weeks Sponsored by: Rubicon Communications (Netgate) Notes: svn path=/head/; revision=298270
* Add one more AMD Kaveri APU device ID.Christian Brueffer2014-10-131-0/+2
| | | | | | | | Submitted by: Remy Nonnenmacher <remy.nonnenmacher@activnetworks.com> MFC after: 1 week Notes: svn path=/head/; revision=273034
* Add support for AMD Family 16h (Kabini) sensor devices.Christian Brueffer2014-03-141-0/+4
| | | | | | | | | PR: 186587 Submitted by: David Rufino <david.rufino at gmail.com> MFC after: 2 weeks Notes: svn path=/head/; revision=263169
* Add support for my:John-Mark Gurney2013-08-261-0/+2
| | | | | | | CPU: AMD A10-5700 APU with Radeon(tm) HD Graphics (3393.89-MHz K8-class CPU) Notes: svn path=/head/; revision=254924
* Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on ↵Sofian Brabez2013-01-301-1/+1
| | | | | | | | | | device_method_t arrays Reviewed by: cognet Approved by: cognet Notes: svn path=/head/; revision=246128
* This isn't functionally identical. In some cases a hint to disableEitan Adler2012-10-221-0/+3
| | | | | | | | | | | unit 0 would in fact disable all units. This reverts r241856 Approved by: cperciva (implicit) Notes: svn path=/head/; revision=241885
* Now that device disabling is generic, remove extraneous code from theEitan Adler2012-10-221-3/+0
| | | | | | | | | | | device drivers that used to provide this feature. Reviewed by: des Approved by: cperciva MFC after: 1 week Notes: svn path=/head/; revision=241856
* - Add support for Family 12h, 14h and 15h processors.Jung-uk Kim2012-02-241-109/+146
| | | | | | | | | | | | | | | | | - Remove all attempts to guess physical temperature using DiodeOffset. There are too many reports that it varies wildly depending on motherboard. Instead, if it is known to scale well and its offset is known from other temperature sensors on board, the user may set "dev.amdtemp.0.sensor_offset" tunable to compensate the difference. Document the caveats in amdtemp(4). - Add a quirk for Socket AM2 Revision G processors. These processors are known to have a different offset according to Linux k8temp driver. - Warn about Family 10h Erratum 319. These processors have broken sensors. - Report temperature in more logical orders under dev.amdtemp node. For example, "dev.amdtemp.0.sensor0.core0" is now "dev.amdtemp.0.core0.sensor0". - Replace K8, K10 and K11 with official processor names in amdtemp(4). Notes: svn path=/head/; revision=232090
* Restore (undocumented) support for early revisions and add more comments.Jung-uk Kim2009-09-141-43/+77
| | | | | | | Reported by: kris Notes: svn path=/head/; revision=197205
* Fix typos in comments from the previous commit.Jung-uk Kim2009-09-111-2/+2
| | | | Notes: svn path=/head/; revision=197103
* Improve amdtemp(4) significantly:Jung-uk Kim2009-09-111-125/+226
| | | | | | | | | | | | | | | | | | - 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. Notes: svn path=/head/; revision=197102
* Temporarily revert the new-bus locking for 8.0 release. It will beJohn Baldwin2009-08-201-2/+0
| | | | | | | | | reintroduced after HEAD is reopened for commits by re@. Approved by: re (kib), attilio Notes: svn path=/head/; revision=196403
* Make the newbus subsystem Giant free by adding the new newbus sxlock.Attilio Rao2009-08-021-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The newbus lock is responsible for protecting newbus internIal structures, device states and devclass flags. It is necessary to hold it when all such datas are accessed. For the other operations, softc locking should ensure enough protection to avoid races. Newbus lock is automatically held when virtual operations on the device and bus are invoked when loading the driver or when the suspend/resume take place. For other 'spourious' operations trying to access/modify the newbus topology, newbus lock needs to be automatically acquired and dropped. For the moment Giant is also acquired in some key point (modules subsystem) in order to avoid problems before the 8.0 release as module handlers could make assumptions about it. This Giant locking should go just after the release happens. Please keep in mind that the public interface can be expanded in order to provide more support, if there are really necessities at some point and also some bugs could arise as long as the patch needs a bit of further testing. Bump __FreeBSD_version in order to reflect the newbus lock introduction. Reviewed by: ed, hps, jhb, imp, mav, scottl No answer by: ariff, thompsa, yongari Tested by: pho, G. Trematerra <giovanni dot trematerra at gmail dot com>, Brandon Gooch <jamesbrandongooch at gmail dot com> Sponsored by: Yahoo! Incorporated Approved by: re (ksmith) Notes: svn path=/head/; revision=196037
* Fix comment explaining where this driver came from.Rui Paulo2009-03-131-1/+1
| | | | | | | MFC after: 2 weeks Notes: svn path=/head/; revision=189774
* Rename all the variables/function names/structs/etc. to reflect theRui Paulo2009-03-131-86/+121
| | | | | | | | | | driver name change. While there, update copyright. MFC after: 2 weeks Notes: svn path=/head/; revision=189769
* Rename the k8temp driver to amdtemp.Rui Paulo2009-03-131-0/+342
MFC after: 2 weeks Notes: svn path=/head/; revision=189768