diff options
author | Martin Peschke <mpeschke@de.ibm.com> | 2017-06-01 17:33:18 +0200 |
---|---|---|
committer | Joshua Hunsberger <jahunsbe@us.ibm.com> | 2017-10-23 17:46:07 -0500 |
commit | 32f0580c8ef4ab024506c5f25a1d1110f02a5bf9 (patch) | |
tree | 0fcab62877bf72789d585592362a3293aaed4eef /import/tools | |
parent | 9f68cc5be815a0bf1063e24d7c9293cb67c1dca6 (diff) | |
download | talos-hcode-32f0580c8ef4ab024506c5f25a1d1110f02a5bf9.tar.gz talos-hcode-32f0580c8ef4ab024506c5f25a1d1110f02a5bf9.zip |
HW Image Build Flow: per-chip XIP sub-images
prereq for supporting multiple DD level HCODE
build changes to generate <chipid>.<name>_image.bin files
follow-up commits will pick up per-chip section content that is
provided by others and their build flows
Change-Id: Ief6ed91e1feb8dbf56802efd0f38ec9b75db2c05
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/40755
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Prachi Gupta <pragupta@us.ibm.com>
Reviewed-by: Richard J. Knight <rjknight@us.ibm.com>
Reviewed-by: Martin Peschke <mpeschke@de.ibm.com>
Diffstat (limited to 'import/tools')
-rw-r--r-- | import/tools/imageProcs/cme_image.mk | 44 | ||||
-rw-r--r-- | import/tools/imageProcs/pstate_gpe_image.mk | 73 | ||||
-rw-r--r-- | import/tools/imageProcs/restore_image.mk | 52 | ||||
-rw-r--r-- | import/tools/imageProcs/sgpe_image.mk | 68 |
4 files changed, 173 insertions, 64 deletions
diff --git a/import/tools/imageProcs/cme_image.mk b/import/tools/imageProcs/cme_image.mk index b5259ea3..34e19410 100644 --- a/import/tools/imageProcs/cme_image.mk +++ b/import/tools/imageProcs/cme_image.mk @@ -23,19 +23,39 @@ # # IBM_PROLOG_END_TAG -IMAGE=cme_image +# $1 == chipId +define BUILD_CME_IMAGE +$(eval IMAGE=$1.cme_image) -# before appending the various sectoins of the xip image -# we need to wait until the raw xxx_image.bin and the -# various sub images are finished - add a dependancy on both below -CME_BIN_FILE=$(IMAGEPATH)/cme/cme.bin +$(eval $(IMAGE)_PATH=$(IMAGEPATH)/cme_image) +$(eval $(IMAGE)_LINK_SCRIPT=cme_image.cmd) +$(eval $(IMAGE)_LAYOUT=$(IMAGEPATH)/cme_image/cme_image.o) +$(eval cme_image_COMMONFLAGS += -I$(ROOTPATH)/chips/p9/xip/) -# adding the build host name is the last thing done to the -# raw cem_image.bin file before we append sections -CME_IMAGE_DEPS=$$($(IMAGE)_PATH)/.$(IMAGE).setbuild_host +# files to be appended to image +$(eval $(IMAGE)_FILE_HCODE=$(IMAGEPATH)/cme/cme.bin) -CME_IMAGE_DEPS+= $(CME_BIN_FILE) +# dependencies for appending image sections in sequence: +# - file to be appended +# - all dependencies of previously appended sections or on raw image +# - append operation as to other section that has to be finished first +$(eval $(IMAGE)_DEPS_HCODE =$$($(IMAGE)_FILE_HCODE)) +$(eval $(IMAGE)_DEPS_HCODE+=$$($(IMAGE)_PATH)/.$(IMAGE).setbuild_host) -$(call XIP_TOOL,append,.hcode,$(CME_IMAGE_DEPS),$(CME_BIN_FILE)) -$(call XIP_TOOL,report,,$$($(IMAGE)_PATH)/.$(IMAGE).append.hcode) -$(call BUILD_XIPIMAGE) +$(eval $(IMAGE)_DEPS_REPORT =$$($(IMAGE)_DEPS_HCODE)) +$(eval $(IMAGE)_DEPS_REPORT+=$$($(IMAGE)_PATH)/.$(IMAGE).append.hcode) + +# image build using all files and serialised by dependencies +$(eval $(call XIP_TOOL,append,.hcode,$$($(IMAGE)_DEPS_HCODE),$$($(IMAGE)_FILE_HCODE))) + +# create image report for image with all files appended +$(eval $(call XIP_TOOL,report,,$$($(IMAGE)_DEPS_REPORT))) + +$(eval $(call BUILD_XIPIMAGE)) +endef + +CHIPS :=$(filter-out centaur,$(CHIPS)) + +$(foreach chip,$(CHIPS),\ + $(foreach chipId, $($(chip)_CHIPID),\ + $(eval $(call BUILD_CME_IMAGE,$(chipId))))) diff --git a/import/tools/imageProcs/pstate_gpe_image.mk b/import/tools/imageProcs/pstate_gpe_image.mk index 063a003b..541b3cf7 100644 --- a/import/tools/imageProcs/pstate_gpe_image.mk +++ b/import/tools/imageProcs/pstate_gpe_image.mk @@ -23,22 +23,57 @@ # # IBM_PROLOG_END_TAG -IMAGE=pstate_gpe_image -# add dependency on the raw image.bin file completion -PGPE_DEPS=$$($(IMAGE)_PATH)/.$(IMAGE).setbuild_host - -# dependencies for bin files needed in the pgpe xip image -PPMR_HDR_BIN_FILE=$(IMAGEPATH)/ppmr_header/ppmr_header.bin -LVL1_BL_BIN_FILE=$(IMAGEPATH)/pgpe_lvl1_copier/pgpe_lvl1_copier.bin -LVL2_BL_BIN_FILE=$(IMAGEPATH)/pgpe_lvl2_loader/pgpe_lvl2_loader.bin -PGPE_BIN_FILE=$(IMAGEPATH)/pstate_gpe/pstate_gpe.bin - -$(call XIP_TOOL,append,.ppmr_header,$(PGPE_DEPS) $(PPMR_HDR_BIN_FILE), $(PPMR_HDR_BIN_FILE)) -$(call XIP_TOOL,append,.lvl1_bl,$(PGPE_DEPS) $$($(IMAGE)_PATH)/.$(IMAGE).append.ppmr_header \ - $(LVL1_BL_BIN_FILE), $(LVL1_BL_BIN_FILE)) -$(call XIP_TOOL,append,.lvl2_bl,$(PGPE_DEPS) $$($(IMAGE)_PATH)/.$(IMAGE).append.lvl1_bl \ - $(LVL2_BL_BIN_FILE), $(LVL2_BL_BIN_FILE)) -$(call XIP_TOOL,append,.hcode,$(PGPE_DEPS) $$($(IMAGE)_PATH)/.$(IMAGE).append.lvl2_bl \ - $(PGPE_BIN_FILE),$(PGPE_BIN_FILE)) -$(call XIP_TOOL,report,,$$($(IMAGE)_PATH)/.$(IMAGE).append.hcode,) -$(call BUILD_XIPIMAGE) +# $1 == chipId +define BUILD_PGPE_IMAGE +$(eval IMAGE=$1.pstate_gpe_image) + +$(eval $(IMAGE)_PATH=$(IMAGEPATH)/pstate_gpe_image) +$(eval $(IMAGE)_LINK_SCRIPT=pstate_gpe_image.cmd) +$(eval $(IMAGE)_LAYOUT=$(IMAGEPATH)/pstate_gpe_image/pstate_gpe_image.o) +$(eval pstate_gpe_image_COMMONFLAGS += -I$(ROOTPATH)/chips/p9/xip/) + +# files to be appended to image +$(eval $(IMAGE)_FILE_PPMR_HDR=$(IMAGEPATH)/ppmr_header/ppmr_header.bin) +$(eval $(IMAGE)_FILE_LVL1_BL=$(IMAGEPATH)/pgpe_lvl1_copier/pgpe_lvl1_copier.bin) +$(eval $(IMAGE)_FILE_LVL2_BL=$(IMAGEPATH)/pgpe_lvl2_loader/pgpe_lvl2_loader.bin) +$(eval $(IMAGE)_FILE_HCODE=$(IMAGEPATH)/pstate_gpe/pstate_gpe.bin) + +# dependencies for appending image sections in sequence: +# - file to be appended +# - all dependencies of previously appended sections or on raw image +# - append operation as to other section that has to be finished first +$(eval $(IMAGE)_DEPS_PPMR_HDR =$$($(IMAGE)_FILE_PPMR_HDR)) +$(eval $(IMAGE)_DEPS_PPMR_HDR+=$$($(IMAGE)_PATH)/.$(IMAGE).setbuild_host) + +$(eval $(IMAGE)_DEPS_LVL1_BL =$$($(IMAGE)_FILE_LVL1_BL)) +$(eval $(IMAGE)_DEPS_LVL1_BL+=$$($(IMAGE)_DEPS_PPMR_HDR)) +$(eval $(IMAGE)_DEPS_LVL1_BL+=$$($(IMAGE)_PATH)/.$(IMAGE).append.ppmr_header) + +$(eval $(IMAGE)_DEPS_LVL2_BL =$$($(IMAGE)_FILE_LVL2_BL)) +$(eval $(IMAGE)_DEPS_LVL2_BL+=$$($(IMAGE)_DEPS_LVL1_BL)) +$(eval $(IMAGE)_DEPS_LVL2_BL+=$$($(IMAGE)_PATH)/.$(IMAGE).append.lvl1_bl) + +$(eval $(IMAGE)_DEPS_HCODE =$$($(IMAGE)_FILE_HCODE)) +$(eval $(IMAGE)_DEPS_HCODE+=$$($(IMAGE)_DEPS_LVL2_BL)) +$(eval $(IMAGE)_DEPS_HCODE+=$$($(IMAGE)_PATH)/.$(IMAGE).append.lvl2_bl) + +$(eval $(IMAGE)_DEPS_REPORT =$$($(IMAGE)_DEPS_HCODE)) +$(eval $(IMAGE)_DEPS_REPORT+=$$($(IMAGE)_PATH)/.$(IMAGE).append.hcode) + +# image build using all files and serialised by dependencies +$(eval $(call XIP_TOOL,append,.ppmr_header,$$($(IMAGE)_DEPS_PPMR_HDR),$$($(IMAGE)_FILE_PPMR_HDR))) +$(eval $(call XIP_TOOL,append,.lvl1_bl,$$($(IMAGE)_DEPS_LVL1_BL),$$($(IMAGE)_FILE_LVL1_BL))) +$(eval $(call XIP_TOOL,append,.lvl2_bl,$$($(IMAGE)_DEPS_LVL2_BL),$$($(IMAGE)_FILE_LVL2_BL))) +$(eval $(call XIP_TOOL,append,.hcode,$$($(IMAGE)_DEPS_HCODE),$$($(IMAGE)_FILE_HCODE))) + +# create image report for image with all files appended +$(eval $(call XIP_TOOL,report,,$$($(IMAGE)_DEPS_REPORT))) + +$(eval $(call BUILD_XIPIMAGE)) +endef + +CHIPS :=$(filter-out centaur,$(CHIPS)) + +$(foreach chip,$(CHIPS),\ + $(foreach chipId, $($(chip)_CHIPID),\ + $(eval $(call BUILD_PGPE_IMAGE,$(chipId))))) diff --git a/import/tools/imageProcs/restore_image.mk b/import/tools/imageProcs/restore_image.mk index 943587ca..6233b7c0 100644 --- a/import/tools/imageProcs/restore_image.mk +++ b/import/tools/imageProcs/restore_image.mk @@ -22,24 +22,46 @@ # permissions and limitations under the License. # # IBM_PROLOG_END_TAG -IMAGE=restore_image -# create dependency on the restore image hcode and the final step in the -# raw image.bin creation -SELF_REST_DEPS=$$($(IMAGE)_PATH)/.$(IMAGE).setbuild_host +# $1 == chipId +define BUILD_RESTORE_IMAGE +$(eval IMAGE=$1.restore_image) -SELF_RESTORE_BIN=$(ROOTPATH)/chips/p9/procedures/utils/stopreg/selfRest.bin -CPRM_HEADER_BIN=$(IMAGEPATH)/cpmr_header/cpmr_header.bin +$(eval $(IMAGE)_PATH=$(IMAGEPATH)/restore_image) +$(eval $(IMAGE)_LINK_SCRIPT=restore_image.cmd) +$(eval $(IMAGE)_LAYOUT=$(IMAGEPATH)/restore_image/restore_image.o) +$(eval restore_image_COMMONFLAGS += -I$(ROOTPATH)/chips/p9/xip/) -# apending the cpmr header is also dependent on the raw image being complete -CPMR_HEADER_DEPS=$(SELF_REST_DEPS) -CPMR_HEADER_DEPS+=$(CPRM_HEADER_BIN) +# files to be appended to image +$(eval $(IMAGE)_FILE_CPMR=$(IMAGEPATH)/cpmr_header/cpmr_header.bin) +$(eval $(IMAGE)_FILE_SELF=$(ROOTPATH)/chips/p9/procedures/utils/stopreg/selfRest.bin) -# make sure we append the restore image after the cpmr header -SELF_RESTORE_DEPS+=$$($(IMAGE)_PATH)/.restore_image.append.cpmr +# dependencies for appending image sections in sequence: +# - file to be appended +# - all dependencies of previously appended sections or on raw image +# - append operation as to other section that has to be finished first +$(eval $(IMAGE)_DEPS_CPMR =$$($(IMAGE)_FILE_CPMR)) +$(eval $(IMAGE)_DEPS_CPMR+=$$($(IMAGE)_PATH)/.$(IMAGE).setbuild_host) -$(call XIP_TOOL,append,.cpmr,$(CPMR_HEADER_DEPS),$(CPRM_HEADER_BIN)) -$(call XIP_TOOL,append,.self_restore,$(SELF_RESTORE_DEPS),$(SELF_RESTORE_BIN)) -$(call XIP_TOOL,report,,$$($(IMAGE)_PATH)/.$(IMAGE).append.self_restore) +$(eval $(IMAGE)_DEPS_SELF =$$($(IMAGE)_FILE_SELF)) +$(eval $(IMAGE)_DEPS_SELF+=$$($(IMAGE)_DEPS_CPMR)) +$(eval $(IMAGE)_DEPS_SELF+=$$($(IMAGE)_PATH)/.$(IMAGE).append.cpmr) -$(call BUILD_XIPIMAGE) +$(eval $(IMAGE)_DEPS_REPORT =$$($(IMAGE)_DEPS_HCODE)) +$(eval $(IMAGE)_DEPS_REPORT+=$$($(IMAGE)_PATH)/.$(IMAGE).append.self_restore) + +# image build using all files and serialised by dependencies +$(eval $(call XIP_TOOL,append,.cpmr,$$($(IMAGE)_DEPS_CPMR),$$($(IMAGE)_FILE_CPMR))) +$(eval $(call XIP_TOOL,append,.self_restore,$$($(IMAGE)_DEPS_SELF),$$($(IMAGE)_FILE_SELF))) + +# create image report for image with all files appended +$(eval $(call XIP_TOOL,report,,$$($(IMAGE)_DEPS_REPORT))) + +$(eval $(call BUILD_XIPIMAGE)) +endef + +CHIPS :=$(filter-out centaur,$(CHIPS)) + +$(foreach chip,$(CHIPS),\ + $(foreach chipId, $($(chip)_CHIPID),\ + $(eval $(call BUILD_RESTORE_IMAGE,$(chipId))))) diff --git a/import/tools/imageProcs/sgpe_image.mk b/import/tools/imageProcs/sgpe_image.mk index 6e7e0686..678df611 100644 --- a/import/tools/imageProcs/sgpe_image.mk +++ b/import/tools/imageProcs/sgpe_image.mk @@ -22,26 +22,58 @@ # permissions and limitations under the License. # # IBM_PROLOG_END_TAG -IMAGE=sgpe_image -# add dependency on the raw image.bin file completion -SGPE_DEPS=$$($(IMAGE)_PATH)/.$(IMAGE).setbuild_host +# $1 == chipId +define BUILD_SGPE_IMAGE +$(eval IMAGE=$1.sgpe_image) -# dependencies for bin files needed in the sgpe xip image -QPMR_BIN_FILE=$(IMAGEPATH)/qpmr_header/qpmr_header.bin -LVL1_BL_BIN_FILE=$(IMAGEPATH)/sgpe_lvl1_copier/sgpe_lvl1_copier.bin -LVL2_BL_BIN_FILE=$(IMAGEPATH)/sgpe_lvl2_loader/sgpe_lvl2_loader.bin -SGPE_BIN_FILE=$(IMAGEPATH)/stop_gpe/stop_gpe.bin +$(eval $(IMAGE)_PATH=$(IMAGEPATH)/sgpe_image) +$(eval $(IMAGE)_LINK_SCRIPT=sgpe_image.cmd) +$(eval $(IMAGE)_LAYOUT=$(IMAGEPATH)/sgpe_image/sgpe_image.o) +$(eval sgpe_image_COMMONFLAGS += -I$(ROOTPATH)/chips/p9/xip/) -SGPE_DEPS+=$(SGPE_BIN_FILE) -SGPE_DEPS+=$(LVL1_BL_BIN_FILE) -SGPE_DEPS+=$(LVL2_BL_BIN_FILE) +# files to be appended to image +$(eval $(IMAGE)_FILE_QPMR=$(IMAGEPATH)/qpmr_header/qpmr_header.bin) +$(eval $(IMAGE)_FILE_LVL1_BL=$(IMAGEPATH)/sgpe_lvl1_copier/sgpe_lvl1_copier.bin) +$(eval $(IMAGE)_FILE_LVL2_BL=$(IMAGEPATH)/sgpe_lvl2_loader/sgpe_lvl2_loader.bin) +$(eval $(IMAGE)_FILE_HCODE=$(IMAGEPATH)/stop_gpe/stop_gpe.bin) -SGPE_DEPS+=$(QPMR_BIN_FILE) +# dependencies for appending image sections in sequence: +# - file to be appended +# - all dependencies of previously appended sections or on raw image +# - append operation as to other section that has to be finished first +$(eval $(IMAGE)_DEPS_QPMR =$$($(IMAGE)_FILE_QPMR)) +$(eval $(IMAGE)_DEPS_QPMR+=$$($(IMAGE)_PATH)/.$(IMAGE).setbuild_host) -$(call XIP_TOOL,append,.qpmr,$(SGPE_DEPS) ,$(QPMR_BIN_FILE)) -$(call XIP_TOOL,append,.lvl1_bl,$(SGPE_DEPS) $$($(IMAGE)_PATH)/.$(IMAGE).append.qpmr, $(LVL1_BL_BIN_FILE)) -$(call XIP_TOOL,append,.lvl2_bl,$(SGPE_DEPS) $$($(IMAGE)_PATH)/.$(IMAGE).append.lvl1_bl, $(LVL2_BL_BIN_FILE)) -$(call XIP_TOOL,append,.hcode,$(SGPE_DEPS) $$($(IMAGE)_PATH)/.$(IMAGE).append.lvl2_bl ,$(SGPE_BIN_FILE)) -$(call XIP_TOOL,report,,$$($(IMAGE)_PATH)/.$(IMAGE).append.hcode) -$(call BUILD_XIPIMAGE) +$(eval $(IMAGE)_DEPS_LVL1_BL =$$($(IMAGE)_FILE_LVL1_BL)) +$(eval $(IMAGE)_DEPS_LVL1_BL+=$$($(IMAGE)_DEPS_QPMR)) +$(eval $(IMAGE)_DEPS_LVL1_BL+=$$($(IMAGE)_PATH)/.$(IMAGE).append.qpmr) + +$(eval $(IMAGE)_DEPS_LVL2_BL =$$($(IMAGE)_FILE_LVL2_BL)) +$(eval $(IMAGE)_DEPS_LVL2_BL+=$$($(IMAGE)_DEPS_LVL1_BL)) +$(eval $(IMAGE)_DEPS_LVL2_BL+=$$($(IMAGE)_PATH)/.$(IMAGE).append.lvl1_bl) + +$(eval $(IMAGE)_DEPS_HCODE =$$($(IMAGE)_FILE_HCODE)) +$(eval $(IMAGE)_DEPS_HCODE+=$$($(IMAGE)_DEPS_LVL2_BL)) +$(eval $(IMAGE)_DEPS_HCODE+=$$($(IMAGE)_PATH)/.$(IMAGE).append.lvl2_bl) + +$(eval $(IMAGE)_DEPS_REPORT =$$($(IMAGE)_DEPS_HCODE)) +$(eval $(IMAGE)_DEPS_REPORT+=$$($(IMAGE)_PATH)/.$(IMAGE).append.hcode) + +# image build using all files and serialised by dependencies +$(eval $(call XIP_TOOL,append,.qpmr,$$($(IMAGE)_DEPS_QPMR),$$($(IMAGE)_FILE_QPMR))) +$(eval $(call XIP_TOOL,append,.lvl1_bl,$$($(IMAGE)_DEPS_LVL1_BL),$$($(IMAGE)_FILE_LVL1_BL))) +$(eval $(call XIP_TOOL,append,.lvl2_bl,$$($(IMAGE)_DEPS_LVL2_BL),$$($(IMAGE)_FILE_LVL2_BL))) +$(eval $(call XIP_TOOL,append,.hcode,$$($(IMAGE)_DEPS_HCODE), $$($(IMAGE)_FILE_HCODE))) + +# create image report for image with all files appended +$(eval $(call XIP_TOOL,report,,$$($(IMAGE)_DEPS_REPORT))) + +$(eval $(call BUILD_XIPIMAGE)) +endef + +CHIPS :=$(filter-out centaur,$(CHIPS)) + +$(foreach chip,$(CHIPS),\ + $(foreach chipId, $($(chip)_CHIPID),\ + $(eval $(call BUILD_SGPE_IMAGE,$(chipId))))) |