aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.inc12
-rw-r--r--src/soc/intel/Kconfig11
2 files changed, 21 insertions, 2 deletions
diff --git a/Makefile.inc b/Makefile.inc
index c8fefa1d40..6884a90967 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -958,6 +958,7 @@ $(obj)/fmap.fmap: $(obj)/fmap.fmd $(FMAPTOOL)
ifeq ($(CONFIG_INTEL_ADD_TOP_SWAP_BOOTBLOCK),y)
TS_OPTIONS := -j $(CONFIG_INTEL_TOP_SWAP_BOOTBLOCK_SIZE)
+FIT_OPTIONS := $(TS_OPTIONS)
endif
ifneq ($(CONFIG_UPDATE_IMAGE),y)
$(obj)/coreboot.pre: $(objcbfs)/bootblock.bin $$(prebuilt-files) $(CBFSTOOL) $$(cpu_ucode_cbfs_file) $(obj)/fmap.fmap $(obj)/fmap.desc
@@ -1003,6 +1004,11 @@ $(REFCODE_BLOB): $(RMODTOOL)
$(RMODTOOL) -i $(CONFIG_REFCODE_BLOB_FILE) -o $@
endif
+FIT_ENTRY=$(call strip_quotes, $(CONFIG_INTEL_TOP_SWAP_FIT_ENTRY_FMAP_REG))
+ifneq ($(FIT_ENTRY),)
+FIT_OPTIONS += -q $(FIT_ENTRY)
+endif
+
$(obj)/coreboot.rom: $(obj)/coreboot.pre $(objcbfs)/ramstage.elf $(CBFSTOOL) $$(INTERMEDIATE)
@printf " CBFS $(subst $(obj)/,,$(@))\n"
# The full ROM may be larger than the CBFS part, so create an empty
@@ -1020,12 +1026,14 @@ endif
ifeq ($(CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE),y)
ifeq ($(CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER),y)
@printf " UPDATE-FIT\n"
- $(CBFSTOOL) $@.tmp update-fit -n cpu_microcode_blob.bin -x $(CONFIG_CPU_INTEL_NUM_FIT_ENTRIES)
+ $(CBFSTOOL) $@.tmp update-fit -n cpu_microcode_blob.bin -x $(CONFIG_CPU_INTEL_NUM_FIT_ENTRIES) \
+ $(FIT_OPTIONS)
endif
ifeq ($(CONFIG_CPU_MICROCODE_CBFS_GENERATE),y)
@printf " UPDATE-FIT\n"
- $(CBFSTOOL) $@.tmp update-fit -n cpu_microcode_blob.bin -x $(CONFIG_CPU_INTEL_NUM_FIT_ENTRIES)
+ $(CBFSTOOL) $@.tmp update-fit -n cpu_microcode_blob.bin -x $(CONFIG_CPU_INTEL_NUM_FIT_ENTRIES) \
+ $(FIT_OPTIONS)
endif
endif
mv $@.tmp $@
diff --git a/src/soc/intel/Kconfig b/src/soc/intel/Kconfig
index fb2643ba4d..5b4a9a2095 100644
--- a/src/soc/intel/Kconfig
+++ b/src/soc/intel/Kconfig
@@ -37,3 +37,14 @@ config INTEL_TOP_SWAP_BOOTBLOCK_SIZE
help
Set this config to a supported topswap size.
Valid sizes: 0x10000 0x20000 0x40000 0x80000 0x100000
+
+config INTEL_TOP_SWAP_FIT_ENTRY_FMAP_REG
+ string
+ depends on INTEL_ADD_TOP_SWAP_BOOTBLOCK
+ help
+ Use this config to specify the name of a FMAP region (which should
+ hold a microcode) whose address as the first entry in the topswap FIT.
+ This is useful in creating a asymmetric FIT in top swap bootblock
+ than the one in non-topswap bootblock. This string will be passed
+ onto cbfstool (-q option). cbfstool will not parse the region for MCU
+ entries, and only locate the region and insert its address into FIT.