6ef863c5c4
This change adds support for allowing mainboards to stitch CSE components during build time instead of adding a pre-built CSE binary. Several Kconfig options are added to allow mainboard to provide the file names for different CSE region components. This makes use of the newly added cse_serger and cse_fpt tools to create following partitions: 1. BP1 - RO 2. BP2 - RW 3. Layout In addition to this, it accepts CSE data partition as an input using Kconfig CSE_DATA_FILE. All these partitions are then assembled together as per the following mainboard FMAP regions: 1. BP1(RO) : CSE_RO 2. BP2(RW) : CSE_RW 3. Layout : CSE_LAYOUT 4. Data : CSE_DATA Finally, it generates the target $(OBJ_ME_BIN) which is used to put together the binary in final coreboot.rom image. Several helper functions are added to soc/intel/Makefile.inc to allow SoCs to define which components use: 1. Decomposed files: Files decomposed from Intel release CSE binary in FPT format. 2. Input files: Mainboard provided input files using corresponding Kconfigs. 3. Dummy: Components that are required to have dummy entries in BPDT header. These helpers are added to soc/intel/Makefile.inc to ensure that the functions are defined by the time the invocations are encountered in SoC Makefile.inc. BUG=b:189177580 Change-Id: I8359cd49ad256703285e55bc4319c6e9c9fccb67 Signed-off-by: Bernardo Perez Priego <bernardo.perez.priego@intel.com> Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/57353 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
44 lines
941 B
Makefile
44 lines
941 B
Makefile
ifeq ($(CONFIG_STITCH_ME_BIN),y)
|
|
|
|
objcse := $(obj)/cse
|
|
additional-dirs += $(objcse)
|
|
|
|
define cse_input_path
|
|
$(call strip_quotes,$(CONFIG_CSE_COMPONENTS_PATH))/$(call strip_quotes,$(1))
|
|
endef
|
|
|
|
define cse_add_dummy
|
|
$(eval cse_$(1)_ingredients+=$(2))
|
|
endef
|
|
|
|
define cse_add_dummy_to_bp1_bp2
|
|
$(call cse_add_dummy,bp1,$(1))
|
|
$(call cse_add_dummy,bp2,$(1))
|
|
endef
|
|
|
|
define cse_add_file
|
|
$(eval cse_$(3)_ingredients+=$(4))
|
|
$(eval file=$(2))
|
|
$(eval $(4)-file=$(file))
|
|
$(eval $(1)+=$(if $(filter $(file),$($(1))),,$(file)))
|
|
endef
|
|
|
|
define cse_add_decomp
|
|
$(call cse_add_file,cse_decomp_files,$(objcse)/$(2),$(1),$(2))
|
|
endef
|
|
|
|
define cse_add_decomp_to_bp1_bp2
|
|
$(call cse_add_decomp,bp1,$(1))
|
|
$(call cse_add_decomp,bp2,$(1))
|
|
endef
|
|
|
|
define cse_add_input
|
|
$(call cse_add_file,cse_input_files,$(call cse_input_path,$(CONFIG_CSE_$(2)_FILE)),$(1),$(2))
|
|
endef
|
|
|
|
define cse_add_input_to_bp1_bp2
|
|
$(call cse_add_input,bp1,$(1))
|
|
$(call cse_add_input,bp2,$(1))
|
|
endef
|
|
|
|
endif
|