[coreboot-gerrit] Patch set updated for coreboot: 996c738 DO NOT MERGE: FSP 1.1 support "workarounds"

Leroy P Leahy (leroy.p.leahy@intel.com) gerrit at coreboot.org
Wed May 6 01:28:40 CEST 2015


Leroy P Leahy (leroy.p.leahy at intel.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/10054

-gerrit

commit 996c7385374958378b11886c3a4756aee8aca4aa
Author: Lee Leahy <leroy.p.leahy at intel.com>
Date:   Fri May 1 10:11:25 2015 -0700

    DO NOT MERGE: FSP 1.1 support "workarounds"
    
    Update header files and add empty routines for missing references to get
    things to build for Braswell.
    
    BRANCH=none
    BUG=None
    TEST=Build and run on Braswell
    
    Change-Id: Iec322cc888658ca56cf0abb29e92a2af7168a934
    Signed-off-by: Lee Leahy <leroy.p.leahy at intel.com>
---
 src/include/bootstate.h           |  3 +++
 src/include/cbmem.h               | 19 ++++++++++++++++++-
 src/include/timestamp.h           | 19 +++++++++++++++++++
 src/soc/intel/common/Makefile.inc |  2 ++
 src/soc/intel/common/junk.c       |  5 +++++
 5 files changed, 47 insertions(+), 1 deletion(-)

diff --git a/src/include/bootstate.h b/src/include/bootstate.h
index 8b5e4be..59809eb 100644
--- a/src/include/bootstate.h
+++ b/src/include/bootstate.h
@@ -187,6 +187,9 @@ struct boot_state_init_entry {
 
 #define BOOT_STATE_INIT_ATTR  __attribute__ ((used,section (".bs_init")))
 
+#define BOOT_STATE_INIT_ENTRIES(name_) \
+	static struct boot_state_init_entry name_[] BOOT_STATE_INIT_ATTR
+
 #define BOOT_STATE_INIT_ENTRY(state_, when_, func_, arg_)		\
 	static struct boot_state_init_entry func_ ##_## state_ ##_## when_ = \
 	{								\
diff --git a/src/include/cbmem.h b/src/include/cbmem.h
index c5cd52a..ac4fca4 100644
--- a/src/include/cbmem.h
+++ b/src/include/cbmem.h
@@ -144,12 +144,16 @@ struct cbmem_entry;
  */
 
 #define DYN_CBMEM_ALIGN_SIZE (4096)
+#define CBMEM_ROOT_SIZE      DYN_CBMEM_ALIGN_SIZE
 
 /* By default cbmem is attempted to be recovered. Returns 0 if cbmem was
  * recovered or 1 if cbmem had to be reinitialized. */
 int cbmem_initialize(void);
+int cbmem_initialize_id_size(u32 id, u64 size);
+
 /* Initialize cbmem to be empty. */
 void cbmem_initialize_empty(void);
+void cbmem_initialize_empty_id_size(u32 id, u64 size);
 
 /* Return the top address for dynamic cbmem. The address returned needs to
  * be consistent across romstage and ramstage, and it is required to be
@@ -186,6 +190,7 @@ void *cbmem_add(u32 id, u64 size);
 /* Find a cbmem entry of a given id. These return NULL on failure. */
 void *cbmem_find(u32 id);
 
+typedef void (* const cbmem_init_hook_t)(void);
 void cbmem_run_init_hooks(void);
 void cbmem_fail_resume(void);
 
@@ -194,7 +199,19 @@ void cbmem_fail_resume(void);
 /* Add the cbmem memory used to the memory map at boot. */
 void cbmem_add_bootmem(void);
 void cbmem_list(void);
-#endif /* __PRE_RAM__ */
+void cbmem_print_entry(int n, u32 id, u64 start, u64 size);
+#define ROMSTAGE_CBMEM_INIT_HOOK(init_fn_) static cbmem_init_hook_t \
+	init_fn_ ## _unused_ __attribute__((unused)) = init_fn_;
+#define RAMSTAGE_CBMEM_INIT_HOOK(init_fn_) \
+	static cbmem_init_hook_t init_fn_ ## _ptr_ __attribute__((used, \
+	section(".rodata.cbmem_init_hooks"))) = init_fn_;
+#else /* __PRE_RAM__ */
+#define ROMSTAGE_CBMEM_INIT_HOOK(init_fn_) \
+	static cbmem_init_hook_t init_fn_ ## _ptr_ __attribute__((used, \
+	section(".rodata.cbmem_init_hooks"))) = init_fn_;
+#define RAMSTAGE_CBMEM_INIT_HOOK(init_fn_) static cbmem_init_hook_t \
+	init_fn_ ## _unused_ __attribute__((unused)) = init_fn_;
+#endif /* !__PRE_RAM__ */
 
 /* These are for compatibility with old boards only. Any new chipset and board
  * must implement cbmem_top() for both romstage and ramstage to support
diff --git a/src/include/timestamp.h b/src/include/timestamp.h
index a6bfced..1e3f74b 100644
--- a/src/include/timestamp.h
+++ b/src/include/timestamp.h
@@ -89,6 +89,25 @@ enum timestamp_id {
 };
 
 #if CONFIG_COLLECT_TIMESTAMPS && (CONFIG_EARLY_CBMEM_INIT || !defined(__PRE_RAM__))
+/*
+ * Order of usage of timestamp library is:
+ * Call timestamp_early_init / timestamp_init to set base time before any
+ * timestamp_add function is called. timestamp_early_init also ensures that the
+ * cache is valid in _timestamp region.
+ * After this, timestamp_add / timestamp_add_now can be used to record
+ * timestamps. Sync will be automatically taken care of by cbmem_initialize
+ */
+/*
+ * Initialize the cache to a valid state and set the base time.
+ * This function is used before DRAM is setup so that the timestamp cache can
+ * be initialized in _timestamp region.
+ * Both, timestamp_init and timestamp_early_init reset the cbmem state to
+ * timestamp table reset required. Thus, whenever a timestamp_add or
+ * timestamp_sync is done to add new entries into the cbmem timestamp table, it
+ * first resets the table to 0 entries.
+ */
+void timestamp_early_init(uint64_t base);
+/* Initialize the base time for timestamps and mark cache as valid */
 void timestamp_init(uint64_t base);
 void timestamp_add(enum timestamp_id id, uint64_t ts_time);
 void timestamp_add_now(enum timestamp_id id);
