blob: ad15dc4f940dd55052ff110d6a88e571dbdc9439 [file] [log] [blame]
Martin Roth9231f0b2022-10-28 22:39:23 -06001## SPDX-License-Identifier: GPL-2.0-only
Andrey Petrov04a72c42017-03-01 15:51:57 -08002romstage-$(CONFIG_SOC_INTEL_COMMON_BLOCK_CSE) += cse.c
3ramstage-$(CONFIG_SOC_INTEL_COMMON_BLOCK_CSE) += cse.c
Sridhar Siricilla1a2b7022020-12-04 02:22:28 +05304romstage-$(CONFIG_SOC_INTEL_CSE_LITE_SKU) += cse_lite.c
Bora Guvendikf33c9bf2021-11-05 23:09:25 -07005ramstage-$(CONFIG_SOC_INTEL_CSE_LITE_SKU) += cse_lite.c
Dinesh Gehlotd723a7b2023-02-20 10:25:25 +00006ramstage-$(CONFIG_SOC_INTEL_CSE_HAVE_SPEC_SUPPORT) += cse_spec.c
Subrata Banik32e06732022-01-28 02:05:15 +05307ramstage-$(CONFIG_SOC_INTEL_COMMON_BLOCK_CSE) += disable_heci.c
8smm-$(CONFIG_SOC_INTEL_COMMON_BLOCK_CSE) += disable_heci.c
Tim Wawrzynczak064ca182021-06-17 12:40:13 -06009ramstage-$(CONFIG_SOC_INTEL_CSE_SET_EOP) += cse_eop.c
Bora Guvendik860672e2021-09-26 17:25:48 -070010romstage-$(CONFIG_SOC_INTEL_CSE_PRE_CPU_RESET_TELEMETRY) += telemetry.c
Tim Wawrzynczak064ca182021-06-17 12:40:13 -060011
Furquan Shaikh6ef863c2021-10-01 11:39:48 -070012ifeq ($(CONFIG_STITCH_ME_BIN),y)
13
14CSE_BP1_BIN := $(objcse)/cse_bp1.bin
15CSE_BP2_BIN := $(objcse)/cse_bp2.bin
16CSE_LAYOUT_BIN := $(objcse)/cse_layout.bin
Furquan Shaikh3f0d6432021-10-09 00:08:56 -070017CSE_RW_FILE := $(CSE_BP2_BIN)
Furquan Shaikh6ef863c2021-10-01 11:39:48 -070018
19CSE_BPDT_VERSION := $(call strip_quotes,$(CONFIG_CSE_BPDT_VERSION))
20ifeq ($(CONFIG_CSE_BPDT_VERSION),)
21$(error "CONFIG_CSE_BPDT_VERSION is not set!")
22endif
23
24CSE_FPT_INPUT=$(call cse_input_path,$(CONFIG_CSE_FPT_FILE))
25CSE_DATA_INPUT=$(call cse_input_path,$(CONFIG_CSE_DATA_FILE))
26
Furquan Shaikh6ef863c2021-10-01 11:39:48 -070027get_cse_region_offset=$(call int-subtract,$(call get_fmap_value,$(1)) $(CSE_LAYOUT_OFFSET))
28
29CSE_LAYOUT_OFFSET=$(call get_fmap_value,FMAP_SECTION_CSE_LAYOUT_START)
30CSE_BP1_OFFSET=$(call get_cse_region_offset,FMAP_SECTION_CSE_RO_START)
31CSE_BP1_SIZE=$(call get_fmap_value,FMAP_SECTION_CSE_RO_SIZE)
32CSE_BP2_OFFSET=$(call get_cse_region_offset,FMAP_SECTION_CSE_RW_START)
33CSE_BP2_SIZE=$(call get_fmap_value,FMAP_SECTION_CSE_RW_SIZE)
34CSE_DP_OFFSET=$(call get_cse_region_offset,FMAP_SECTION_CSE_DATA_START)
35CSE_DP_SIZE=$(call get_fmap_value,FMAP_SECTION_CSE_DATA_SIZE)
36
37.PHONY: cse_inputs
38cse_inputs: $(cse_input_files)
39
40$(cse_decomp_files): $(CSE_FPT_INPUT) $(CSE_FPT)
41 printf " DUMP $(@F)\n"
42 $(CSE_FPT) $< dump -o $(objcse) -n $(@F) > /dev/null
43
44define cse_add_ingredient
45 $(if $($(2)-file), \
46 printf " CSEADD $(2) ($($(2)-file)) -> $(1)\n";
47 $(CSE_SERGER) $@ add -n $(2) -f $($(2)-file) > /dev/null,
48 printf " CSEADD $(2) (dummy) -> $(1)\n";
49 $(CSE_SERGER) $@ add -n $(2) > /dev/null)
50endef
51
52$(objcse)/cse_%.bin: $(CSE_SERGER) cse_inputs $(cse_decomp_files)
53 printf " CREATE $(@F) (version $(CSE_BPDT_VERSION))\n"
54 $(CSE_SERGER) $@ create-bpdt -v $(CSE_BPDT_VERSION) > /dev/null
55 $(foreach ingredient,$(cse_$*_ingredients),\
56 $(call cse_add_ingredient,$(@F),$(ingredient));)
57
Furquan Shaikhd0975ff2021-10-09 23:13:08 -070058$(OBJ_ME_BIN): $(CSE_BP1_BIN) $(CSE_BP2_BIN) $(CSE_DATA_INPUT) $(obj)/fmap_config.h
Furquan Shaikh6ef863c2021-10-01 11:39:48 -070059 printf " CREATE $(@F)\n"
Furquan Shaikhd0975ff2021-10-09 23:13:08 -070060 $(CSE_SERGER) $@ create-cse-region -v $(CSE_BPDT_VERSION) \
61 --bp1 $(CSE_BP1_OFFSET):$(CSE_BP1_SIZE) --bp1_file $(CSE_BP1_BIN) \
62 --bp2 $(CSE_BP2_OFFSET):$(CSE_BP2_SIZE) --bp2_file $(CSE_BP2_BIN) \
63 --dp $(CSE_DP_OFFSET):$(CSE_DP_SIZE) --dp_file $(CSE_DATA_INPUT) > /dev/null
Furquan Shaikh6ef863c2021-10-01 11:39:48 -070064
65endif
66
V Sowmya338b83c2020-11-11 07:04:13 +053067ifeq ($(CONFIG_SOC_INTEL_CSE_RW_UPDATE),y)
Furquan Shaikhd2da8702021-10-07 00:08:59 -070068
Furquan Shaikhd2da8702021-10-07 00:08:59 -070069ifeq ($(CONFIG_SOC_INTEL_CSE_RW_VERSION),"")
70$(error "CSE RW version is missing and need to be set by mainboard config")
71endif
72
Furquan Shaikh3f0d6432021-10-09 00:08:56 -070073ifneq ($(CONFIG_STITCH_ME_BIN),y)
74
75ifeq ($(CONFIG_SOC_INTEL_CSE_RW_FILE),"")
76$(error "CSE RW file path is missing and need to be set by mainboard config")
77endif
78CSE_RW_FILE := $(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_RW_FILE))
79
80endif
Furquan Shaikhd2da8702021-10-07 00:08:59 -070081
Sridhar Siricillab2353a72019-09-13 16:32:00 +053082CSE_LITE_ME_RW = $(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_RW_CBFS_NAME))
Sridhar Siricilla361e3642020-10-18 20:14:07 +053083regions-for-file-$(CSE_LITE_ME_RW) = $(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_RW_A_FMAP_NAME)), \
84 $(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_RW_B_FMAP_NAME))
Sridhar Siricillab2353a72019-09-13 16:32:00 +053085cbfs-files-y += $(CSE_LITE_ME_RW)
Furquan Shaikhd2da8702021-10-07 00:08:59 -070086$(CSE_LITE_ME_RW)-file := $(CSE_RW_FILE)
Sridhar Siricillab2353a72019-09-13 16:32:00 +053087$(CSE_LITE_ME_RW)-name := $(CSE_LITE_ME_RW)
88$(CSE_LITE_ME_RW)-type := raw
Krishna Prasad Bhata67a92e2022-02-25 10:45:55 +053089ifeq ($(CONFIG_SOC_INTEL_CSE_LITE_COMPRESS_ME_RW),y)
90$(CSE_LITE_ME_RW)-compression := LZMA
91endif
V Sowmya338b83c2020-11-11 07:04:13 +053092
Furquan Shaikhd2da8702021-10-07 00:08:59 -070093$(obj)/cse_rw.version:
94 @echo '$(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_RW_VERSION))' > $@
V Sowmya338b83c2020-11-11 07:04:13 +053095
Furquan Shaikhd2da8702021-10-07 00:08:59 -070096CSE_RW_VERSION = $(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_RW_VERSION_CBFS_NAME))
97regions-for-file-$(CSE_RW_VERSION) = FW_MAIN_A,FW_MAIN_B
98cbfs-files-y += $(CSE_RW_VERSION)
99$(CSE_RW_VERSION)-file := $(obj)/cse_rw.version
100$(CSE_RW_VERSION)-name := $(CSE_RW_VERSION)
101$(CSE_RW_VERSION)-type := raw
V Sowmya338b83c2020-11-11 07:04:13 +0530102
Furquan Shaikhd2da8702021-10-07 00:08:59 -0700103$(obj)/cse_rw.hash: $(CSE_RW_FILE)
104 openssl dgst -sha256 -binary $< > $@
105
106CSE_RW_HASH = $(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_RW_HASH_CBFS_NAME))
107regions-for-file-$(CSE_RW_HASH) = FW_MAIN_A,FW_MAIN_B
108cbfs-files-y += $(CSE_RW_HASH)
109$(CSE_RW_HASH)-file := $(obj)/cse_rw.hash
110$(CSE_RW_HASH)-name := $(CSE_RW_HASH)
111$(CSE_RW_HASH)-type := raw
Krishna Prasad Bhat333edcc2021-11-26 06:52:27 +0530112endif
Furquan Shaikhd2da8702021-10-07 00:08:59 -0700113
Krishna Prasad Bhat333edcc2021-11-26 06:52:27 +0530114ifeq ($(CONFIG_SOC_INTEL_CSE_SUB_PART_UPDATE),y)
115
116CSE_IOM_FILE = $(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_IOM_CBFS_FILE))
117CSE_IOM = $(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_IOM_CBFS_NAME))
118regions-for-file-$(CSE_IOM) = FW_MAIN_A,FW_MAIN_B,COREBOOT
119cbfs-files-y += $(CSE_IOM)
120$(CSE_IOM)-file := $(CSE_IOM_FILE)
121$(CSE_IOM)-name := $(CSE_IOM)
122$(CSE_IOM)-type := raw
123
124CSE_NPHY_FILE = $(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_NPHY_CBFS_FILE))
125CSE_NPHY = $(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_NPHY_CBFS_NAME))
126regions-for-file-$(CSE_NPHY) = FW_MAIN_A,FW_MAIN_B,COREBOOT
127cbfs-files-y += $(CSE_NPHY)
128$(CSE_NPHY)-file := $(CSE_NPHY_FILE)
129$(CSE_NPHY)-name := $(CSE_NPHY)
130$(CSE_NPHY)-type := raw
Sridhar Siricillab2353a72019-09-13 16:32:00 +0530131endif