summaryrefslogtreecommitdiffstats
path: root/import/tools
diff options
context:
space:
mode:
authorMartin Peschke <mpeschke@de.ibm.com>2017-06-01 17:33:18 +0200
committerJoshua Hunsberger <jahunsbe@us.ibm.com>2017-10-23 17:46:07 -0500
commit32f0580c8ef4ab024506c5f25a1d1110f02a5bf9 (patch)
tree0fcab62877bf72789d585592362a3293aaed4eef /import/tools
parent9f68cc5be815a0bf1063e24d7c9293cb67c1dca6 (diff)
downloadtalos-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.mk44
-rw-r--r--import/tools/imageProcs/pstate_gpe_image.mk73
-rw-r--r--import/tools/imageProcs/restore_image.mk52
-rw-r--r--import/tools/imageProcs/sgpe_image.mk68
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)))))
OpenPOWER on IntegriCloud