Michał Żygowski has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/39697 )
Change subject: nb/amd/agesa/family14/acpi/thermal_mixin.asl: handle HTC threshold better ......................................................................
nb/amd/agesa/family14/acpi/thermal_mixin.asl: handle HTC threshold better
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.
Signed-off-by: Michał Żygowski michal.zygowski@3mdeb.com Change-Id: Ife64c3aab76f8e125493ecc8183a6e87fb012e3b --- M src/northbridge/amd/agesa/family14/acpi/thermal_mixin.asl 1 file changed, 12 insertions(+), 3 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/97/39697/1
diff --git a/src/northbridge/amd/agesa/family14/acpi/thermal_mixin.asl b/src/northbridge/amd/agesa/family14/acpi/thermal_mixin.asl index 1f877cc..714fb45 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,12 @@ 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) { Multiply (TLMT, 10, Local0) ShiftRight (Local0, 1, Local0) Add (Local0, K10TEMP_TLIMIT_OFFSET, Local0) @@ -79,6 +84,10 @@ }
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)) } }