diff --git a/src/soc/intel/common/Makefile.inc b/src/soc/intel/common/Makefile.inc
index 86cc8ea..1181bc1 100644
--- a/src/soc/intel/common/Makefile.inc
+++ b/src/soc/intel/common/Makefile.inc
@@ -5,6 +5,7 @@ romstage-$(CONFIG_SOC_INTEL_COMMON_RAM_INIT) += raminit.c
 romstage-$(CONFIG_SOC_INTEL_COMMON_RESET) += reset.c
 romstage-$(CONFIG_SOC_INTEL_COMMON_ROMSTAGE) += romstage.c
 romstage-$(CONFIG_SOC_INTEL_COMMON_STACK) += stack.c
+romstage-$(CONFIG_SOC_INTEL_BRASWELL) += junk.c
 
 ramstage-$(CONFIG_PLATFORM_USES_FSP1_1) += fsp_ramstage.c
 ramstage-y += hda_verb.c
@@ -12,5 +13,6 @@ ramstage-$(CONFIG_CACHE_MRC_SETTINGS) += nvm.c
 ramstage-$(CONFIG_CACHE_MRC_SETTINGS) += mrc_cache.c
 ramstage-$(CONFIG_SOC_INTEL_COMMON_RESET) += reset.c
 ramstage-$(CONFIG_SOC_INTEL_COMMON_SPI_LOADING) += spi_loading.c
+ramstage-$(CONFIG_SOC_INTEL_BRASWELL) += junk.c
 
 endif
diff --git a/src/soc/intel/common/junk.c b/src/soc/intel/common/junk.c
index e90c6e8..e4e563d 100644
--- a/src/soc/intel/common/junk.c
+++ b/src/soc/intel/common/junk.c
@@ -1,5 +1,6 @@
 #include <cbmem.h>
 #include <reg_script.h>
+#include <stage_cache.h>
 #include <timestamp.h>
 
 int cbmem_initialize_id_size(u32 id, u64 size)
@@ -15,6 +16,10 @@ void reg_script_run_on_dev(device_t dev, const struct reg_script *step)
 {
 }
 
+void stage_cache_external_region(void **base, size_t *size)
+{
+}
+
 void timestamp_early_init(uint64_t base)
 {
 }



More information about the coreboot-gerrit mailing list