[coreboot-gerrit] Patch set updated for coreboot: drivers/intel/fsp2_0: Eliminate CBFS hardcoded names for FSP

Andrey Petrov (andrey.petrov@intel.com) gerrit at coreboot.org
Tue May 17 17:26:03 CEST 2016


Andrey Petrov (andrey.petrov at intel.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/14818

-gerrit

commit 78bee2e64d69de085214b7a73e60a389010d6a56
Author: Andrey Petrov <andrey.petrov at intel.com>
Date:   Sat May 14 16:32:39 2016 -0700

    drivers/intel/fsp2_0: Eliminate CBFS hardcoded names for FSP
    
    Get rid of hardcoding names of FSP blobs and add Apollolake
    specific options for FSP-M.
    
    Change-Id: I350abeffc4d23e45e339464d036716ecdb2ba83a
    Signed-off-by: Andrey Petrov <andrey.petrov at intel.com>
---
 src/drivers/intel/fsp2_0/Kconfig        | 10 ++++++++++
 src/drivers/intel/fsp2_0/memory_init.c  |  3 +--
 src/drivers/intel/fsp2_0/silicon_init.c |  3 +--
 src/soc/intel/apollolake/Kconfig        |  6 ++++++
 src/soc/intel/apollolake/Makefile.inc   |  3 +++
 5 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/src/drivers/intel/fsp2_0/Kconfig b/src/drivers/intel/fsp2_0/Kconfig
index 19e04f7..9289f15 100644
--- a/src/drivers/intel/fsp2_0/Kconfig
+++ b/src/drivers/intel/fsp2_0/Kconfig
@@ -3,4 +3,14 @@ config PLATFORM_USES_FSP2_0
 	help
 	  Include FSP 2.0 wrappers and functionality
 
+if PLATFORM_USES_FSP2_0
 
+config FSP_S_CBFS
+	string "Name of FSP-S in CBFS"
+	default "fsps.bin"
+
+config FSP_M_CBFS
+	string "Name of FSP-M in CBFS"
+	default "fspm.bin"
+
+endif
diff --git a/src/drivers/intel/fsp2_0/memory_init.c b/src/drivers/intel/fsp2_0/memory_init.c
index 8033937..c1c2fe4 100644
--- a/src/drivers/intel/fsp2_0/memory_init.c
+++ b/src/drivers/intel/fsp2_0/memory_init.c
@@ -65,8 +65,7 @@ enum fsp_status fsp_memory_init(void **hob_list, struct range_entry *range)
 {
 	struct fsp_header hdr;
 
-	/* TODO: do not hardcode CBFS file names */
-	if (fsp_load_binary(&hdr, "blobs/fspm.bin", range) != CB_SUCCESS)
+	if (fsp_load_binary(&hdr, CONFIG_FSP_M_CBFS, range) != CB_SUCCESS)
 		return FSP_NOT_FOUND;
 
 	return do_fsp_memory_init(hob_list, &hdr);
diff --git a/src/drivers/intel/fsp2_0/silicon_init.c b/src/drivers/intel/fsp2_0/silicon_init.c
index e7d8c54..18aded5 100644
--- a/src/drivers/intel/fsp2_0/silicon_init.c
+++ b/src/drivers/intel/fsp2_0/silicon_init.c
@@ -54,8 +54,7 @@ static enum fsp_status do_silicon_init(struct fsp_header *hdr)
 enum fsp_status fsp_silicon_init(struct range_entry *range)
 {
 	/* Load FSP-S and save FSP header. We will need it for Notify */
-	/* TODO: do not hardcode CBFS file names */
-	if (fsp_load_binary(&fsps_hdr, "blobs/fsps.bin", range) != CB_SUCCESS)
+	if (fsp_load_binary(&fsps_hdr, CONFIG_FSP_S_CBFS, range) != CB_SUCCESS)
 		return FSP_NOT_FOUND;
 
 	return do_silicon_init(&fsps_hdr);
diff --git a/src/soc/intel/apollolake/Kconfig b/src/soc/intel/apollolake/Kconfig
index 7bbc6da..2ed2edb 100644
--- a/src/soc/intel/apollolake/Kconfig
+++ b/src/soc/intel/apollolake/Kconfig
@@ -124,4 +124,10 @@ config CACHE_MRC_SETTINGS
 	bool
 	default y
 
+config FSP_M_ADDR
+	hex
+	default 0xfef60000
+	help
+	  The address FSP-M will be relocated to during build time
+
 endif
diff --git a/src/soc/intel/apollolake/Makefile.inc b/src/soc/intel/apollolake/Makefile.inc
index 240d3c2..63732b1 100644
--- a/src/soc/intel/apollolake/Makefile.inc
+++ b/src/soc/intel/apollolake/Makefile.inc
@@ -60,4 +60,7 @@ postcar-y += tsc_freq.c
 
 CPPFLAGS_common += -I$(src)/soc/intel/apollolake/include
 
+# Since FSP-M runs in CAR we need to relocate it to a specific address
+$(CONFIG_FSP_M_CBFS)-options := -b $(CONFIG_FSP_M_ADDR)
+
 endif



More information about the coreboot-gerrit mailing list