[coreboot-gerrit] Patch set updated for coreboot: 8e98f35 baytrail broadwell: Use timestamps internal stash

Kyösti Mälkki (kyosti.malkki@gmail.com) gerrit at coreboot.org
Thu Jan 1 09:22:40 CET 2015


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

-gerrit

commit 8e98f353cf4d2601b2f29f17b944e85d36f91ca5
Author: Kyösti Mälkki <kyosti.malkki at gmail.com>
Date:   Wed Dec 31 21:11:51 2014 +0200

    baytrail broadwell: Use timestamps internal stash
    
    No reason to carry timestamps on CAR stack, as implementation
    of timestamps internally stashes on CAR_GLOBAL table and migrates
    those to CBMEM.
    
    Change-Id: I5b3307df728b18cd7ebf3352f7f7e270ed1e9002
    Signed-off-by: Kyösti Mälkki <kyosti.malkki at gmail.com>
---
 src/soc/intel/baytrail/baytrail/romstage.h   |  7 -------
 src/soc/intel/baytrail/romstage/romstage.c   | 23 +++++------------------
 src/soc/intel/broadwell/broadwell/romstage.h |  7 -------
 src/soc/intel/broadwell/romstage/romstage.c  | 23 +++++------------------
 4 files changed, 10 insertions(+), 50 deletions(-)

diff --git a/src/soc/intel/baytrail/baytrail/romstage.h b/src/soc/intel/baytrail/baytrail/romstage.h
index 9ea3564..5fbda37 100644
--- a/src/soc/intel/baytrail/baytrail/romstage.h
+++ b/src/soc/intel/baytrail/baytrail/romstage.h
@@ -28,14 +28,7 @@
 #include <arch/cpu.h>
 #include <baytrail/mrc_wrapper.h>
 
-#define NUM_ROMSTAGE_TS 4
-struct romstage_timestamps {
-	uint64_t times[NUM_ROMSTAGE_TS];
-	int count;
-};
-
 struct romstage_params {
-	struct romstage_timestamps ts;
 	unsigned long bist;
 	struct mrc_params *mrc_params;
 };
diff --git a/src/soc/intel/baytrail/romstage/romstage.c b/src/soc/intel/baytrail/romstage/romstage.c
index ac5afab..a989a99 100644
--- a/src/soc/intel/baytrail/romstage/romstage.c
+++ b/src/soc/intel/baytrail/romstage/romstage.c
@@ -99,14 +99,6 @@ static void spi_init(void)
 	write32(bcr, reg);
 }
 
-static inline void mark_ts(struct romstage_params *rp, uint64_t ts)
-{
-	struct romstage_timestamps *rt = &rp->ts;
-
-	rt->times[rt->count] = ts;
-	rt->count++;
-}
-
 /* Entry from cache-as-ram.inc. */
 void * asmlinkage romstage_main(unsigned long bist,
                                 uint32_t tsc_low, uint32_t tsc_hi)
@@ -117,9 +109,10 @@ void * asmlinkage romstage_main(unsigned long bist,
 	};
 
 	/* Save initial timestamp from bootblock. */
-	mark_ts(&rp, (((uint64_t)tsc_hi) << 32) | (uint64_t)tsc_low);
+	timestamp_init((((uint64_t)tsc_hi) << 32) | (uint64_t)tsc_low);
+
 	/* Save romstage begin */
-	mark_ts(&rp, timestamp_get());
+	timestamp_add_now(TS_START_ROMSTAGE);
 
 	program_base_addresses();
 
@@ -233,7 +226,7 @@ void romstage_common(struct romstage_params *params)
 	struct chipset_power_state *ps;
 	int prev_sleep_state;
 
-	mark_ts(params, timestamp_get());
+	timestamp_add_now(TS_BEFORE_INITRAM);
 
 	ps = fill_power_state();
 	prev_sleep_state = chipset_prev_sleep_state(ps);
@@ -249,7 +242,7 @@ void romstage_common(struct romstage_params *params)
 	/* Initialize RAM */
 	raminit(params->mrc_params, prev_sleep_state);
 
-	mark_ts(params, timestamp_get());
+	timestamp_add_now(TS_AFTER_INITRAM);
 
 	handoff = romstage_handoff_find_or_add();
 	if (handoff != NULL)
