blob: a86a22e6d63f47bf952ae081c31fd55fc032ddc4 [file] [log] [blame]
Martin Rothf6ca89c2023-08-04 12:06:21 -06001## SPDX-License-Identifier: GPL-2.0-only
2
Arthur Heymansc9aecb42021-03-16 16:53:00 +01003bootblock-y += fit.c
Arthur Heymans0f340542020-10-14 16:35:11 +02004
Arthur Heymanseeacd832021-02-19 17:14:23 +01005# 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
Julius Werneraf20fd72022-05-27 18:33:15 -070013intel_fit-type := intel_fit
Arthur Heymanseeacd832021-02-19 17:14:23 +010014intel_fit-align := 16
15
16$(call add_intermediate, set_fit_ptr, $(IFITTOOL))
17 @printf " UPDATE-FIT set FIT pointer to table\n"
Arthur Heymans422fdce2022-03-23 19:59:59 +010018 $(IFITTOOL) -f $< -F -n intel_fit -r COREBOOT -c
Arthur Heymanseeacd832021-02-19 17:14:23 +010019
Arthur Heymans0f340542020-10-14 16:35:11 +020020FIT_ENTRY=$(call strip_quotes, $(CONFIG_INTEL_TOP_SWAP_FIT_ENTRY_FMAP_REG))
21
22ifneq ($(CONFIG_UPDATE_IMAGE),y) # never update the bootblock
23
Subrata Banik3c1b7b42023-05-20 16:28:18 +053024ifneq ($(CONFIG_CPU_MICROCODE_CBFS_NONE)$(CONFIG_CPU_INTEL_MICROCODE_CBFS_SPLIT_BINS),y)
Arthur Heymans0f340542020-10-14 16:35:11 +020025
Arthur Heymans95761c52021-07-06 12:26:41 +020026$(call add_intermediate, add_mcu_fit, set_fit_ptr $(IFITTOOL))
Arthur Heymans0f340542020-10-14 16:35:11 +020027 @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
Arthur Heymans0d93ca42021-05-19 14:47:59 +020033$(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
Arthur Heymans95761c52021-07-06 12:26:41 +020037$(call add_intermediate, add_ts_mcu_fit, set_ts_fit_ptr $(IFITTOOL))
Arthur Heymans0f340542020-10-14 16:35:11 +020038 @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
Arthur Heymanseeacd832021-02-19 17:14:23 +010044cbfs-files-y += intel_fit_ts
45intel_fit_ts-file := fit_table.c:struct
Julius Werneraf20fd72022-05-27 18:33:15 -070046intel_fit_ts-type := intel_fit
Arthur Heymanseeacd832021-02-19 17:14:23 +010047intel_fit_ts-align := 16
48
Arthur Heymans0f340542020-10-14 16:35:11 +020049endif # CONFIG_INTEL_ADD_TOP_SWAP_BOOTBLOCK
50
51endif # CONFIG_CPU_MICROCODE_CBFS_NONE
52
53endif # CONFIG_UPDATE_IMAGE