[coreboot-gerrit] New patch to review for coreboot: 97ddd72 RELOCATABLE_RAMSTAGE: Fix weak symbols with ramstage_cache

Kyösti Mälkki (kyosti.malkki@gmail.com) gerrit at coreboot.org
Sat Dec 27 12:26:12 CET 2014


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/7954

-gerrit

commit 97ddd722d8e4dd132e343601ce5596246b196ff6
Author: Kyösti Mälkki <kyosti.malkki at gmail.com>
Date:   Fri Dec 26 13:28:35 2014 +0200

    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 at gmail.com>
---
 src/include/cbfs.h       | 6 ++----
 src/lib/Makefile.inc     | 2 +-
 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 ebdbf43..5297230 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 b7daea1..327c9f2 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 0f7273a..814d807 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;



More information about the coreboot-gerrit mailing list