[coreboot-gerrit] New patch to review for coreboot: intel/sandybridge: Do not log inside busy-wait loop

Kyösti Mälkki (kyosti.malkki@gmail.com) gerrit at coreboot.org
Sun Nov 20 15:51:45 CET 2016


Kyösti Mälkki (kyosti.malkki at gmail.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/17516

-gerrit

commit 273db550a347594a1d31a31c4c3bca5ffe34a39d
Author: Kyösti Mälkki <kyosti.malkki at gmail.com>
Date:   Sat Nov 19 17:12:39 2016 +0200

    intel/sandybridge: Do not log inside busy-wait loop
    
    Time spent in printk() is highly unpredictable, depending of the
    enabled consoles. If only CBMEM console is enabled, debugstring
    is repeated tens of times, consuming preram_cbmem_console storage.
    
    Change-Id: I2b0d9bd11c294d988a0eb84b90e77d5cc7f1f848
    Signed-off-by: Kyösti Mälkki <kyosti.malkki at gmail.com>
---
 src/northbridge/intel/sandybridge/raminit.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/northbridge/intel/sandybridge/raminit.c b/src/northbridge/intel/sandybridge/raminit.c
index 0842d4b..e2fb6ef 100644
--- a/src/northbridge/intel/sandybridge/raminit.c
+++ b/src/northbridge/intel/sandybridge/raminit.c
@@ -845,11 +845,14 @@ static void dram_freq(ramctr_timing * ctrl)
 		reg1 = FRQ;
 		reg1 |= 0x80000000;	// set running bit
 		MCHBAR32(MC_BIOS_REQ) = reg1;
+		int i=0;
+		printk(BIOS_DEBUG, "PLL busy... ");
 		while (reg1 & 0x80000000) {
-			printk(BIOS_DEBUG, " PLL busy...");
+			udelay(10);
+			i++;
 			reg1 = MCHBAR32(MC_BIOS_REQ);
 		}
-		printk(BIOS_DEBUG, "done\n");
+		printk(BIOS_DEBUG, "done in %d us\n", i * 10);
 
 		/* Step 3 - Verify lock frequency */
 		reg1 = MCHBAR32(MC_BIOS_DATA);



More information about the coreboot-gerrit mailing list