[coreboot-gerrit] Patch set updated for coreboot: [NEEDS TEST] nb/intel/sandybridge: fix regression

Iru Cai (mytbk920423@gmail.com) gerrit at coreboot.org
Wed Oct 28 07:48:27 CET 2015


Iru Cai (mytbk920423 at gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/12112

-gerrit

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

    [NEEDS TEST] nb/intel/sandybridge: fix regression
    
    Fix regression introduced by:
    3660c0fc658e4e20ef079f762dfc7ad05c83544c
    
    Issue observed:
    Random GNU/Linux kernel crashes on systems without PEG devices.
    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 | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/northbridge/intel/sandybridge/northbridge.c b/src/northbridge/intel/sandybridge/northbridge.c
index 76f03f3..87a1ef1 100644
--- a/src/northbridge/intel/sandybridge/northbridge.c
+++ b/src/northbridge/intel/sandybridge/northbridge.c
@@ -431,6 +431,10 @@ static void northbridge_init(struct device *dev)
 	}
 	MCHBAR32(0x5f10) = bridge_type;
 
+	/* Turn off unused devices. Has to be done before setting BIOS_RESET_CPL.
+	 * As it results in random GNU/Linux kernel crashes if done afterwards. */
+	disable_peg();
+
 	/*
 	 * Set bit 0 of BIOS_RESET_CPL to indicate to the CPU
 	 * that BIOS has initialized memory and power management
@@ -456,9 +460,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