intel/fsp1_0: Use dummy microcode when calling FSP TempRamInit

Pass in dummy microcode when calling FSP TempRamInit API. FSP will not
do the microcode load and leave the work to coreboot.
Ensure that BSP has been loaded a microcode before calling TempRamInit
API, otherwise FSP will return error that No Valid Microcode Was Found.
Change has been verified on fsp_baytrail and will be applied to rangeley.

Change-Id: I8247c0503c8eb3d1c8eaa059632fb3a11c9daae9
Signed-off-by: York Yang <york.yang@intel.com>
Reviewed-on: http://review.coreboot.org/11895
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
This commit is contained in:
York Yang 2015-10-14 06:52:32 -07:00 committed by Martin Roth
parent d35c264b71
commit 3ecfdbde14
2 changed files with 5 additions and 18 deletions

View File

@ -21,17 +21,6 @@ romstage-$(CONFIG_ENABLE_MRC_CACHE) += fastboot_cache.c
CPPFLAGS_common += -Isrc/drivers/intel/fsp1_0 -I$(objgenerated)
ifneq ($(cpu_microcode_bins),)
$(objgenerated)/microcode_size.h: $(obj)/cpu_microcode_blob.bin
printf "#define MICROCODE_REGION_LENGTH $(call file-size,$<)" > $@.tmp \
&& cmp $@.tmp $@ 2>/dev/null || mv $@.tmp $@
else
$(objgenerated)/microcode_size.h:
printf "#define MICROCODE_REGION_LENGTH 0" > $@.tmp \
&& cmp $@.tmp $@ 2>/dev/null || mv $@.tmp $@
endif
cpu_incs-$(CONFIG_PLATFORM_USES_FSP1_0) += $(objgenerated)/microcode_size.h
cpu_incs-$(CONFIG_USE_GENERIC_FSP_CAR_INC) += $(src)/drivers/intel/fsp1_0/cache_as_ram.inc
ifeq ($(CONFIG_HAVE_FSP_BIN),y)

View File

@ -18,15 +18,10 @@
#include <cpu/x86/mtrr.h>
#include <cpu/x86/cache.h>
#include <cpu/x86/post_code.h>
#include <microcode_size.h>
#include <cbmem.h>
#ifndef CONFIG_FSP_LOC
# error "CONFIG_FSP_LOC must be set."
#endif
#ifndef CONFIG_CPU_MICROCODE_CBFS_LOC
# error "CONFIG_CPU_MICROCODE_CBFS_LOC must be set."
#endif
cmp $0, %eax
@ -120,11 +115,14 @@ fake_fsp_stack:
.long find_fsp_ret
CAR_init_params:
.long CONFIG_CPU_MICROCODE_CBFS_LOC
.long MICROCODE_REGION_LENGTH
.long dummy_microcode
.long 0
.long 0xFFFFFFFF - CACHE_ROM_SIZE + 1 /* Firmware Location */
.long CACHE_ROM_SIZE /* Total Firmware Length */
CAR_init_stack:
.long CAR_init_done
.long CAR_init_params
dummy_microcode:
.long 0