[coreboot-gerrit] Patch set updated for coreboot: fd60916 peppy: Enable power limiting for thermal control

Stefan Reinauer (stefan.reinauer@coreboot.org) gerrit at coreboot.org
Fri Dec 6 00:49:33 CET 2013


Stefan Reinauer (stefan.reinauer at coreboot.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/4335

-gerrit

commit fd6091679fc64c386b8d0f6d317e50b9a1c135ad
Author: Duncan Laurie <dlaurie at chromium.org>
Date:   Fri Jun 28 15:59:19 2013 -0700

    peppy: Enable power limiting for thermal control
    
    Limit power to 12W at 73C and remove limit at 68C.
    
    To have the CPU consume maximum power it is necessary to stress
    both the CPU and the GPU.  Bastion (chrome.supergiantgames.com)
    and/or webglsamples.googlecode.com can be useful for this.
    
    Testing this properly requires a script to report the running
    average power readings.  The watch_power.sh script is attached
    to this issue in the partner tracker.
    
    1) Run watch_power.sh continuously:
    localhost ~ # watch -n 0 bash -e /tmp/watch_power.sh
    2) Start Bastion (or other stress apps).  The power draw should
    be close to 15W if under enough load.
    3) Watch until temperature climbs above 73C and is caught by
    the thermal zone 10 second poll, this can be sped up by blocking
    or removing the fan.
    4) The ACPI thermal zone states should change to reflect that
    active[2] is now enabled and power consumption should drop to 12W.
    5) Stop the stress apps and wait until the CPU cools off again,
    enable the fan again if it was removed.
    6) The ACPI thermal zone state should switch back to active[3].
    
    Change-Id: Ie6714a8543d4f06edf8513086fc9c968273bdb23
    Signed-off-by: Duncan Laurie <dlaurie at chromium.org>
    Reviewed-on: https://gerrit.chromium.org/gerrit/60545
---
 src/mainboard/google/peppy/acpi/thermal.asl | 10 ++++++++--
 src/mainboard/google/peppy/acpi_tables.c    | 13 ++++++++-----
 src/mainboard/google/peppy/thermal.h        | 15 +++++----------
 3 files changed, 21 insertions(+), 17 deletions(-)

diff --git a/src/mainboard/google/peppy/acpi/thermal.asl b/src/mainboard/google/peppy/acpi/thermal.asl
index 69b6ac9..67f83ef 100644
--- a/src/mainboard/google/peppy/acpi/thermal.asl
+++ b/src/mainboard/google/peppy/acpi/thermal.asl
@@ -126,12 +126,18 @@ Scope (\_TZ)
 			}
 			Method (_ON)  {
 				Store (0, \FLVL)
-				\_SB.PCI0.MCHC.STND ()
+
+				/* Enable Power Limit */
+				\_SB.PCI0.MCHC.CTLE (\F0PW)
+
 				Notify (\_TZ.THRM, 0x81)
 			}
 			Method (_OFF) {
 				Store (1, \FLVL)
-				\_SB.PCI0.MCHC.STDN ()
+
+				/* Disable Power Limit */
+				\_SB.PCI0.MCHC.CTLD ()
+
 				Notify (\_TZ.THRM, 0x81)
 			}
 		}
diff --git a/src/mainboard/google/peppy/acpi_tables.c b/src/mainboard/google/peppy/acpi_tables.c
index 7a3ccea..4d862ca 100644
--- a/src/mainboard/google/peppy/acpi_tables.c
+++ b/src/mainboard/google/peppy/acpi_tables.c
@@ -44,13 +44,16 @@ unsigned long acpi_create_slic(unsigned long current);
 
 static void acpi_update_thermal_table(global_nvs_t *gnvs)
 {
-	gnvs->tmps = CTDP_SENSOR_ID;
+	gnvs->tmps = CTL_TDP_SENSOR_ID;
 
-	gnvs->f1of = CTDP_NOMINAL_THRESHOLD_OFF;
-	gnvs->f1on = CTDP_NOMINAL_THRESHOLD_ON;
+	/* Normal TDP */
+	gnvs->f1of = 0;
+	gnvs->f1on = 0;
 
-	gnvs->f0of = CTDP_DOWN_THRESHOLD_OFF;
-	gnvs->f0on = CTDP_DOWN_THRESHOLD_ON;
+	/* Limited TDP */
+	gnvs->f0of = CTL_TDP_THRESHOLD_OFF;
+	gnvs->f0on = CTL_TDP_THRESHOLD_ON;
+	gnvs->f0pw = CTL_TDP_POWER_LIMIT;
 
 	gnvs->tcrt = CRITICAL_TEMPERATURE;
 	gnvs->tpsv = PASSIVE_TEMPERATURE;
diff --git a/src/mainboard/google/peppy/thermal.h b/src/mainboard/google/peppy/thermal.h
index fceaeca..a038502 100644
--- a/src/mainboard/google/peppy/thermal.h
+++ b/src/mainboard/google/peppy/thermal.h
@@ -20,16 +20,11 @@
 #ifndef THERMAL_H
 #define THERMAL_H
 
-/* Config TDP Sensor ID */
-#define CTDP_SENSOR_ID			1 /* PECI */
-
-/* Config TDP Nominal */
-#define CTDP_NOMINAL_THRESHOLD_OFF	0
-#define CTDP_NOMINAL_THRESHOLD_ON	0
-
-/* Config TDP Down */
-#define CTDP_DOWN_THRESHOLD_OFF		80
-#define CTDP_DOWN_THRESHOLD_ON		90
+/* Control TDP Settings */
+#define CTL_TDP_SENSOR_ID		1	/* PECI */
+#define CTL_TDP_POWER_LIMIT		12	/* 12W */
+#define CTL_TDP_THRESHOLD_OFF		68	/* Normal at 68C */
+#define CTL_TDP_THRESHOLD_ON		73	/* Limited at 73C */
 
 /* Temperature which OS will shutdown at */
 #define CRITICAL_TEMPERATURE		104



More information about the coreboot-gerrit mailing list