summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Żygowski <michal.zygowski@3mdeb.com>2020-03-20 12:07:45 +0100
committerMichał Żygowski <michal.zygowski@3mdeb.com>2020-03-23 13:31:17 +0000
commitece6b2fc8a7f22716d47ae4f26742d54d0b655c9 (patch)
tree86223bc36d5781d45df9b4bc3e3f82d0a9eef311
parent143309fad45e01c623036c981d568cfb3bd5662f (diff)
nb/amd/agesa/family14: Improve HTC threshold handling
According to BKDGs HTC temperature limit field indicates the threshold where HTC becomes active. HTC active state means that processor is limiting its power consumption and maximum P-State. Using this threshold as _CRT is incorrect, since HTC active is designed to prevent overheating, not causing immediate shutdown. Change the behavior of temperature limit to act as a passive cooling threshold. Make the passive cooling threshold a reference value for critical and hot temperature with 5 degrees step. TEST=boot FreeBSD on PC Engines apu2 and check the thermal zone temperature using sysctl Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com> Change-Id: Ife64c3aab76f8e125493ecc8183a6e87fb012e3b Reviewed-on: https://review.coreboot.org/c/coreboot/+/39697 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
-rw-r--r--src/northbridge/amd/agesa/family14/acpi/thermal_mixin.asl14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/northbridge/amd/agesa/family14/acpi/thermal_mixin.asl b/src/northbridge/amd/agesa/family14/acpi/thermal_mixin.asl
index 1f877ccc6e..3c692ce859 100644
--- a/src/northbridge/amd/agesa/family14/acpi/thermal_mixin.asl
+++ b/src/northbridge/amd/agesa/family14/acpi/thermal_mixin.asl
@@ -35,7 +35,7 @@
*/
#ifndef K10TEMP_HOT_OFFSET
-# define K10TEMP_HOT_OFFSET 100
+# define K10TEMP_HOT_OFFSET 50
#endif
#define K10TEMP_KELVIN_OFFSET 2732
@@ -71,7 +71,11 @@ ThermalZone (TZ00) {
Return (Add (Local0, K10TEMP_KELVIN_OFFSET))
}
- Method (_CRT) { /* Critical temp in tenths degree Kelvin. */
+ /*
+ * TLMT indicates threshold where HTC become active. That is the processor will limit
+ * P-State and power consumption in order to cool down.
+ */
+ Method (_PSV) { /* Passive temp in tenths degree Kelvin. */
Multiply (TLMT, 10, Local0)
ShiftRight (Local0, 1, Local0)
Add (Local0, K10TEMP_TLIMIT_OFFSET, Local0)
@@ -79,6 +83,10 @@ ThermalZone (TZ00) {
}
Method (_HOT) { /* Hot temp in tenths degree Kelvin. */
- Return (Subtract (_CRT, K10TEMP_HOT_OFFSET))
+ Return (Add (_PSV, K10TEMP_HOT_OFFSET))
+ }
+
+ Method (_CRT) { /* Critical temp in tenths degree Kelvin. */
+ Return (Add (_HOT, K10TEMP_HOT_OFFSET))
}
}