intel/broadwell: Fix refcode handling
Allow adding and executing a refcode binary.
Change-Id: I00e91a088a5695b42528e246d0ed642d988603e3
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-on: http://review.coreboot.org/10638
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
diff --git a/src/soc/intel/broadwell/Kconfig b/src/soc/intel/broadwell/Kconfig
index a789c37..b584c0e 100644
--- a/src/soc/intel/broadwell/Kconfig
+++ b/src/soc/intel/broadwell/Kconfig
@@ -200,6 +200,24 @@
help
If you set this option to y, the serial IRQ machine will be
operated in continuous mode.
+
+config HAVE_REFCODE_BLOB
+ depends on ARCH_X86
+ bool "An external reference code blob should be put into cbfs."
+ default n
+ help
+ The reference code blob will be placed into cbfs.
+
+if HAVE_REFCODE_BLOB
+
+config REFCODE_BLOB_FILE
+ string "Path and filename to reference code blob."
+ default "refcode.elf"
+ help
+ The path and filename to the file to be added to cbfs.
+
+endif # HAVE_REFCODE_BLOB
+
config HAVE_ME_BIN
bool "Add Intel Management Engine firmware"
default y
diff --git a/src/soc/intel/broadwell/refcode.c b/src/soc/intel/broadwell/refcode.c
index a890e82..949b416 100644
--- a/src/soc/intel/broadwell/refcode.c
+++ b/src/soc/intel/broadwell/refcode.c
@@ -43,7 +43,7 @@
return (pei_wrapper_entry_t)prog_entry(&refcode);
}
-static efi_wrapper_entry_t load_reference_code(void)
+static pei_wrapper_entry_t load_reference_code(void)
{
struct prog prog =
PROG_INIT(ASSET_REFCODE, CONFIG_CBFS_PREFIX "/refcode");
@@ -69,7 +69,7 @@
/* Cache loaded reference code. */
stage_cache_add(STAGE_REFCODE, &prog);
- return prog_entry(&prog);
+ return (pei_wrapper_entry_t)prog_entry(&prog);
}
void broadwell_run_reference_code(void)