the following patch was just integrated into master:
commit 5cd8eeb6fe2e2415794a551383afc68465a677a8
Author: Duncan Laurie <dlaurie(a)chromium.org>
Date: Wed Jul 18 15:33:45 2012 -0700
CTDP: Only do TDP down/nominal change from TNP0
Otherwise there is a flurry of TDP changes with suspend/resume
as the kernel powers devices off on suspend and brings them
back online in resume.
This also adds a mutex around the TDP operations since it is
split across two methods and can't just rely on being Serialized.
Change-Id: I7757d3ddad34ac985a9c8ce2fc202e2b2dcb2527
Signed-off-by: Duncan Laurie <dlaurie(a)chromium.org>
Build-Tested: build bot (Jenkins) at Thu Jul 26 21:09:24 2012, giving +1
Reviewed-By: Stefan Reinauer <stefan.reinauer(a)coreboot.org> at Thu Jul 26 21:12:31 2012, giving +2
See http://review.coreboot.org/1348 for details.
-gerrit
Stefan Reinauer (stefan.reinauer(a)coreboot.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/1324
-gerrit
commit b9eea92bd0015ce9d3fc461ec89cbcd2c4467912
Author: Stefan Reinauer <reinauer(a)chromium.org>
Date: Thu Jun 28 12:22:28 2012 -0700
bd82x6x: Use CMOS variable if available for power-on on power failure
We used a hard coded value for some reason. Don't do that, but use CMOS
instead.
Modelled after http://review.coreboot.org/#/c/443 to get bd82x6x in
sync.
Change-Id: I36d715310157b9f9074f2a1c80710f85833020b4
Signed-off-by: Stefan Reinauer <reinauer(a)google.com>
---
src/southbridge/intel/bd82x6x/smihandler.c | 14 ++++++++++----
1 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/src/southbridge/intel/bd82x6x/smihandler.c b/src/southbridge/intel/bd82x6x/smihandler.c
index 29f1a1e..da5b52b 100644
--- a/src/southbridge/intel/bd82x6x/smihandler.c
+++ b/src/southbridge/intel/bd82x6x/smihandler.c
@@ -29,6 +29,7 @@
#include <device/pci_def.h>
#include <cpu/x86/smm.h>
#include <elog.h>
+#include <pc80/mc146818rtc.h>
#include "pch.h"
#include "nvs.h"
@@ -324,11 +325,16 @@ static void southbridge_smi_sleep(unsigned int node, smm_state_save_area_t *stat
u8 reg8;
u32 reg32;
u8 slp_typ;
- /* FIXME: the power state on boot should be read from
- * CMOS or even better from GNVS. Right now it's hard
- * coded at compile time.
- */
u8 s5pwr = CONFIG_MAINBOARD_POWER_ON_AFTER_POWER_FAIL;
+
+ // save and recover RTC port values
+ u8 tmp70, tmp72;
+ tmp70 = inb(0x70);
+ tmp72 = inb(0x72);
+ get_option(&s5pwr, "power_on_after_fail");
+ outb(tmp70, 0x70);
+ outb(tmp72, 0x72);
+
void (*mainboard_sleep)(u8 slp_typ) = mainboard_smi_sleep;
/* First, disable further SMIs */
Ronald G. Minnich (rminnich(a)gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/1348
-gerrit
commit 5cd8eeb6fe2e2415794a551383afc68465a677a8
Author: Duncan Laurie <dlaurie(a)chromium.org>
Date: Wed Jul 18 15:33:45 2012 -0700
CTDP: Only do TDP down/nominal change from TNP0
Otherwise there is a flurry of TDP changes with suspend/resume
as the kernel powers devices off on suspend and brings them
back online in resume.
This also adds a mutex around the TDP operations since it is
split across two methods and can't just rely on being Serialized.
Change-Id: I7757d3ddad34ac985a9c8ce2fc202e2b2dcb2527
Signed-off-by: Duncan Laurie <dlaurie(a)chromium.org>
---
.../intel/sandybridge/acpi/hostbridge.asl | 30 ++++++++++++++++----
1 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/src/northbridge/intel/sandybridge/acpi/hostbridge.asl b/src/northbridge/intel/sandybridge/acpi/hostbridge.asl
index 8dd1de6..93db98d 100644
--- a/src/northbridge/intel/sandybridge/acpi/hostbridge.asl
+++ b/src/northbridge/intel/sandybridge/acpi/hostbridge.asl
@@ -101,6 +101,8 @@ Device (MCHC)
TLUD, 32,
}
+ Mutex (CTCM, 1) /* CTDP Switch Mutex (sync level 1) */
+ Name (CTCC, 0) /* CTDP Current Selection */
Name (CTCN, 0) /* CTDP Nominal Select */
Name (CTCD, 1) /* CTDP Down Select */
Name (CTCU, 2) /* CTDP Up Select */
@@ -167,12 +169,16 @@ Device (MCHC)
/* Set TDP Down */
Method (STND, 0, Serialized)
{
- Store ("Set TDP Down", Debug)
-
- If (LEqual (CTCD, CTCS)) {
+ If (Acquire (CTCM, 100)) {
+ Return (0)
+ }
+ If (LEqual (CTCD, CTCC)) {
+ Release (CTCM)
Return (0)
}
+ Store ("Set TDP Down", Debug)
+
/* Set CTC */
Store (CTCD, CTCS)
@@ -189,18 +195,26 @@ Device (MCHC)
/* Set PL1 */
Store (CTDD, PL1V)
+ /* Store the new TDP Down setting */
+ Store (CTCD, CTCC)
+
+ Release (CTCM)
Return (1)
}
/* Set TDP Nominal from Down */
Method (STDN, 0, Serialized)
{
- Store ("Set TDP Nominal", Debug)
-
- If (LEqual (CTCN, CTCS)) {
+ If (Acquire (CTCM, 100)) {
+ Return (0)
+ }
+ If (LEqual (CTCN, CTCC)) {
+ Release (CTCM)
Return (0)
}
+ Store ("Set TDP Nominal", Debug)
+
/* Set PL1 */
Store (CTDN, PL1V)
@@ -217,6 +231,10 @@ Device (MCHC)
/* Set CTC */
Store (CTCN, CTCS)
+ /* Store the new TDP Nominal setting */
+ Store (CTCN, CTCC)
+
+ Release (CTCM)
Return (1)
}
}
the following patch was just integrated into master:
commit a8d447a324ef126fab9dce1d1f8268fb97d24b72
Author: Duncan Laurie <dlaurie(a)chromium.org>
Date: Mon Jul 16 12:47:45 2012 -0700
ELOG: Fix reporting of developer/recovery modes
Recent changes in EC/Vboot/U-boot have completely broken
the logging of developer and recovery modes.
Recovery mode may not be in VBNV, so if that is zero and
yet we are in recovery mode then assume it is there because
the button/key was pressed.
Since there may not be any actual developer mode switch
we look if option rom is loaded and the system is not
in recovery mode and consider that as developer mode.
Change-Id: I70104877b24de477217e1ff5b3a019aef22343ec
Signed-off-by: Duncan Laurie <dlaurie(a)chromium.org>
Build-Tested: build bot (Jenkins) at Wed Jul 25 04:51:17 2012, giving +1
Reviewed-By: Ronald G. Minnich <rminnich(a)gmail.com> at Thu Jul 26 20:34:12 2012, giving +2
See http://review.coreboot.org/1346 for details.
-gerrit
the following patch was just integrated into master:
commit 369ab60207dd36c3072ed86939143809bc7d6bae
Author: Duncan Laurie <dlaurie(a)chromium.org>
Date: Fri Jul 13 10:11:54 2012 -0700
Log event for abnormal management engine status
This will log if the ME is disabled or has an error.
1) disable ME via EC console: gpioset PCH_HDA_SDO 1
2) boot the device
3) read eventlog with "mosys eventlog list"
71 | 2012-07-13 10:10:55 | Management Engine | Disabled
Change-Id: I9f6ee452d2aea76e6a5ea2cd50a50ff36245692a
Signed-off-by: Duncan Laurie <dlaurie(a)chromium.org>
Build-Tested: build bot (Jenkins) at Wed Jul 25 04:37:05 2012, giving +1
Reviewed-By: Ronald G. Minnich <rminnich(a)gmail.com> at Thu Jul 26 20:33:44 2012, giving +2
See http://review.coreboot.org/1345 for details.
-gerrit
the following patch was just integrated into master:
commit 8b58555a396576d2ab85e0e724ca8cfd679bddfd
Author: Duncan Laurie <dlaurie(a)chromium.org>
Date: Mon Jul 16 12:27:42 2012 -0700
ACPI: Add support for runtime config TDP down
The required power MSRs are mirrored in MCHBAR so
it is possible to configure TDP at runtime via ASL.
This adds the required fields and a set of methods to
configure "TDP down" and "TDP nominal". It explicitly
does not support "TDP up" at the moment.
PSSS: method is added to assist in searching the _PSS
table for the appropriate entry that corresponds to the
desired max non-turbo ratio.
STND: Set TDP Down from Nominal. This will limit CPU to
the TDP down configuration by sequencing the required
changes in the right order.
STDN: Set TDP Nominal from Down. This will set the CPU
back to nominal configuration by sequencing the required
changes in the correct (reverse) order.
This does not introduce any functional changes and must
be paired with additional changes to be useful.
The current configured TDP can be checked to see that
the transition to/from a desired level is successful.
> mmio_read8 0xfed15f50
0x00 # TDP-Nominal
> mmio_read8 0xfed15f50
0x01 # TDP-Down
Change-Id: I31a2f30cc9d134cc5eee980ae9288ae45e71c6e6
Signed-off-by: Duncan Laurie <dlaurie(a)chromium.org>
Build-Tested: build bot (Jenkins) at Wed Jul 25 04:23:22 2012, giving +1
Reviewed-By: Ronald G. Minnich <rminnich(a)gmail.com> at Thu Jul 26 20:33:05 2012, giving +2
See http://review.coreboot.org/1344 for details.
-gerrit
the following patch was just integrated into master:
commit fa4e269220a4c7d1ec5b03da23420bb7fc744646
Author: Duncan Laurie <dlaurie(a)chromium.org>
Date: Mon Jul 16 12:19:00 2012 -0700
CPU: Add option to set TCC activation offset
The default TCC activation offset is 0, which means TCC
activation starts at Tj_max. For devices with limited
cooling ability it may be desired to lower TCC activation.
This adds an option that can be declared in the devicetree
to set the TCC activation to a non-zero value.
Enable tcc_offset=15 in devicetree.cb and build/boot
the BIOS and check that the value is set in the MSR:
> and $(shr $(rdmsr 0 0x1a2) 24) 0xf
0xf
Change-Id: I88f6857b40fd354f70fa9d5d9c1d8ceaea6dfcd1
Signed-off-by: Duncan Laurie <dlaurie(a)chromium.org>
Build-Tested: build bot (Jenkins) at Wed Jul 25 04:09:34 2012, giving +1
Reviewed-By: Ronald G. Minnich <rminnich(a)gmail.com> at Thu Jul 26 20:32:44 2012, giving +2
See http://review.coreboot.org/1343 for details.
-gerrit
the following patch was just integrated into master:
commit b69c7c9ecf211352131ab37172cf7e9ebddc9af3
Author: Duncan Laurie <dlaurie(a)chromium.org>
Date: Mon Jul 16 12:14:49 2012 -0700
ACPI: Add a method to notify OS to re-read _PPC
Split this behavior out from PNOT() so the OS can
update _PPC limit without re-reading C-state tables.
Change-Id: I81b9111a4866f6b9916f74ac57a3caefaa77c565
Signed-off-by: Duncan Laurie <dlaurie(a)chromium.org>
Build-Tested: build bot (Jenkins) at Wed Jul 25 03:55:00 2012, giving +1
Reviewed-By: Ronald G. Minnich <rminnich(a)gmail.com> at Thu Jul 26 20:32:10 2012, giving +2
See http://review.coreboot.org/1342 for details.
-gerrit
the following patch was just integrated into master:
commit 1eb5629e24af2b52941848d57ae251565b5dc207
Author: Duncan Laurie <dlaurie(a)chromium.org>
Date: Mon Jul 16 12:11:53 2012 -0700
ACPI: Add function to write _PPC using NVS
The existing NVS variable for PPCM will be used to
select a dynamic max P-state.
By itself this does not change existing behavior because
the NVS PPCM variable is initialized to zero.
PPCM can be tested by building and booting a modified BIOS
that sets gnvs->ppcm to a value greater than 1 and checking
from the OS that the P-state is limited to that value.
Change-Id: Ia7b3bbc6b84c1aa42349bb236abee5cc92486561
Signed-off-by: Duncan Laurie <dlaurie(a)chromium.org>
Build-Tested: build bot (Jenkins) at Wed Jul 25 03:40:26 2012, giving +1
Reviewed-By: Ronald G. Minnich <rminnich(a)gmail.com> at Thu Jul 26 20:31:51 2012, giving +2
See http://review.coreboot.org/1341 for details.
-gerrit