Nico Huber (nico.huber@secunet.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3499
-gerrit
commit 97d2b7be115446f184109971f985246be1dc6e41 Author: Nico Huber nico.h@gmx.de Date: Sun May 26 19:37:47 2013 +0200
lenovo/t60: Collect timestamps in romstage
Collect early timestamps in T60's romstage like some newer boards do. This should also work on X60s (and other ICH7 based systems with EARLY_CBMEM_INIT).
Change-Id: I3b2872dd7423f3379ff3b68ad999523ec35fc08e Signed-off-by: Nico Huber nico.h@gmx.de --- src/mainboard/lenovo/t60/romstage.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+)
diff --git a/src/mainboard/lenovo/t60/romstage.c b/src/mainboard/lenovo/t60/romstage.c index 16971fc..5bb7ac1 100644 --- a/src/mainboard/lenovo/t60/romstage.c +++ b/src/mainboard/lenovo/t60/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> @@ -211,6 +212,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();
@@ -279,7 +294,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(); @@ -336,6 +357,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();