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:
parent
d35c264b71
commit
3ecfdbde14
|
@ -21,17 +21,6 @@ romstage-$(CONFIG_ENABLE_MRC_CACHE) += fastboot_cache.c
|
||||||
|
|
||||||
CPPFLAGS_common += -Isrc/drivers/intel/fsp1_0 -I$(objgenerated)
|
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
|
cpu_incs-$(CONFIG_USE_GENERIC_FSP_CAR_INC) += $(src)/drivers/intel/fsp1_0/cache_as_ram.inc
|
||||||
|
|
||||||
ifeq ($(CONFIG_HAVE_FSP_BIN),y)
|
ifeq ($(CONFIG_HAVE_FSP_BIN),y)
|
||||||
|
|
|
@ -18,15 +18,10 @@
|
||||||
#include <cpu/x86/mtrr.h>
|
#include <cpu/x86/mtrr.h>
|
||||||
#include <cpu/x86/cache.h>
|
#include <cpu/x86/cache.h>
|
||||||
#include <cpu/x86/post_code.h>
|
#include <cpu/x86/post_code.h>
|
||||||
#include <microcode_size.h>
|
|
||||||
#include <cbmem.h>
|
#include <cbmem.h>
|
||||||
|
|
||||||
#ifndef CONFIG_FSP_LOC
|
#ifndef CONFIG_FSP_LOC
|
||||||
# error "CONFIG_FSP_LOC must be set."
|
# error "CONFIG_FSP_LOC must be set."
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef CONFIG_CPU_MICROCODE_CBFS_LOC
|
|
||||||
# error "CONFIG_CPU_MICROCODE_CBFS_LOC must be set."
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
cmp $0, %eax
|
cmp $0, %eax
|
||||||
|
@ -120,11 +115,14 @@ fake_fsp_stack:
|
||||||
.long find_fsp_ret
|
.long find_fsp_ret
|
||||||
|
|
||||||
CAR_init_params:
|
CAR_init_params:
|
||||||
.long CONFIG_CPU_MICROCODE_CBFS_LOC
|
.long dummy_microcode
|
||||||
.long MICROCODE_REGION_LENGTH
|
.long 0
|
||||||
.long 0xFFFFFFFF - CACHE_ROM_SIZE + 1 /* Firmware Location */
|
.long 0xFFFFFFFF - CACHE_ROM_SIZE + 1 /* Firmware Location */
|
||||||
.long CACHE_ROM_SIZE /* Total Firmware Length */
|
.long CACHE_ROM_SIZE /* Total Firmware Length */
|
||||||
|
|
||||||
CAR_init_stack:
|
CAR_init_stack:
|
||||||
.long CAR_init_done
|
.long CAR_init_done
|
||||||
.long CAR_init_params
|
.long CAR_init_params
|
||||||
|
|
||||||
|
dummy_microcode:
|
||||||
|
.long 0
|
||||||
|
|
Loading…
Reference in New Issue