@@ -258,12 +251,6 @@ void romstage_common(struct romstage_params *params)
 		printk(BIOS_DEBUG, "Romstage handoff structure not added!\n");
 
 	chromeos_init(prev_sleep_state);
-
-	/* Save timestamp information. */
-	timestamp_init(params->ts.times[0]);
-	timestamp_add(TS_START_ROMSTAGE, params->ts.times[1]);
-	timestamp_add(TS_BEFORE_INITRAM, params->ts.times[2]);
-	timestamp_add(TS_AFTER_INITRAM, params->ts.times[3]);
 }
 
 void asmlinkage romstage_after_car(void)
diff --git a/src/soc/intel/broadwell/broadwell/romstage.h b/src/soc/intel/broadwell/broadwell/romstage.h
index d3702c7..946d1d0 100644
--- a/src/soc/intel/broadwell/broadwell/romstage.h
+++ b/src/soc/intel/broadwell/broadwell/romstage.h
@@ -23,16 +23,9 @@
 #include <stdint.h>
 #include <arch/cpu.h>
 
-#define NUM_ROMSTAGE_TS 4
-struct romstage_timestamps {
-	uint64_t times[NUM_ROMSTAGE_TS];
-	int count;
-};
-
 struct chipset_power_state;
 struct pei_data;
 struct romstage_params {
-	struct romstage_timestamps ts;
 	unsigned long bist;
 	struct chipset_power_state *power_state;
 	struct pei_data *pei_data;
diff --git a/src/soc/intel/broadwell/romstage/romstage.c b/src/soc/intel/broadwell/romstage/romstage.c
index f234fda..5ca57d0 100644
--- a/src/soc/intel/broadwell/romstage/romstage.c
+++ b/src/soc/intel/broadwell/romstage/romstage.c
@@ -38,14 +38,6 @@
 #include <broadwell/romstage.h>
 #include <broadwell/spi.h>
 
-static inline void mark_ts(struct romstage_params *rp, uint64_t ts)
-{
-	struct romstage_timestamps *rt = &rp->ts;
-
-	rt->times[rt->count] = ts;
-	rt->count++;
-}
-
 /* Entry from cache-as-ram.inc. */
 void * asmlinkage romstage_main(unsigned long bist,
                                 uint32_t tsc_low, uint32_t tsc_hi)
@@ -58,10 +50,10 @@ void * asmlinkage romstage_main(unsigned long bist,
 	post_code(0x30);
 
 	/* Save initial timestamp from bootblock. */
-	mark_ts(&rp, (((uint64_t)tsc_hi) << 32) | (uint64_t)tsc_low);
+	timestamp_init((((uint64_t)tsc_hi) << 32) | (uint64_t)tsc_low);
 
 	/* Save romstage begin */
-	mark_ts(&rp, timestamp_get());
+	timestamp_add_now(TS_START_ROMSTAGE);
 
 	/* System Agent Early Initialization */
 	systemagent_early_init();
@@ -102,7 +94,7 @@ void romstage_common(struct romstage_params *params)
 
 	post_code(0x32);
 
-	mark_ts(params, timestamp_get());
+	timestamp_add_now(TS_BEFORE_INITRAM);
 
 	params->pei_data->boot_mode = params->power_state->prev_sleep_state;
 
@@ -116,7 +108,8 @@ void romstage_common(struct romstage_params *params)
 
 	/* Initialize RAM */
 	raminit(params->pei_data);
-	mark_ts(params, timestamp_get());
+
+	timestamp_add_now(TS_AFTER_INITRAM);
 
 	handoff = romstage_handoff_find_or_add();
 	if (handoff != NULL)
@@ -126,12 +119,6 @@ void romstage_common(struct romstage_params *params)
 		printk(BIOS_DEBUG, "Romstage handoff structure not added!\n");
 
 	chromeos_init(params->power_state->prev_sleep_state);
-
-	/* Save timestamp information. */
-	timestamp_init(params->ts.times[0]);
-	timestamp_add(TS_START_ROMSTAGE, params->ts.times[1]);
-	timestamp_add(TS_BEFORE_INITRAM, params->ts.times[2]);
-	timestamp_add(TS_AFTER_INITRAM, params->ts.times[3]);
 }
 
 void asmlinkage romstage_after_car(void)



More information about the coreboot-gerrit mailing list