[coreboot-gerrit] New patch to review for coreboot: 7d39656 lenovo/x60/romstage.c: Collect timestamps in romstage

Paul Menzel (paulepanter@users.sourceforge.net) gerrit at coreboot.org
Tue Jul 2 10:40:22 CEST 2013


Paul Menzel (paulepanter at users.sourceforge.net) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3587

-gerrit

commit 7d396566be210dfd5f86c8d9038ae0fdacefa02f
Author: Paul Menzel <paulepanter at users.sourceforge.net>
Date:   Tue Jul 2 09:54:17 2013 +0200

    lenovo/x60/romstage.c: Collect timestamps in romstage
    
    Collect early timestamps in Lenovo X60’s romstage like the Lenovo T60
    does. Selecting the option `COLLECT_TIMESTAMPS` in Kconfig and then
    doing `cbmem --timestamps` should output the timestamps.
    
    Thanks to Nico Huber’s work setting this up for the ICH7 and implementing
    it for the T60, all what was needed to do, was to do the equivalent
    changes for the X60 as for the T60 in commit 44c392f8 [1].
    
        lenovo/t60: Collect timestamps in romstage
    
    [1] http://review.coreboot.org/3499
    
    Change-Id: I7bd30f03a1b85c38e89c19cdf88b2d20b24abed8
    Signed-off-by: Paul Menzel <paulepanter at users.sourceforge.net>
---
 src/mainboard/lenovo/x60/romstage.c | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/src/mainboard/lenovo/x60/romstage.c b/src/mainboard/lenovo/x60/romstage.c
index 222b999..4d0eac7 100644
--- a/src/mainboard/lenovo/x60/romstage.c
+++ b/src/mainboard/lenovo/x60/romstage.c
@@ -30,6 +30,7 @@
 #include <cpu/x86/lapic.h>
 #include <lib.h>
 #include <cbmem.h>
+#include <timestamp.h>
 #include <pc80/mc146818rtc.h>
 #include <console/console.h>
 #include <cpu/x86/bist.h>
@@ -218,6 +219,20 @@ void main(unsigned long bist)
 	int cbmem_was_initted;
 	const u8 spd_addrmap[2 * DIMM_SOCKETS] = { 0x50, 0x52, 0x51, 0x53 };
 
+#if CONFIG_COLLECT_TIMESTAMPS
+	tsc_t start_romstage_time;
+	tsc_t before_dram_time;
+	tsc_t after_dram_time;
+	tsc_t base_time = {
+		.lo = pci_read_config32(PCI_DEV(0, 0x00, 0), 0xdc),
+		.hi = pci_read_config32(PCI_DEV(0, 0x1f, 2), 0xd0)
+	};
+#endif
+
+#if CONFIG_COLLECT_TIMESTAMPS
+	start_romstage_time = rdtsc();
+#endif
+
 	if (bist == 0)
 		enable_lapic();
 
@@ -281,7 +296,13 @@ void main(unsigned long bist)
 	dump_spd_registers();
 #endif
 
+#if CONFIG_COLLECT_TIMESTAMPS
+	before_dram_time = rdtsc();
+#endif
 	sdram_initialize(boot_mode, spd_addrmap);
+#if CONFIG_COLLECT_TIMESTAMPS
+	after_dram_time = rdtsc();
+#endif
 
 	/* Perform some initialization that must run before stage2 */
 	early_ich7_init();
@@ -340,6 +361,14 @@ void main(unsigned long bist)
 	}
 #endif
 
+#if CONFIG_COLLECT_TIMESTAMPS
+	timestamp_init(base_time);
+	timestamp_add(TS_START_ROMSTAGE, start_romstage_time);
+	timestamp_add(TS_BEFORE_INITRAM, before_dram_time);
+	timestamp_add(TS_AFTER_INITRAM, after_dram_time);
+	timestamp_add_now(TS_END_ROMSTAGE);
+#endif
+
 #if CONFIG_CONSOLE_CBMEM
 	/* Keep this the last thing this function does. */
 	cbmemc_reinit();



More information about the coreboot-gerrit mailing list