coreboot-kgpe-d16/src/soc/intel/Makefile.inc
Furquan Shaikh 6ef863c5c4 soc/intel/common/cse: Add support for stitching CSE components
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>
2021-10-19 16:09:08 +00:00

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