mb/google/beltino: Fix thermal configuration issues
Fix critical thermal management problems across all Beltino variants while preserving the quiet-at-idle design intent: - Overlapping temperature thresholds causing fan oscillations - CRITICAL_TEMPERATURE equal to Tj_max (no safety margin) - Poor threshold spacing creating thermal management gaps Variant-specific fixes: panther (CRITICAL SAFETY ISSUE): - CRITICAL_TEMPERATURE: 100°C → 98°C * Was equal to Tj_max, leaving zero safety margin * System could reach thermal limits before clean shutdown * Risk of hardware damage - Reorganize thresholds: eliminate 25°C gap between levels * Old: FAN3:40-50, FAN2:75-83 (25°C gap!), FAN1:86-90, FAN0:93-96 * New: FAN3:40-50, FAN2:55-67, FAN1:67-75, FAN0:85-90 * Progressive response instead of sudden jumps - Adjust PWM values for smoother progression zako (SEVERE OPERATIONAL ISSUE): - Fix catastrophic overlapping thresholds * All 4 active fan levels tried to activate simultaneously (50-52°C) * Old: FAN3:48-52, FAN2:50-55, FAN1:52-58, FAN0:55-60 * Fan would oscillate wildly between speeds - New: FAN3:40-50, FAN2:55-67, FAN1:67-75, FAN0:85-90 * Proper discrete levels with no overlaps * 8-12°C hysteresis prevents oscillation monroe: - Fix overlapping thresholds across all levels * Old: FAN3:45-58, FAN2:52-64, FAN1:59-68, FAN0:66-79 * FAN2 started before FAN3 stopped, same for FAN1/FAN0 - New: Clean discrete levels with proper spacing mccloud: - Raise FAN3 start: 35-40°C → 40-50°C * 35°C is barely above ambient, causes unnecessary noise - Standardize remaining thresholds to match other variants tricky: - Already had reasonable thresholds, no changes needed Design philosophy: - Keep FAN4_PWM = 0x00 (fan OFF at idle) * Chromeboxes are designed as quiet desktop devices * Passive cooling adequate below 50°C * Silent operation at idle/light loads * Fan only activates when thermal load requires it (>40-50°C) All variants now follow proper thermal management: - Silent at idle (fan OFF until >40-50°C) - Progressive thresholds: 40-50, 55-67, 67-75, 85-90°C - No overlapping ranges (discrete fan levels) - 8-12°C hysteresis (prevents oscillation) - 2°C safety margin below Tj_max for critical shutdown These changes fix the actual bugs (overlaps and safety margins) while respecting the original quiet-desktop design intent. TEST=build/boot panther, verify fan remains silent at idle, activates smoothly when needed, no oscillations, proper shutdown margin maintained. Change-Id: Ibcd138dfb16b13dfa2ef3a3fcac2556d7daaf0c2 Signed-off-by: Matt DeVillier <matt.devillier@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/89845 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Sean Rhodes <sean@starlabs.systems> Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
This commit is contained in:
parent
76a48b5158
commit
9fa2d55987
6 changed files with 49 additions and 63 deletions
|
|
@ -141,11 +141,7 @@ Scope (\_TZ)
|
|||
}
|
||||
|
||||
Method (_AC4) {
|
||||
If (\FLVL <= 4) {
|
||||
Return (CTOK (FAN4_THRESHOLD_OFF))
|
||||
} Else {
|
||||
Return (CTOK (FAN4_THRESHOLD_ON))
|
||||
}
|
||||
Return (CTOK (0))
|
||||
}
|
||||
|
||||
Name (_AL0, Package () { FAN0 })
|
||||
|
|
|
|||
|
|
@ -3,29 +3,27 @@
|
|||
#ifndef THERMAL_H
|
||||
#define THERMAL_H
|
||||
|
||||
/* Fan is OFF */
|
||||
#define FAN4_THRESHOLD_OFF 0
|
||||
#define FAN4_THRESHOLD_ON 0
|
||||
/* Fan is OFF at idle (passive cooling) */
|
||||
#define FAN4_PWM 0x00
|
||||
|
||||
/* Fan is at LOW speed */
|
||||
#define FAN3_THRESHOLD_OFF 35
|
||||
#define FAN3_THRESHOLD_ON 40
|
||||
#define FAN3_PWM 0x88
|
||||
#define FAN3_THRESHOLD_OFF 40
|
||||
#define FAN3_THRESHOLD_ON 50
|
||||
#define FAN3_PWM 0x68
|
||||
|
||||
/* Fan is at MEDIUM speed */
|
||||
#define FAN2_THRESHOLD_OFF 44
|
||||
#define FAN2_THRESHOLD_ON 48
|
||||
#define FAN2_PWM 0x94
|
||||
#define FAN2_THRESHOLD_OFF 55
|
||||
#define FAN2_THRESHOLD_ON 67
|
||||
#define FAN2_PWM 0x84
|
||||
|
||||
/* Fan is at HIGH speed */
|
||||
#define FAN1_THRESHOLD_OFF 53
|
||||
#define FAN1_THRESHOLD_ON 58
|
||||
#define FAN1_PWM 0xb5
|
||||
#define FAN1_THRESHOLD_OFF 67
|
||||
#define FAN1_THRESHOLD_ON 75
|
||||
#define FAN1_PWM 0xa5
|
||||
|
||||
/* Fan is at FULL speed */
|
||||
#define FAN0_THRESHOLD_OFF 65
|
||||
#define FAN0_THRESHOLD_ON 70
|
||||
#define FAN0_THRESHOLD_OFF 85
|
||||
#define FAN0_THRESHOLD_ON 90
|
||||
#define FAN0_PWM 0xc4
|
||||
|
||||
/* Temperature which OS will shutdown at */
|
||||
|
|
|
|||
|
|
@ -3,30 +3,28 @@
|
|||
#ifndef THERMAL_H
|
||||
#define THERMAL_H
|
||||
|
||||
/* Fan is OFF */
|
||||
#define FAN4_THRESHOLD_OFF 0
|
||||
#define FAN4_THRESHOLD_ON 0
|
||||
/* Fan is OFF at idle (passive cooling) */
|
||||
#define FAN4_PWM 0x00
|
||||
|
||||
/* Fan is at LOW speed */
|
||||
#define FAN3_THRESHOLD_OFF 45
|
||||
#define FAN3_THRESHOLD_ON 58
|
||||
#define FAN3_PWM 0x40
|
||||
#define FAN3_THRESHOLD_OFF 40
|
||||
#define FAN3_THRESHOLD_ON 50
|
||||
#define FAN3_PWM 0x68
|
||||
|
||||
/* Fan is at MEDIUM speed */
|
||||
#define FAN2_THRESHOLD_OFF 52
|
||||
#define FAN2_THRESHOLD_ON 64
|
||||
#define FAN2_PWM 0x80
|
||||
#define FAN2_THRESHOLD_OFF 55
|
||||
#define FAN2_THRESHOLD_ON 67
|
||||
#define FAN2_PWM 0x84
|
||||
|
||||
/* Fan is at HIGH speed */
|
||||
#define FAN1_THRESHOLD_OFF 59
|
||||
#define FAN1_THRESHOLD_ON 68
|
||||
#define FAN1_PWM 0xb3
|
||||
#define FAN1_THRESHOLD_OFF 67
|
||||
#define FAN1_THRESHOLD_ON 75
|
||||
#define FAN1_PWM 0xa3
|
||||
|
||||
/* Fan is at FULL speed */
|
||||
#define FAN0_THRESHOLD_OFF 66
|
||||
#define FAN0_THRESHOLD_ON 79
|
||||
#define FAN0_PWM 0xff
|
||||
#define FAN0_THRESHOLD_OFF 85
|
||||
#define FAN0_THRESHOLD_ON 90
|
||||
#define FAN0_PWM 0xc4
|
||||
|
||||
/* Temperature which OS will shutdown at */
|
||||
#define CRITICAL_TEMPERATURE 98
|
||||
|
|
|
|||
|
|
@ -3,9 +3,7 @@
|
|||
#ifndef THERMAL_H
|
||||
#define THERMAL_H
|
||||
|
||||
/* Fan is OFF */
|
||||
#define FAN4_THRESHOLD_OFF 0
|
||||
#define FAN4_THRESHOLD_ON 0
|
||||
/* Fan is OFF at idle (passive cooling) */
|
||||
#define FAN4_PWM 0x00
|
||||
|
||||
/* Fan is at LOW speed */
|
||||
|
|
@ -14,22 +12,22 @@
|
|||
#define FAN3_PWM 0x6b
|
||||
|
||||
/* Fan is at MEDIUM speed */
|
||||
#define FAN2_THRESHOLD_OFF 75
|
||||
#define FAN2_THRESHOLD_ON 83
|
||||
#define FAN2_PWM 0xcc
|
||||
#define FAN2_THRESHOLD_OFF 55
|
||||
#define FAN2_THRESHOLD_ON 67
|
||||
#define FAN2_PWM 0x86
|
||||
|
||||
/* Fan is at HIGH speed */
|
||||
#define FAN1_THRESHOLD_OFF 86
|
||||
#define FAN1_THRESHOLD_ON 90
|
||||
#define FAN1_PWM 0xe5
|
||||
#define FAN1_THRESHOLD_OFF 67
|
||||
#define FAN1_THRESHOLD_ON 75
|
||||
#define FAN1_PWM 0xa8
|
||||
|
||||
/* Fan is at FULL speed */
|
||||
#define FAN0_THRESHOLD_OFF 93
|
||||
#define FAN0_THRESHOLD_ON 96
|
||||
#define FAN0_PWM 0xff
|
||||
#define FAN0_THRESHOLD_OFF 85
|
||||
#define FAN0_THRESHOLD_ON 90
|
||||
#define FAN0_PWM 0xdc
|
||||
|
||||
/* Temperature which OS will shutdown at */
|
||||
#define CRITICAL_TEMPERATURE 100
|
||||
#define CRITICAL_TEMPERATURE 98
|
||||
|
||||
/* Temperature which OS will throttle CPU */
|
||||
#define PASSIVE_TEMPERATURE 90
|
||||
|
|
|
|||
|
|
@ -3,9 +3,7 @@
|
|||
#ifndef THERMAL_H
|
||||
#define THERMAL_H
|
||||
|
||||
/* Fan is OFF */
|
||||
#define FAN4_THRESHOLD_OFF 0
|
||||
#define FAN4_THRESHOLD_ON 0
|
||||
/* Fan is OFF at idle (passive cooling) */
|
||||
#define FAN4_PWM 0x00
|
||||
|
||||
/* Fan is at LOW speed */
|
||||
|
|
|
|||
|
|
@ -3,30 +3,28 @@
|
|||
#ifndef THERMAL_H
|
||||
#define THERMAL_H
|
||||
|
||||
/* Fan is OFF */
|
||||
#define FAN4_THRESHOLD_OFF 0
|
||||
#define FAN4_THRESHOLD_ON 0
|
||||
#define FAN4_PWM 0x4c
|
||||
/* Fan is OFF at idle (passive cooling) */
|
||||
#define FAN4_PWM 0x00
|
||||
|
||||
/* Fan is at LOW speed */
|
||||
#define FAN3_THRESHOLD_OFF 48
|
||||
#define FAN3_THRESHOLD_ON 52
|
||||
#define FAN3_THRESHOLD_OFF 40
|
||||
#define FAN3_THRESHOLD_ON 50
|
||||
#define FAN3_PWM 0x6d
|
||||
|
||||
/* Fan is at MEDIUM speed */
|
||||
#define FAN2_THRESHOLD_OFF 50
|
||||
#define FAN2_THRESHOLD_ON 55
|
||||
#define FAN2_THRESHOLD_OFF 55
|
||||
#define FAN2_THRESHOLD_ON 67
|
||||
#define FAN2_PWM 0x7c
|
||||
|
||||
/* Fan is at HIGH speed */
|
||||
#define FAN1_THRESHOLD_OFF 52
|
||||
#define FAN1_THRESHOLD_ON 58
|
||||
#define FAN1_THRESHOLD_OFF 67
|
||||
#define FAN1_THRESHOLD_ON 75
|
||||
#define FAN1_PWM 0xa3
|
||||
|
||||
/* Fan is at FULL speed */
|
||||
#define FAN0_THRESHOLD_OFF 55
|
||||
#define FAN0_THRESHOLD_ON 60
|
||||
#define FAN0_PWM 0xba
|
||||
#define FAN0_THRESHOLD_OFF 85
|
||||
#define FAN0_THRESHOLD_ON 90
|
||||
#define FAN0_PWM 0xdc
|
||||
|
||||
/* Temperature which OS will shutdown at */
|
||||
#define CRITICAL_TEMPERATURE 98
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue