diff options
author | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2014-12-26 13:28:35 +0200 |
---|---|---|
committer | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2014-12-28 19:56:58 +0100 |
commit | c7c02673e45a1c35ee020049c3dcf6da7e7ed1f0 (patch) | |
tree | e9b3879081e37e192b14714598413233163935d9 /src | |
parent | d4b1139e289d8a786caee42e8ba198dd9a4538f4 (diff) | |
download | coreboot-c7c02673e45a1c35ee020049c3dcf6da7e7ed1f0.tar.xz |
RELOCATABLE_RAMSTAGE: Fix weak symbols with ramstage_cache
We had NULL reference with cache_loaded_ramstage() if
CACHE_RELOCATED_RAMSTAGE_OUTSIDE_CBMEM was not set so boot never
proceeded to ramstage.
Cache implementation outside CBMEM provides means for platform-specific
location so there is no need of weak attributes here.
Change-Id: I1eb1a713896395c424fde23252c374f9065fe74d
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: http://review.coreboot.org/7954
Tested-by: build bot (Jenkins)
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/include/cbfs.h | 6 | ||||
-rw-r--r-- | src/lib/Makefile.inc | 2 | ||||
-rw-r--r-- | src/lib/ramstage_cache.c | 6 |
3 files changed, 5 insertions, 9 deletions
diff --git a/src/include/cbfs.h b/src/include/cbfs.h index ebdbf4365d..52972300e2 100644 --- a/src/include/cbfs.h +++ b/src/include/cbfs.h @@ -92,13 +92,11 @@ struct cbmem_entry; * structure to store information, but note that the handoff variable can be * NULL. The ramstage cbmem_entry represents the region occupied by the loaded * ramstage. */ -void __attribute__((weak)) -cache_loaded_ramstage(struct romstage_handoff *handoff, +void cache_loaded_ramstage(struct romstage_handoff *handoff, const struct cbmem_entry *ramstage, void *entry_point); /* Return NULL on error or entry point on success. The ramstage cbmem_entry is * the region where to load the cached contents to. */ -void * __attribute__((weak)) -load_cached_ramstage(struct romstage_handoff *handoff, +void * load_cached_ramstage(struct romstage_handoff *handoff, const struct cbmem_entry *ramstage); #else /* CONFIG_RELOCATABLE_RAMSTAGE */ diff --git a/src/lib/Makefile.inc b/src/lib/Makefile.inc index b7daea116d..327c9f2503 100644 --- a/src/lib/Makefile.inc +++ b/src/lib/Makefile.inc @@ -86,7 +86,7 @@ romstage-y += hexdump.c romstage-$(CONFIG_REG_SCRIPT) += reg_script.c ramstage-$(CONFIG_REG_SCRIPT) += reg_script.c -romstage-$(CONFIG_CACHE_RELOCATED_RAMSTAGE_OUTSIDE_CBMEM) += ramstage_cache.c +romstage-$(CONFIG_RELOCATABLE_RAMSTAGE) += ramstage_cache.c smm-y += cbfs.c cbfs_core.c memcmp.c smm-$(CONFIG_COMPILER_GCC) += gcc.c diff --git a/src/lib/ramstage_cache.c b/src/lib/ramstage_cache.c index 0f7273a961..814d807713 100644 --- a/src/lib/ramstage_cache.c +++ b/src/lib/ramstage_cache.c @@ -96,8 +96,7 @@ void *load_cached_ramstage(struct romstage_handoff *handoff, /* Cache relocated ramstage in CBMEM. */ -void __attribute__((weak)) -cache_loaded_ramstage(struct romstage_handoff *handoff, +void cache_loaded_ramstage(struct romstage_handoff *handoff, const struct cbmem_entry *ramstage, void *entry_point) { uint32_t ramstage_size; @@ -120,8 +119,7 @@ cache_loaded_ramstage(struct romstage_handoff *handoff, ramstage_size); } -void * __attribute__((weak)) -load_cached_ramstage(struct romstage_handoff *handoff, +void *load_cached_ramstage(struct romstage_handoff *handoff, const struct cbmem_entry *ramstage) { const struct cbmem_entry *entry_cache; |