Stefan Reinauer (stefan.reinauer@coreboot.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2782
-gerrit
commit da654974d7cd92946e363e024b126daf67e36c12 Author: Aaron Durbin adurbin@chromium.org Date: Tue Jan 22 13:22:02 2013 -0600
cbfs: alternative support for cbfs_load_payload()
In certain situations boot speed can be increased by providing an alternative implementation to cbfs_load_payload(). The ALT_CBFS_LOAD_PAYLOAD option allows for the mainboard or chipset to provide its own implementation.
Booted baskingridge board with alternative and regular cbfs_load_payload().
Change-Id: I547ac9881a82bacbdb3bbdf38088dfcc22fd0c2c Signed-off-by: Aaron Durbin adurbin@chromium.org --- src/Kconfig | 9 +++++++++ src/lib/cbfs.c | 2 ++ src/lib/selfboot.c | 1 - 3 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/src/Kconfig b/src/Kconfig index 7206878..f6a83e8 100644 --- a/src/Kconfig +++ b/src/Kconfig @@ -47,6 +47,15 @@ config CBFS_PREFIX Select the prefix to all files put into the image. It's "fallback" by default, "normal" is a common alternative.
+config ALT_CBFS_LOAD_PAYLOAD + bool "Use alternative cbfs_load_payload() implementation." + default n + help + Either board or southbridge provide an alternative cbfs_load_payload() + implementation. This may be used, for example, if accessing the ROM + through memory-mapped I/O is slow and a faster alternative can be + provided. + choice prompt "Compiler to use" default COMPILER_GCC diff --git a/src/lib/cbfs.c b/src/lib/cbfs.c index bfdab6c..abb95ab 100644 --- a/src/lib/cbfs.c +++ b/src/lib/cbfs.c @@ -165,11 +165,13 @@ int cbfs_execute_stage(struct cbfs_media *media, const char *name) return run_address((void *)(uintptr_t)ntohll(stage->entry)); }
+#if !CONFIG_ALT_CBFS_LOAD_PAYLOAD void *cbfs_load_payload(struct cbfs_media *media, const char *name) { return (struct cbfs_payload *)cbfs_get_file_content( media, name, CBFS_TYPE_PAYLOAD); } +#endif
/* Simple buffer */
diff --git a/src/lib/selfboot.c b/src/lib/selfboot.c index d64ba4c..f32bb81 100644 --- a/src/lib/selfboot.c +++ b/src/lib/selfboot.c @@ -536,4 +536,3 @@ int selfboot(struct lb_memory *mem, struct cbfs_payload *payload) out: return 0; } -