Martin Roth | 9231f0b | 2022-10-28 22:39:23 -0600 | [diff] [blame] | 1 | ## SPDX-License-Identifier: GPL-2.0-only |
Andrey Petrov | 04a72c4 | 2017-03-01 15:51:57 -0800 | [diff] [blame] | 2 | romstage-$(CONFIG_SOC_INTEL_COMMON_BLOCK_CSE) += cse.c |
| 3 | ramstage-$(CONFIG_SOC_INTEL_COMMON_BLOCK_CSE) += cse.c |
Sridhar Siricilla | 1a2b702 | 2020-12-04 02:22:28 +0530 | [diff] [blame] | 4 | romstage-$(CONFIG_SOC_INTEL_CSE_LITE_SKU) += cse_lite.c |
Bora Guvendik | f33c9bf | 2021-11-05 23:09:25 -0700 | [diff] [blame] | 5 | ramstage-$(CONFIG_SOC_INTEL_CSE_LITE_SKU) += cse_lite.c |
Dinesh Gehlot | d723a7b | 2023-02-20 10:25:25 +0000 | [diff] [blame] | 6 | ramstage-$(CONFIG_SOC_INTEL_CSE_HAVE_SPEC_SUPPORT) += cse_spec.c |
Subrata Banik | 32e0673 | 2022-01-28 02:05:15 +0530 | [diff] [blame] | 7 | ramstage-$(CONFIG_SOC_INTEL_COMMON_BLOCK_CSE) += disable_heci.c |
| 8 | smm-$(CONFIG_SOC_INTEL_COMMON_BLOCK_CSE) += disable_heci.c |
Tim Wawrzynczak | 064ca18 | 2021-06-17 12:40:13 -0600 | [diff] [blame] | 9 | ramstage-$(CONFIG_SOC_INTEL_CSE_SET_EOP) += cse_eop.c |
Bora Guvendik | 860672e | 2021-09-26 17:25:48 -0700 | [diff] [blame] | 10 | romstage-$(CONFIG_SOC_INTEL_CSE_PRE_CPU_RESET_TELEMETRY) += telemetry.c |
Tim Wawrzynczak | 064ca18 | 2021-06-17 12:40:13 -0600 | [diff] [blame] | 11 | |
Furquan Shaikh | 6ef863c | 2021-10-01 11:39:48 -0700 | [diff] [blame] | 12 | ifeq ($(CONFIG_STITCH_ME_BIN),y) |
| 13 | |
| 14 | CSE_BP1_BIN := $(objcse)/cse_bp1.bin |
| 15 | CSE_BP2_BIN := $(objcse)/cse_bp2.bin |
| 16 | CSE_LAYOUT_BIN := $(objcse)/cse_layout.bin |
Furquan Shaikh | 3f0d643 | 2021-10-09 00:08:56 -0700 | [diff] [blame] | 17 | CSE_RW_FILE := $(CSE_BP2_BIN) |
Furquan Shaikh | 6ef863c | 2021-10-01 11:39:48 -0700 | [diff] [blame] | 18 | |
| 19 | CSE_BPDT_VERSION := $(call strip_quotes,$(CONFIG_CSE_BPDT_VERSION)) |
| 20 | ifeq ($(CONFIG_CSE_BPDT_VERSION),) |
| 21 | $(error "CONFIG_CSE_BPDT_VERSION is not set!") |
| 22 | endif |
| 23 | |
| 24 | CSE_FPT_INPUT=$(call cse_input_path,$(CONFIG_CSE_FPT_FILE)) |
| 25 | CSE_DATA_INPUT=$(call cse_input_path,$(CONFIG_CSE_DATA_FILE)) |
| 26 | |
Furquan Shaikh | 6ef863c | 2021-10-01 11:39:48 -0700 | [diff] [blame] | 27 | get_cse_region_offset=$(call int-subtract,$(call get_fmap_value,$(1)) $(CSE_LAYOUT_OFFSET)) |
| 28 | |
| 29 | CSE_LAYOUT_OFFSET=$(call get_fmap_value,FMAP_SECTION_CSE_LAYOUT_START) |
| 30 | CSE_BP1_OFFSET=$(call get_cse_region_offset,FMAP_SECTION_CSE_RO_START) |
| 31 | CSE_BP1_SIZE=$(call get_fmap_value,FMAP_SECTION_CSE_RO_SIZE) |
| 32 | CSE_BP2_OFFSET=$(call get_cse_region_offset,FMAP_SECTION_CSE_RW_START) |
| 33 | CSE_BP2_SIZE=$(call get_fmap_value,FMAP_SECTION_CSE_RW_SIZE) |
| 34 | CSE_DP_OFFSET=$(call get_cse_region_offset,FMAP_SECTION_CSE_DATA_START) |
| 35 | CSE_DP_SIZE=$(call get_fmap_value,FMAP_SECTION_CSE_DATA_SIZE) |
| 36 | |
| 37 | .PHONY: cse_inputs |
| 38 | cse_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 | |
| 44 | define 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) |
| 50 | endef |
| 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 Shaikh | d0975ff | 2021-10-09 23:13:08 -0700 | [diff] [blame] | 58 | $(OBJ_ME_BIN): $(CSE_BP1_BIN) $(CSE_BP2_BIN) $(CSE_DATA_INPUT) $(obj)/fmap_config.h |
Furquan Shaikh | 6ef863c | 2021-10-01 11:39:48 -0700 | [diff] [blame] | 59 | printf " CREATE $(@F)\n" |
Furquan Shaikh | d0975ff | 2021-10-09 23:13:08 -0700 | [diff] [blame] | 60 | $(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 Shaikh | 6ef863c | 2021-10-01 11:39:48 -0700 | [diff] [blame] | 64 | |
| 65 | endif |
| 66 | |
V Sowmya | 338b83c | 2020-11-11 07:04:13 +0530 | [diff] [blame] | 67 | ifeq ($(CONFIG_SOC_INTEL_CSE_RW_UPDATE),y) |
Furquan Shaikh | d2da870 | 2021-10-07 00:08:59 -0700 | [diff] [blame] | 68 | |
Furquan Shaikh | d2da870 | 2021-10-07 00:08:59 -0700 | [diff] [blame] | 69 | ifeq ($(CONFIG_SOC_INTEL_CSE_RW_VERSION),"") |
| 70 | $(error "CSE RW version is missing and need to be set by mainboard config") |
| 71 | endif |
| 72 | |
Furquan Shaikh | 3f0d643 | 2021-10-09 00:08:56 -0700 | [diff] [blame] | 73 | ifneq ($(CONFIG_STITCH_ME_BIN),y) |
| 74 | |
| 75 | ifeq ($(CONFIG_SOC_INTEL_CSE_RW_FILE),"") |
| 76 | $(error "CSE RW file path is missing and need to be set by mainboard config") |
| 77 | endif |
| 78 | CSE_RW_FILE := $(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_RW_FILE)) |
| 79 | |
| 80 | endif |
Furquan Shaikh | d2da870 | 2021-10-07 00:08:59 -0700 | [diff] [blame] | 81 | |
Sridhar Siricilla | b2353a7 | 2019-09-13 16:32:00 +0530 | [diff] [blame] | 82 | CSE_LITE_ME_RW = $(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_RW_CBFS_NAME)) |
Sridhar Siricilla | 361e364 | 2020-10-18 20:14:07 +0530 | [diff] [blame] | 83 | regions-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 Siricilla | b2353a7 | 2019-09-13 16:32:00 +0530 | [diff] [blame] | 85 | cbfs-files-y += $(CSE_LITE_ME_RW) |
Furquan Shaikh | d2da870 | 2021-10-07 00:08:59 -0700 | [diff] [blame] | 86 | $(CSE_LITE_ME_RW)-file := $(CSE_RW_FILE) |
Sridhar Siricilla | b2353a7 | 2019-09-13 16:32:00 +0530 | [diff] [blame] | 87 | $(CSE_LITE_ME_RW)-name := $(CSE_LITE_ME_RW) |
| 88 | $(CSE_LITE_ME_RW)-type := raw |
Krishna Prasad Bhat | a67a92e | 2022-02-25 10:45:55 +0530 | [diff] [blame] | 89 | ifeq ($(CONFIG_SOC_INTEL_CSE_LITE_COMPRESS_ME_RW),y) |
| 90 | $(CSE_LITE_ME_RW)-compression := LZMA |
| 91 | endif |
V Sowmya | 338b83c | 2020-11-11 07:04:13 +0530 | [diff] [blame] | 92 | |
Furquan Shaikh | d2da870 | 2021-10-07 00:08:59 -0700 | [diff] [blame] | 93 | $(obj)/cse_rw.version: |
| 94 | @echo '$(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_RW_VERSION))' > $@ |
V Sowmya | 338b83c | 2020-11-11 07:04:13 +0530 | [diff] [blame] | 95 | |
Furquan Shaikh | d2da870 | 2021-10-07 00:08:59 -0700 | [diff] [blame] | 96 | CSE_RW_VERSION = $(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_RW_VERSION_CBFS_NAME)) |
| 97 | regions-for-file-$(CSE_RW_VERSION) = FW_MAIN_A,FW_MAIN_B |
| 98 | cbfs-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 Sowmya | 338b83c | 2020-11-11 07:04:13 +0530 | [diff] [blame] | 102 | |
Furquan Shaikh | d2da870 | 2021-10-07 00:08:59 -0700 | [diff] [blame] | 103 | $(obj)/cse_rw.hash: $(CSE_RW_FILE) |
| 104 | openssl dgst -sha256 -binary $< > $@ |
| 105 | |
| 106 | CSE_RW_HASH = $(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_RW_HASH_CBFS_NAME)) |
| 107 | regions-for-file-$(CSE_RW_HASH) = FW_MAIN_A,FW_MAIN_B |
| 108 | cbfs-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 Bhat | 333edcc | 2021-11-26 06:52:27 +0530 | [diff] [blame] | 112 | endif |
Furquan Shaikh | d2da870 | 2021-10-07 00:08:59 -0700 | [diff] [blame] | 113 | |
Krishna Prasad Bhat | 333edcc | 2021-11-26 06:52:27 +0530 | [diff] [blame] | 114 | ifeq ($(CONFIG_SOC_INTEL_CSE_SUB_PART_UPDATE),y) |
| 115 | |
| 116 | CSE_IOM_FILE = $(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_IOM_CBFS_FILE)) |
| 117 | CSE_IOM = $(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_IOM_CBFS_NAME)) |
| 118 | regions-for-file-$(CSE_IOM) = FW_MAIN_A,FW_MAIN_B,COREBOOT |
| 119 | cbfs-files-y += $(CSE_IOM) |
| 120 | $(CSE_IOM)-file := $(CSE_IOM_FILE) |
| 121 | $(CSE_IOM)-name := $(CSE_IOM) |
| 122 | $(CSE_IOM)-type := raw |
| 123 | |
| 124 | CSE_NPHY_FILE = $(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_NPHY_CBFS_FILE)) |
| 125 | CSE_NPHY = $(call strip_quotes,$(CONFIG_SOC_INTEL_CSE_NPHY_CBFS_NAME)) |
| 126 | regions-for-file-$(CSE_NPHY) = FW_MAIN_A,FW_MAIN_B,COREBOOT |
| 127 | cbfs-files-y += $(CSE_NPHY) |
| 128 | $(CSE_NPHY)-file := $(CSE_NPHY_FILE) |
| 129 | $(CSE_NPHY)-name := $(CSE_NPHY) |
| 130 | $(CSE_NPHY)-type := raw |
Sridhar Siricilla | b2353a7 | 2019-09-13 16:32:00 +0530 | [diff] [blame] | 131 | endif |