summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Diedrich <ranma+coreboot@tdiedrich.de>2015-06-21 18:15:40 +0200
committerJonathan A. Kollasch <jakllsch@kollasch.net>2015-07-14 04:31:53 +0200
commitd5e6618a4f076610e683b174c4dd5108d960c785 (patch)
tree03ffbea907dc7a85be8d46ab2a116bc287602c56
parent6cb3a59fd5e754c3627b79db21c5bcc284bfd721 (diff)
amd/fam10: Add k10temp ACPI thermal zone mixin.
This ACPI thermal zone is applicable to AMD family 10 to 14 (and some 15) CPUs. It should not be used on boards for which errata 319 (The thermal sensor of Socket F/AM2+ processors may be unreliable) is applicable. AM3 and later should be fine. Derived from src/northbridge/amd/amdk8/thermal_mixin.asl Change-Id: Id036cbf4cd717c3320a720edc452945df2b5e072 Signed-off-by: <ranma+coreboot@tdiedrich.de> Reviewed-on: http://review.coreboot.org/10617 Tested-by: build bot (Jenkins) Reviewed-by: Timothy Pearson <tpearson@raptorengineeringinc.com>
-rw-r--r--src/northbridge/amd/amdfam10/thermal_mixin.asl89
1 files changed, 89 insertions, 0 deletions
diff --git a/src/northbridge/amd/amdfam10/thermal_mixin.asl b/src/northbridge/amd/amdfam10/thermal_mixin.asl
new file mode 100644
index 0000000000..3bd7e40472
--- /dev/null
+++ b/src/northbridge/amd/amdfam10/thermal_mixin.asl
@@ -0,0 +1,89 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc.
+ */
+
+/*
+ * Include this file into a mainboard DSDT inside the PCI device
+ * "Northbridge Miscellaneous Control (Northbridge function 3)" and it
+ * will expose the temperature sensor of the processor as a thermal
+ * zone.
+ *
+ * Families 10 through 14 and some family 15 CPUs are supported.
+ *
+ * If, for example, the NB Misc. Control device is on 0:18.3, include
+ * the following:
+ *
+ * Scope (\_SB.PCI0) {
+ * Device (K10M) {
+ * Name (_ADR, 0x00180003)
+ * #include <northbridge/amd/amdfam10/thermal_mixin.asl>
+ * }
+ * }
+ *
+ * Do not include this if the board is affected by erratum 319 as the
+ * thermal sensor of Socket F/AM2+ processors may be unreliable.
+ * (Erratum 319 affects AM2+ boards, AM3 and later should be fine)
+ */
+
+#ifndef K10TEMP_HOT_OFFSET
+# define K10TEMP_HOT_OFFSET 100
+#endif
+
+#define K10TEMP_KELVIN_OFFSET 2732
+#define K10TEMP_TLIMIT_OFFSET 520
+
+OperationRegion (TCFG, PCI_Config, 0x64, 0x4)
+Field (TCFG, ByteAcc, NoLock, Preserve) {
+ HTCE, 1, /* Hardware thermal control enable */
+ , 15,
+ TLMT, 7, /* (LimitTmp - 52) / 0.5 */
+ , 9,
+}
+
+OperationRegion (TCTL, PCI_Config, 0xa4, 0x4)
+Field (TCTL, ByteAcc, NoLock, Preserve) {
+ , 21,
+ TNOW, 11, /* CurTmp / 0.125 */
+}
+
+ThermalZone (TZ00) {
+ Name (_HID, EisaId ("PNP0C11"))
+ Name (_STR, Unicode ("AMD CPU Core Thermal Sensor"))
+
+ Method (_STA) {
+ If (LEqual (HTCE, One)) {
+ Return (0x0F)
+ }
+ Return (Zero)
+ }
+
+ Method (_TMP) { /* Current temp in tenths degree Kelvin. */
+ Multiply (TNOW, 10, Local0)
+ ShiftRight (Local0, 3, Local0)
+ Return (Add (Local0, K10TEMP_KELVIN_OFFSET))
+ }
+
+ Method (_CRT) { /* Critical temp in tenths degree Kelvin. */
+ Multiply (TLMT, 10, Local0)
+ ShiftRight (Local0, 1, Local0)
+ Add (Local0, K10TEMP_TLIMIT_OFFSET, Local0)
+ Return (Add (Local0, K10TEMP_KELVIN_OFFSET))
+ }
+
+ Method (_HOT) { /* Hot temp in tenths degree Kelvin. */
+ Return (Subtract (_CRT, K10TEMP_HOT_OFFSET))
+ }
+}