From c3520b0e5946922735bf71c6eccd1d945d79a72e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ky=C3=B6sti=20M=C3=A4lkki?= Date: Sat, 19 Nov 2016 17:12:39 +0200 Subject: [PATCH] UPSTREAM: nb/intel/sandybridge/raminit: 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. BUG=None BRANCH=None TEST=None Signed-off-by: Kysti Mlkki Reviewed-on: https://review.coreboot.org/17516 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin Change-Id: I2b0d9bd11c294d988a0eb84b90e77d5cc7f1f848 Reviewed-on: https://chromium-review.googlesource.com/415051 Commit-Ready: Aaron Durbin Tested-by: Furquan Shaikh Reviewed-by: Aaron Durbin --- 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 d06e929384..e8ad4169cc 100644 --- a/src/northbridge/intel/sandybridge/raminit.c +++ b/src/northbridge/intel/sandybridge/raminit.c @@ -850,11 +850,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);