[coreboot-gerrit] Patch set updated for coreboot: [NEEDS TEST] nb/intel/sandybridge: Fix PEG disablement

Patrick Rudolph (siro@das-labor.org) gerrit at coreboot.org
Mon Nov 2 16:42:50 CET 2015


Patrick Rudolph (siro at das-labor.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/12112

-gerrit

commit b672e33c7e6f5db742b195d165229106d2120fe6
Author: Patrick Rudolph <siro at das-labor.org>
Date:   Wed Oct 21 18:05:01 2015 +0200

    [NEEDS TEST] nb/intel/sandybridge: Fix PEG disablement
    
    Fix regression introduced by:
    3660c0fc658e4e20ef079f762dfc7ad05c83544c
    "northbridge/intel/sandybridge: Enable PEG clock-gating on demand"
    
    Issue observed:
    GNU/Linux kernel crashes in earlyinit on systems without PEG devices.
    The crash occurs on every boot in different functions.
    There's no problem on systems with PEG enabled.
    
    Test system:
     * Lenovo T530
     * Intel Core i5-3320M CPU
     * Fedora GNU/Linux 4.1
     * PEG disabled in devicetree
    
    Problem description:
    Tests shows that modifing PEG chicken bit or device enable bits
    after setting BIOS_RESET_CPL causes random crashes in GNU/Linux.
    
    Problem solution:
    Disable PEG devices before setting BIOS_RESET_CPL.
    
    Final testing results:
    No more random kernel crashes.
    
    Change-Id: I4a967c2d00d7d1e4426cf5abdd5f616c21557da7
    Signed-off-by: Patrick Rudolph <siro at das-labor.org>
---
 src/northbridge/intel/sandybridge/northbridge.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/northbridge/intel/sandybridge/northbridge.c b/src/northbridge/intel/sandybridge/northbridge.c
index 09830de..656a0e8 100644
--- a/src/northbridge/intel/sandybridge/northbridge.c
+++ b/src/northbridge/intel/sandybridge/northbridge.c
@@ -427,6 +427,11 @@ static void northbridge_init(struct device *dev)
 	}
 	MCHBAR32(0x5f10) = bridge_type;
 
+	/* Turn off unused devices. Has to be done before
+	 * setting BIOS_RESET_CPL.
+	 */
+	disable_peg();
+
 	/*
 	 * Set bit 0 of BIOS_RESET_CPL to indicate to the CPU
 	 * that BIOS has initialized memory and power management
@@ -452,9 +457,6 @@ static void northbridge_init(struct device *dev)
 
 	/* Set here before graphics PM init */
 	MCHBAR32(0x5500) = 0x00100001;
-
-	/* Turn off unused devices */
-	disable_peg();
 }
 
 static void northbridge_enable(device_t dev)



More information about the coreboot-gerrit mailing list