[coreboot] New patch to review for coreboot: 24b563d haswell: Properly Guard Engergy Policy by CPUID

Stefan Reinauer (stefan.reinauer@coreboot.org) gerrit at coreboot.org
Tue Mar 12 00:10:50 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/2639

-gerrit

commit 24b563dff1348294ceb7d3405229a02d0be253f3
Author: Aaron Durbin <adurbin at chromium.org>
Date:   Tue Dec 11 17:15:13 2012 -0600

    haswell: Properly Guard Engergy Policy by CPUID
    
    The IA32_ENERGY_PERFORMANCE_BIAS MSR can only be read or written
    to if the CPU supports it. The support is indicated by ECX[3] for
    cpuid(6). Without this guard, some Haswell parts would GP# fault
    in this routine.
    
    No more GP# while running on haswell CRBs.
    
    Change-Id: If41e1e133e5faebb3ed578cba60743ce7e1c196f
    Signed-off-by: Aaron Durbin <adurbin at chromium.org>
---
 src/cpu/intel/haswell/haswell_init.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/cpu/intel/haswell/haswell_init.c b/src/cpu/intel/haswell/haswell_init.c
index 01d151e..9984c55 100644
--- a/src/cpu/intel/haswell/haswell_init.c
+++ b/src/cpu/intel/haswell/haswell_init.c
@@ -404,6 +404,12 @@ static void set_max_ratio(void)
 static void set_energy_perf_bias(u8 policy)
 {
 	msr_t msr;
+	int ecx;
+
+	/* Determine if energy efficient policy is supported. */
+	ecx = cpuid_ecx(0x6);
+	if (!(ecx & (1 << 3)))
+		return;
 
 	/* Energy Policy is bits 3:0 */
 	msr = rdmsr(IA32_ENERGY_PERFORMANCE_BIAS);



More information about the coreboot mailing list