From e6e94934e8b6641c24ca82ac1de594cfe495e5f9 Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Mon, 22 Jun 2015 22:26:45 +0200 Subject: [PATCH] intel/broadwell: Fix refcode handling Allow adding and executing a refcode binary. Change-Id: I00e91a088a5695b42528e246d0ed642d988603e3 Signed-off-by: Patrick Georgi Reviewed-on: http://review.coreboot.org/10638 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer --- src/soc/intel/broadwell/Kconfig | 18 ++++++++++++++++++ src/soc/intel/broadwell/refcode.c | 4 ++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/soc/intel/broadwell/Kconfig b/src/soc/intel/broadwell/Kconfig index a789c37e22..b584c0e47c 100644 --- a/src/soc/intel/broadwell/Kconfig +++ b/src/soc/intel/broadwell/Kconfig @@ -200,6 +200,24 @@ config SERIRQ_CONTINUOUS_MODE 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 a890e82952..949b416442 100644 --- a/src/soc/intel/broadwell/refcode.c +++ b/src/soc/intel/broadwell/refcode.c @@ -43,7 +43,7 @@ static pei_wrapper_entry_t load_refcode_from_cache(void) 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 @@ static efi_wrapper_entry_t load_reference_code(void) /* 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)