1## SPDX-License-Identifier: GPL-2.0-only 2 3bootblock-y += fit.c 4 5# The FIT table is generated as a separate CBFS file. 6# The FIT pointer is reserved in fit.c and updated to point to the 'intel_fit' 7# CBFS file using 'ifittool -F'. 8# With a TOP_SWAP enabled bootblock the FIT pointer at the top swap offset 9# will point to the 'intel_fit_ts' CBFS file. 10 11cbfs-files-y += intel_fit 12intel_fit-file := fit_table.c:struct 13intel_fit-type := intel_fit 14intel_fit-align := 16 15 16$(call add_intermediate, set_fit_ptr, $(IFITTOOL)) 17 @printf " UPDATE-FIT set FIT pointer to table\n" 18 $(IFITTOOL) -f $< -F -n intel_fit -r COREBOOT -c 19 20FIT_ENTRY=$(call strip_quotes, $(CONFIG_INTEL_TOP_SWAP_FIT_ENTRY_FMAP_REG)) 21 22ifneq ($(CONFIG_UPDATE_IMAGE),y) # never update the bootblock 23 24ifneq ($(CONFIG_CPU_MICROCODE_CBFS_NONE)$(CONFIG_CPU_INTEL_MICROCODE_CBFS_SPLIT_BINS),y) 25 26$(call add_intermediate, add_mcu_fit, set_fit_ptr $(IFITTOOL)) 27 @printf " UPDATE-FIT Microcode\n" 28 $(IFITTOOL) -f $< -a -n cpu_microcode_blob.bin -t 1 -s $(CONFIG_CPU_INTEL_NUM_FIT_ENTRIES) -r COREBOOT 29 30# Second FIT in TOP_SWAP bootblock 31ifeq ($(CONFIG_INTEL_ADD_TOP_SWAP_BOOTBLOCK),y) 32 33$(call add_intermediate, set_ts_fit_ptr, $(IFITTOOL)) 34 @printf " UPDATE-FIT Top Swap: set FIT pointer to table\n" 35 $(IFITTOOL) -f $< -F -n intel_fit_ts -r COREBOOT $(TS_OPTIONS) 36 37$(call add_intermediate, add_ts_mcu_fit, set_ts_fit_ptr $(IFITTOOL)) 38 @printf " UPDATE-FIT Top Swap: Microcode\n" 39ifneq ($(FIT_ENTRY),) 40 $(IFITTOOL) -f $< -A -n $(FIT_ENTRY) -t 1 -s $(CONFIG_CPU_INTEL_NUM_FIT_ENTRIES) $(TS_OPTIONS) -r COREBOOT 41endif # FIT_ENTRY 42 $(IFITTOOL) -f $< -a -n cpu_microcode_blob.bin -t 1 -s $(CONFIG_CPU_INTEL_NUM_FIT_ENTRIES) $(TS_OPTIONS) -r COREBOOT 43 44cbfs-files-y += intel_fit_ts 45intel_fit_ts-file := fit_table.c:struct 46intel_fit_ts-type := intel_fit 47intel_fit_ts-align := 16 48 49endif # CONFIG_INTEL_ADD_TOP_SWAP_BOOTBLOCK 50 51endif # CONFIG_CPU_MICROCODE_CBFS_NONE 52 53endif # CONFIG_UPDATE_IMAGE 54