diff options
author | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2014-12-31 21:11:51 +0200 |
---|---|---|
committer | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2015-01-14 19:45:36 +0100 |
commit | 41759274fe9388137ce16f5199c42e14ddd48f13 (patch) | |
tree | 5af0a3bb94d64ff1adb12f6d340a1f282a90f256 | |
parent | 5780d6f3876723b94fbe3653c9d87dad6330862e (diff) |
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@gmail.com>
Reviewed-on: http://review.coreboot.org/8022
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Tested-by: build bot (Jenkins)
-rw-r--r-- | src/soc/intel/baytrail/baytrail/romstage.h | 7 | ||||
-rw-r--r-- | src/soc/intel/baytrail/romstage/romstage.c | 23 | ||||
-rw-r--r-- | src/soc/intel/broadwell/broadwell/romstage.h | 7 | ||||
-rw-r--r-- | 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 9ea3564fa3..5fbda3725e 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 ac5afabffd..a989a99c89 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 d3702c7490..946d1d0739 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 f234fda034..5ca57d0563 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) |