blob: 33277571f605893404fa09ded1e9ca9ecc8069fb [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 Gehlot91da19c2023-05-07 13:47:49 +00006ramstage-$(CONFIG_SOC_INTEL_CSE_LITE_SKU) += cse_lite_cmos.c
7romstage-$(CONFIG_SOC_INTEL_CSE_LITE_SKU) += cse_lite_cmos.c
Dinesh Gehlotd723a7b2023-02-20 10:25:25 +00008ramstage-$(CONFIG_SOC_INTEL_CSE_HAVE_SPEC_SUPPORT) += cse_spec.c
Subrata Banik32e06732022-01-28 02:05:15 +05309ramstage-$(CONFIG_SOC_INTEL_COMMON_BLOCK_CSE) += disable_heci.c
10smm-$(CONFIG_SOC_INTEL_COMMON_BLOCK_CSE) += disable_heci.c
Tim Wawrzynczak064ca182021-06-17 12:40:13 -060011ramstage-$(CONFIG_SOC_INTEL_CSE_SET_EOP) += cse_eop.c
Bora Guvendik860672e2021-09-26 17:25:48 -070012romstage-$(CONFIG_SOC_INTEL_CSE_PRE_CPU_RESET_TELEMETRY) += telemetry.c
Tim Wawrzynczak064ca182021-06-17 12:40:13 -060013
Furquan Shaikh6ef863c2021-10-01 11:39:48 -070014ifeq ($(CONFIG_STITCH_ME_BIN),y)
15
16CSE_BP1_BIN := $(objcse)/cse_bp1.bin
17CSE_BP2_BIN := $(objcse)/cse_bp2.bin
18CSE_LAYOUT_BIN := $(objcse)/cse_layout.bin
Furquan Shaikh3f0d6432021-10-09 00:08:56 -070019CSE_RW_FILE := $(CSE_BP2_BIN)
Furquan Shaikh6ef863c2021-10-01 11:39:48 -070020
21CSE_BPDT_VERSION := $(call strip_quotes,$(CONFIG_CSE_BPDT_VERSION))
22ifeq ($(CONFIG_CSE_BPDT_VERSION),)
23$(error "CONFIG_CSE_BPDT_VERSION is not set!")
24endif
25
26CSE_FPT_INPUT=$(call cse_input_path,$(CONFIG_CSE_FPT_FILE))
27CSE_DATA_INPUT=$(call cse_input_path,$(CONFIG_CSE_DATA_FILE))
28
Furquan Shaikh6ef863c2021-10-01 11:39:48 -070029get_cse_region_offset=$(call int-subtract,$(call get_fmap_value,$(1)) $(CSE_LAYOUT_OFFSET))
30
31CSE_LAYOUT_OFFSET=$(call get_fmap_value,FMAP_SECTION_CSE_LAYOUT_START)
32CSE_BP1_OFFSET=$(call get_cse_region_offset,FMAP_SECTION_CSE_RO_START)
33CSE_BP1_SIZE=$(call get_fmap_value,FMAP_SECTION_CSE_RO_SIZE)
34CSE_BP2_OFFSET=$(call get_cse_region_offset,FMAP_SECTION_CSE_RW_START)
35CSE_BP2_SIZE=$(call get_fmap_value,FMAP_SECTION_CSE_RW_SIZE)
36CSE_DP_OFFSET=$(call get_cse_region_offset,FMAP_SECTION_CSE_DATA_START)
37CSE_DP_SIZE=$(call get_fmap_value,FMAP_SECTION_CSE_DATA_SIZE)
38
39.PHONY: cse_inputs
40cse_inputs: $(cse_input_files)
41
42$(cse_decomp_files): $(CSE_FPT_INPUT) $(CSE_FPT)
43 printf " DUMP $(@F)\n"
44 $(CSE_FPT) $< dump -o $(objcse) -n $(@F) > /dev/null
45
46define cse_add_ingredient
47 $(if $($(2)-file), \
48 printf " CSEADD $(2) ($($(2)-file)) -> $(1)\n";
49 $(CSE_SERGER) $@ add -n $(2) -f $($(2)-file) > /dev/null,
50 printf " CSEADD $(2) (dummy) -> $(1)\n";
51 $(CSE_SERGER) $@ add -n $(2) > /dev/null)
52endef
53
54$(objcse)/cse_%.bin: $(CSE_SERGER) cse_inputs $(cse_decomp_files)
55 printf " CREATE $(@F) (version $(CSE_BPDT_VERSION))\n"
56 $(CSE_SERGER) $@ create-bpdt -v $(CSE_BPDT_VERSION) > /dev/null
57 $(foreach ingredient,$(cse_$*_ingredients),\
58 $(call cse_add_ingredient,$(@F),$(ingredient));)
59
Furquan Shaikhd0975ff2021-10-09 23:13:08 -070060$(OBJ_ME_BIN): $(CSE_BP1_BIN) $(CSE_BP2_BIN) $(CSE_DATA_INPUT) $(obj)/fmap_config.h
Furquan Shaikh6ef863c2021-10-01 11:39:48 -070061 printf " CREATE $(@F)\n"
Furquan Shaikhd0975ff2021-10-09 23:13:08 -070062 $(CSE_SERGER) $@ create-cse-region -v $(CSE_BPDT_VERSION) \
63 --bp1 $(CSE_BP1_OFFSET):$(CSE_BP1_SIZE) --bp1_file $(CSE_BP1_BIN) \
64 --bp2 $(CSE_BP2_OFFSET):$(CSE_BP2_SIZE) --bp2_file $(CSE_BP2_BIN) \
65 --dp $(CSE_DP_OFFSET):$(CSE_DP_SIZE) --dp_file $(CSE_DATA_INPUT) > /dev/null
Furquan Shaikh6ef863c2021-10-01 11:39:48 -070066
67endif
68
V Sowmya338b83c2020-11-11 07:04:13 +053069ifeq ($(CONFIG_SOC_INTEL_CSE_RW_UPDATE),y)
Furquan Shaikhd2da8702021-10-07 00:08:59 -070070
Furquan Shaikhd2da8702021-10-07 00:08:59 -070071ifeq ($(CONFIG_SOC_INTEL_CSE_RW_VERSION),"")
72$(error "CSE RW version is missing and need to be set by mainboard config")
73endif
74
Furquan Shaikh3f0d6432021-10-09 00:08:56 -070075ifneq ($(CONFIG_STITCH_ME_BIN),y)
76
77ifeq ($(CONFIG_SOC_INTEL_CSE_RW_FILE),"")
78$(error "CSE RW file path is missing and need to be set by mainboard config")
79endif
80CSE_RW_FILE := $(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_RW_FILE))
81
82endif
Furquan Shaikhd2da8702021-10-07 00:08:59 -070083
Sridhar Siricillab2353a72019-09-13 16:32:00 +053084CSE_LITE_ME_RW = $(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_RW_CBFS_NAME))
Rizwan Qureshid81d80c2023-09-29 07:31:17 +053085
86regions-for-file-$(CSE_LITE_ME_RW) = FW_MAIN_A,FW_MAIN_B
87
Sridhar Siricillab2353a72019-09-13 16:32:00 +053088cbfs-files-y += $(CSE_LITE_ME_RW)
Furquan Shaikhd2da8702021-10-07 00:08:59 -070089$(CSE_LITE_ME_RW)-file := $(CSE_RW_FILE)
Sridhar Siricillab2353a72019-09-13 16:32:00 +053090$(CSE_LITE_ME_RW)-name := $(CSE_LITE_ME_RW)
91$(CSE_LITE_ME_RW)-type := raw
Krishna Prasad Bhata67a92e2022-02-25 10:45:55 +053092ifeq ($(CONFIG_SOC_INTEL_CSE_LITE_COMPRESS_ME_RW),y)
93$(CSE_LITE_ME_RW)-compression := LZMA
94endif
V Sowmya338b83c2020-11-11 07:04:13 +053095
Furquan Shaikhd2da8702021-10-07 00:08:59 -070096$(obj)/cse_rw.version:
97 @echo '$(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_RW_VERSION))' > $@
V Sowmya338b83c2020-11-11 07:04:13 +053098
Furquan Shaikhd2da8702021-10-07 00:08:59 -070099CSE_RW_VERSION = $(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_RW_VERSION_CBFS_NAME))
100regions-for-file-$(CSE_RW_VERSION) = FW_MAIN_A,FW_MAIN_B
101cbfs-files-y += $(CSE_RW_VERSION)
102$(CSE_RW_VERSION)-file := $(obj)/cse_rw.version
103$(CSE_RW_VERSION)-name := $(CSE_RW_VERSION)
104$(CSE_RW_VERSION)-type := raw
V Sowmya338b83c2020-11-11 07:04:13 +0530105
Krishna Prasad Bhat333edcc2021-11-26 06:52:27 +0530106endif
Furquan Shaikhd2da8702021-10-07 00:08:59 -0700107
Krishna Prasad Bhat333edcc2021-11-26 06:52:27 +0530108ifeq ($(CONFIG_SOC_INTEL_CSE_SUB_PART_UPDATE),y)
109
110CSE_IOM_FILE = $(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_IOM_CBFS_FILE))
111CSE_IOM = $(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_IOM_CBFS_NAME))
112regions-for-file-$(CSE_IOM) = FW_MAIN_A,FW_MAIN_B,COREBOOT
113cbfs-files-y += $(CSE_IOM)
114$(CSE_IOM)-file := $(CSE_IOM_FILE)
115$(CSE_IOM)-name := $(CSE_IOM)
116$(CSE_IOM)-type := raw
117
118CSE_NPHY_FILE = $(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_NPHY_CBFS_FILE))
119CSE_NPHY = $(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_NPHY_CBFS_NAME))
120regions-for-file-$(CSE_NPHY) = FW_MAIN_A,FW_MAIN_B,COREBOOT
121cbfs-files-y += $(CSE_NPHY)
122$(CSE_NPHY)-file := $(CSE_NPHY_FILE)
123$(CSE_NPHY)-name := $(CSE_NPHY)
124$(CSE_NPHY)-type := raw
Sridhar Siricillab2353a72019-09-13 16:32:00 +0530125endif