Alexandru Gagniuc (mr.nuke.me@gmail.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/13400
-gerrit
commit 87c53f6edb5191b94b415f34c1b845be7dec5654 Author: Alexandru Gagniuc alexandrux.gagniuc@intel.com Date: Wed Dec 16 14:47:17 2015 -0800
drivers/intel/fsp2_0: Do not relocate FIT data to FSP stack
With the newer FSP versions, we can simply pass in a pointer to the FIT data, instead of needing to copy it to FSP's stack.
Change-Id: I695759bd775e4cf7a206c56d1ffc4619bae5c724 Signed-off-by: Alexandru Gagniuc alexandrux.gagniuc@intel.com --- src/drivers/intel/fsp2_0/Kconfig | 7 +------ src/drivers/intel/fsp2_0/memory_init.c | 14 ++------------ 2 files changed, 3 insertions(+), 18 deletions(-)
diff --git a/src/drivers/intel/fsp2_0/Kconfig b/src/drivers/intel/fsp2_0/Kconfig index bfba51a..683c7df 100644 --- a/src/drivers/intel/fsp2_0/Kconfig +++ b/src/drivers/intel/fsp2_0/Kconfig @@ -39,10 +39,6 @@ config VBT_FILE help The path and filename of the VBT binary for this platform.
-config FIT_CAR_ADDR - hex - default 0xfef2dc00 - # Cache As RAM region layout: # # +-------------+ DCACHE_RAM_BASE + DCACHE_RAM_SIZE [0xff000000] @@ -56,8 +52,7 @@ config FIT_CAR_ADDR # | romstage | # | code | # +-------------+ ROMSTAGE_CAR_ADDR [0xfef2e000] -# | FIT TABLE | -# +-------------+ FIT_CAR_ADDR [0xfef2dc00] +# | | # | FSP-M | # | stack/data | # +-------------+ DCACHE_RAM_BASE + 0x4000 [0xfef04000] diff --git a/src/drivers/intel/fsp2_0/memory_init.c b/src/drivers/intel/fsp2_0/memory_init.c index 84f6fe1..c9acb94c 100644 --- a/src/drivers/intel/fsp2_0/memory_init.c +++ b/src/drivers/intel/fsp2_0/memory_init.c @@ -83,6 +83,7 @@ static enum fsp_status do_fsp_memory_init(void **hob_list_ptr,
/* Update the UPD data */ raminit_upd.GpioPadInitTablePtr = NULL; + raminit_upd.FitTablePtr = read32((void *)FIT_POINTER); fill_console_params(&raminit_upd); platform_fsp_memory_init_params_cb(&raminit_upd);
@@ -103,23 +104,12 @@ static enum fsp_status do_fsp_memory_init(void **hob_list_ptr, return status; }
-/* - * Relocate FIT table to FSP-M's stack/data space - * - * FSP-M expects to find FIT entries at some address hardcoded in FSP. - */ -static void relocate_fit(void) -{ - uint32_t fit_loc = read32((void *)FIT_POINTER); - memcpy((void*)CONFIG_FIT_CAR_ADDR, (void*)fit_loc, FIT_SIZE); -} - enum fsp_status fsp_memory_init(void **hob_list, size_t tolum_size) { struct fsp_header hdr;
if (fsp_load_binary(&hdr, "blobs/fsp-m.bin") != CB_SUCCESS) return FSP_NOT_FOUND; - relocate_fit(); + return do_fsp_memory_init(hob_list, &hdr, tolum_size); }