rainier_defconfig: Add multi-target support
Through OpenBMC and PLDM file.io, Power10 will support multiple MRW
definitions as part of one driver.
In order to achieve this in a staged approach, this commit introduces a
new 'openpower-pnor-p10' package that still creates the expected
pnor-related artifacts and intermediate files, while also creating the
individual files for each of the PNOR partitions (PAYLOAD, BOOTKERNEL)
inside the images/mmc directory. Each of those files will be suffixed
with ".P10" for target-agnostic files, or "uppercase-xml-name" (i.e.,
RAINIER_2U_XML) for target-specific files.
This patch also creates packages rainier-2u-xml and rainier-4u-xml(based
on machine-xml) that are both built and included in rainier_defconfig,
with rainier_2u_xml also serving as the 'legacy' pnor for smooth
transitions purposes.
Several other packages makefiles had to be reworked, but that should
allow both legacy openpower-pnor as well as the new mmc variant to build.
Signed-off-by: Klaus Heinrich Kiwi <klaus@linux.vnet.ibm.com>
diff --git a/openpower/package/openpower-pnor-p10/Config.in b/openpower/package/openpower-pnor-p10/Config.in
new file mode 100644
index 0000000..09ad1e9
--- /dev/null
+++ b/openpower/package/openpower-pnor-p10/Config.in
@@ -0,0 +1,120 @@
+config BR2_PACKAGE_OPENPOWER_PNOR_P10
+ bool "openpower_pnor_p10"
+ depends on (!BR2_OPENPOWER_PNOR)
+ select BR2_TARGET_ROOTFS_INITRAMFS
+ select BR2_PACKAGE_HOSTBOOT_P10
+ select BR2_PACKAGE_HOSTBOOT_BINARIES
+ select BR2_PACKAGE_SKIBOOT
+ select BR2_PACKAGE_OPENPOWER_FFS
+ select BR2_PACKAGE_OCC_P10
+ select BR2_PACKAGE_CAPP_UCODE
+ select BR2_PACKAGE_IMA_CATALOG
+ select BR2_PACKAGE_HOST_OPENPOWER_VPNOR
+ select BR2_PACKAGE_RAINIER_2U_XML
+ select BR2_PACKAGE_RAINIER_4U_XML
+ select BR2_PACKAGE_HCODE_P10
+ help
+ Utilites for building a targeting Power10 binary image
+
+menu "OpenPOWER PNOR P10 assembly options"
+
+choice
+ prompt "Secure Boot key transition type"
+ default BR2_OPENPOWER_P10_SECUREBOOT_NO_KEY_TRANSITION
+
+config BR2_OPENPOWER_P10_SECUREBOOT_NO_KEY_TRANSITION
+ bool "None"
+ help
+ Builds a driver that does not transition Secure Boot keys
+
+config BR2_OPENPOWER_P10_SECUREBOOT_KEY_TRANSITION_TO_DEV
+ bool "Transition existing keys to development keys"
+ help
+ Builds a driver that transitions Secure Boot keys to development keys and
+ powers off the system. Only usable when system security has been
+ disabled.
+
+config BR2_OPENPOWER_P10_SECUREBOOT_KEY_TRANSITION_TO_PROD
+ bool "Transition development keys to production keys"
+ help
+ Builds a driver that transitions Secure Boot development keys to
+ vendor supplied production keys and powers off the system.
+
+endchoice
+
+config BR2_OPENPOWER_P10_SECUREBOOT_SIGN_MODE
+ string "Secureboot signing mode"
+ default "development"
+ help
+ Available options [development | production]
+ Indicates the signing mode when generating the PNOR image. Only
+ applicable when hostboot is compiled with SECUREBOOT compile flag.
+ Default mode is development.
+
+config BR2_OPENPOWER_P10_PNOR_XML_LAYOUT_FILENAME
+ string "Name of Openpower pnor xml layout file"
+ help
+ String used to define hw specific make config file
+
+config BR2_OPENPOWER_PNOR_P10_LEGACY_PNOR_TARGET
+ string "Legacy name of P10 PNOR Configuration"
+ help
+ String used to define Legacy configuration name, used for
+ building legacy PNOR-related binaries and intermediate files
+
+config BR2_OPENPOWER_P10_XMLS
+ string "List of machine XMLs to include"
+ default "rainier-2u-xml rainier-4u-xml"
+ help
+ List of machine-xmls to include in the OpenPower PNOR
+
+config BR2_SKIBOOT_P10_LID_NAME
+ string "Name of skiboot lid name to be used"
+ default "skiboot.lid"
+ help
+ String used to define skiboot lid filename
+
+config BR2_HOSTBOOT_P10_BINARY_SBE_FILENAME
+ string "Name of sbe hostboot binary"
+ help
+ String used to define name of sbe hostboot binary file
+
+config BR2_HOSTBOOT_P10_BINARY_SBEC_FILENAME
+ string "Name of sbec hostboot binary"
+ help
+ String used to define name of sbec hostboot binary file
+
+config BR2_HOSTBOOT_P10_BINARY_IONV_FILENAME
+ string "Name of IONV binary"
+ default "ionv.bin"
+ help
+ String used to define name of ionv binary file
+
+config BR2_HOSTBOOT_P10_BINARY_WINK_FILENAME
+ string "Name of winkle hostboot binary"
+ help
+ String used to define name of winkle hostboot binary file
+
+config BR2_IMA_CATALOG_P10_FILENAME
+ string "Name of IMA catalog binary"
+ help
+ String used to define name of IMA catalog binary file
+
+config BR2_IMA_CATALOG_P10_ECC_FILENAME
+ string "Name of IMA catalog binary"
+ help
+ String used to define name of IMA catalog binary file, ecc protected
+
+config BR2_OCMBFW_P10_FILENAME
+ string "Name of the OCMBFW Update original file"
+ default "signed_app_fw.mem"
+ help
+ String used to define name of OCBMFW Update original file (before any processing occurs)
+
+config BR2_OCMBFW_P10_PROCESSED_FILENAME
+ string "Name of OCMBFW Update binary processed file"
+ default "ocmbfw.bin.ecc"
+ help
+ String used to define the name of the OCMBFW update binary file after processing, ecc protected
+
+endmenu
diff --git a/openpower/package/openpower-pnor-p10/openpower-pnor-p10.mk b/openpower/package/openpower-pnor-p10/openpower-pnor-p10.mk
new file mode 100644
index 0000000..bae465d
--- /dev/null
+++ b/openpower/package/openpower-pnor-p10/openpower-pnor-p10.mk
@@ -0,0 +1,372 @@
+################################################################################
+#
+# openpower_pnor_p10
+#
+################################################################################
+
+OPENPOWER_PNOR_P10_VERSION ?= aa76df051c5196b311039337e757e0fbe1ae78a9
+
+# TODO: WORKAROUND: Need to reenable next line and comment out the two lines
+# after that, when code is propagated to a public repo
+#OPENPOWER_PNOR_P10_SITE ?= $(call github,open-power,pnor,$(OPENPOWER_PNOR_P10_VERSION))
+OPENPOWER_PNOR_P10_SITE = git@github.ibm.com:open-power/pnor.git
+OPENPOWER_PNOR_P10_SITE_METHOD=git
+
+OPENPOWER_PNOR_P10_LICENSE = Apache-2.0
+OPENPOWER_PNOR_P10_LICENSE_FILES = LICENSE
+OPENPOWER_PNOR_P10_DEPENDENCIES = hostboot-binaries skiboot host-openpower-ffs capp-ucode host-openpower-pnor-util linux-rebuild-with-initramfs host-xz host-sb-signing-utils hostboot-p10 occ-p10 sbe-p10 hcode-p10 ocmb-explorer-fw $(call qstrip,$(BR2_OPENPOWER_P10_XMLS))
+
+ifeq ($(BR2_PACKAGE_IMA_CATALOG),y)
+OPENPOWER_PNOR_P10_DEPENDENCIES += ima-catalog
+endif
+
+ifeq ($(BR2_OPENPOWER_P10_SECUREBOOT_KEY_TRANSITION_TO_DEV),y)
+OPENPOWER_PNOR_P10_KEY_TRANSITION_ARG = -key_transition imprint
+else ifeq ($(BR2_OPENPOWER_P10_SECUREBOOT_KEY_TRANSITION_TO_PROD),y)
+OPENPOWER_PNOR_P10_KEY_TRANSITION_ARG = -key_transition production
+endif
+
+ifneq ($(BR2_OPENPOWER_P10_SECUREBOOT_SIGN_MODE),"")
+OPENPOWER_PNOR_P10_SIGN_MODE_ARG = -sign_mode $(BR2_OPENPOWER_P10_SECUREBOOT_SIGN_MODE)
+endif
+
+OPENPOWER_PNOR_P10_INSTALL_IMAGES = YES
+OPENPOWER_PNOR_P10_INSTALL_TARGET = NO
+
+# Subpackages we want to include in the version info (do not include openpower-pnor-p10)
+# This is used inside pkg-versions.mk
+OPENPOWER_PNOR_P10_VERSIONED_SUBPACKAGES = skiboot linux petitboot hostboot-binaries capp-ucode pdata hostboot-p10 occ-p10 sbe-p10 hcode-p10 ocmb-explorer-fw $(call qstrip,$(BR2_OPENPOWER_P10_XMLS))
+
+OPENPOWER_PNOR_P10_OCMB_URL = $(call qstrip,$(OCMB_EXPLORER_FW_SITE)/$(OCMB_EXPLORER_FW_SOURCE))
+
+#######
+# OPENPOWER_PNOR_P10_UPDATE_IMAGE - process/sign PNOR partitions
+# Arguments:
+# $1 - The target-specific mrw package name (i.e., rainier-2u-xml)
+#######
+define OPENPOWER_PNOR_P10_UPDATE_IMAGE
+ echo "***Signing images for target:$(call qstrip,$(1))"
+
+ $(eval XML_VAR = $$(call UPPERCASE,$$(call qstrip,$(1))))
+ echo "***XML_VAR: $(XML_VAR)"
+
+ $(eval TARGETING_BINARY_SOURCE = $$(BR2_$(XML_VAR)_TARGETING_BIN_FILENAME))
+ echo "***TARGETING_BINARY_SOURCE: $(TARGETING_BINARY_SOURCE)"
+
+ $(eval TARGETING_BINARY_FILENAME = $$(BR2_$(XML_VAR)_TARGETING_ECC_FILENAME))
+ echo "***TARGETING_BINARY_FILENAME: $(TARGETING_BINARY_FILENAME)"
+
+ $(eval XML_FILENAME = $$(call qstrip,$$(BR2_$(XML_VAR)_FILENAME)))
+ echo "***XML_FILENAME: $(XML_FILENAME)"
+
+ $(eval WOF_BINARY_FILENAME = $$(patsubst %.xml,%.wofdata,$(XML_FILENAME)))
+ echo "***WOF_BINARY_FILENAME: $(WOF_BINARY_FILENAME)"
+
+ $(eval MEMD_BINARY_FILENAME = $$(patsubst %.xml,%.memd_output.dat,$(XML_FILENAME)))
+ echo "***MEMD_BINARY_FILENAME: $(MEMD_BINARY_FILENAME)"
+
+ $(eval DEVTREE_BINARY_FILENAME = $$(patsubst %.xml,%.dtb,$(XML_FILENAME)))
+ echo "***DEVTREE_BINARY_FILENAME: $(DEVTREE_BINARY_FILENAME)"
+
+ $(eval PNOR_SCRATCH_DIR = $(STAGING_DIR)/openpower_pnor_scratch.$(XML_VAR))
+ echo "***PNOR scratch directory: $(PNOR_SCRATCH_DIR)"
+ mkdir -p $(PNOR_SCRATCH_DIR)
+
+
+ $(TARGET_MAKE_ENV) $(@D)/update_image.pl \
+ -release p10 \
+ -op_target_dir $(STAGING_DIR)/hostboot_build_images \
+ -hb_image_dir $(STAGING_DIR)/hostboot_build_images \
+ -scratch_dir $(PNOR_SCRATCH_DIR) \
+ -hb_binary_dir $(STAGING_DIR)/hostboot_binaries \
+ -hcode_dir $(STAGING_DIR)/hcode \
+ -targeting_binary_filename $(TARGETING_BINARY_FILENAME) \
+ -targeting_binary_source $(TARGETING_BINARY_SOURCE) \
+ -targeting_RO_binary_filename $(TARGETING_BINARY_FILENAME).protected \
+ -targeting_RO_binary_source $(TARGETING_BINARY_SOURCE).protected \
+ -targeting_RW_binary_filename $(TARGETING_BINARY_FILENAME).unprotected \
+ -targeting_RW_binary_source $(TARGETING_BINARY_SOURCE).unprotected \
+ -sbe_binary_filename $(BR2_HOSTBOOT_P10_BINARY_SBE_FILENAME) \
+ -sbe_binary_dir $(STAGING_DIR)/sbe_binaries \
+ -sbec_binary_filename $(BR2_HOSTBOOT_P10_BINARY_SBEC_FILENAME) \
+ -wink_binary_filename $(BR2_HOSTBOOT_P10_BINARY_WINK_FILENAME) \
+ -occ_binary_filename $(OCC_STAGING_DIR)/$(BR2_OCC_P10_BIN_FILENAME) \
+ -capp_binary_filename $(BINARIES_DIR)/$(BR2_CAPP_UCODE_BIN_FILENAME) \
+ -ima_catalog_binary_filename $(BINARIES_DIR)/$(BR2_IMA_CATALOG_P10_FILENAME) \
+ -openpower_version_filename $(OPENPOWER_PNOR_P10_VERSION_FILE) \
+ -wof_binary_filename $(STAGING_DIR)/openpower_mrw_scratch/$(WOF_BINARY_FILENAME) \
+ -memd_binary_filename $(STAGING_DIR)/openpower_mrw_scratch/$(MEMD_BINARY_FILENAME) \
+ -payload $(BINARIES_DIR)/$(BR2_SKIBOOT_P10_LID_NAME) \
+ -payload_filename skiboot.lid.xz \
+ -binary_dir $(BINARIES_DIR) \
+ -bootkernel_filename $(LINUX_IMAGE_NAME) \
+ -ocmbfw_version $(OCMB_EXPLORER_FW_VERSION) \
+ -ocmbfw_url $(OPENPOWER_PNOR_P10_OCMB_URL) \
+ -ocmbfw_original_filename $(BINARIES_DIR)/$(BR2_OCMBFW_P10_FILENAME) \
+ -ocmbfw_binary_filename $(PNOR_SCRATCH_DIR)/$(BR2_OCMBFW_P10_PROCESSED_FILENAME) \
+ -pnor_layout $(@D)/p10Layouts/$(BR2_OPENPOWER_P10_PNOR_XML_LAYOUT_FILENAME) \
+ -sbe_img_dir $(BUILD_DIR)/sbe-p10-$(call qstrip,$(BR2_SBE_P10_VERSION))/images \
+ -devtree_binary_filename $(STAGING_DIR)/usr/share/pdata/$(DEVTREE_BINARY_FILENAME) \
+ -xz_compression \
+ $(OPENPOWER_PNOR_P10_KEY_TRANSITION_ARG) \
+ $(OPENPOWER_PNOR_P10_SIGN_MODE_ARG)
+
+ if [ -n "$(BR2_OPENPOWER_PNOR_P10_LEGACY_PNOR_TARGET)" ] ; then \
+ echo "***Generating legacy pnor targets..." ;\
+ mkdir -p $(STAGING_DIR)/pnor.$(XML_VAR) ; \
+ $(TARGET_MAKE_ENV) $(@D)/create_pnor_image.pl \
+ -release p10 \
+ -xml_layout_file $(@D)/p10Layouts/$(BR2_OPENPOWER_P10_PNOR_XML_LAYOUT_FILENAME) \
+ -pnor_filename $(STAGING_DIR)/pnor.$(XML_VAR)/$(XML_VAR).pnor \
+ -hb_image_dir $(STAGING_DIR)/hostboot_build_images \
+ -scratch_dir $(PNOR_SCRATCH_DIR) \
+ -outdir $(STAGING_DIR)/pnor.$(XML_VAR)/ \
+ -payload $(PNOR_SCRATCH_DIR)/$(BR2_SKIBOOT_LID_XZ_NAME) \
+ -bootkernel $(PNOR_SCRATCH_DIR)/$(LINUX_IMAGE_NAME) \
+ -sbe_binary_filename $(BR2_HOSTBOOT_P10_BINARY_SBE_FILENAME) \
+ -sbec_binary_filename $(BR2_HOSTBOOT_P10_BINARY_SBEC_FILENAME) \
+ -wink_binary_filename $(BR2_HOSTBOOT_P10_BINARY_WINK_FILENAME) \
+ -occ_binary_filename $(OCC_STAGING_DIR)/$(BR2_OCC_P10_BIN_FILENAME) \
+ -targeting_binary_filename $(TARGETING_BINARY_FILENAME) \
+ -targeting_RO_binary_filename $(TARGETING_BINARY_FILENAME).protected \
+ -targeting_RW_binary_filename $(TARGETING_BINARY_FILENAME).unprotected \
+ -wofdata_binary_filename $(PNOR_SCRATCH_DIR)/wofdata.bin.ecc \
+ -memddata_binary_filename $(PNOR_SCRATCH_DIR)/memd_extra_data.bin.ecc \
+ -ocmbfw_binary_filename $(PNOR_SCRATCH_DIR)/$(BR2_OCMBFW_P10_PROCESSED_FILENAME) \
+ -openpower_version_filename $(PNOR_SCRATCH_DIR)/openpower_pnor_version.bin \
+ -devtree_binary_filename $(PNOR_SCRATCH_DIR)/DEVTREE.bin ;\
+ $(INSTALL) $(STAGING_DIR)/pnor.$(XML_VAR)/$(XML_VAR).pnor $(BINARIES_DIR) ;\
+ PATH=$(HOST_DIR)/usr/bin:$(PATH) $(HOST_DIR)/usr/bin/generate-tar -i squashfs \
+ -m $(XML_VAR) \
+ -f $(STAGING_DIR)/pnor.$(XML_VAR)/$(XML_VAR).pnor.squashfs.tar \
+ $(STAGING_DIR)/pnor.$(XML_VAR)/$(XML_VAR).pnor -s ;\
+ $(INSTALL) $(STAGING_DIR)/pnor.$(XML_VAR)/$(XML_VAR).pnor.squashfs.tar $(BINARIES_DIR) ;\
+ cd $(STAGING_DIR)/pnor.$(XML_VAR) ;\
+ PATH=$(HOST_DIR)/usr/sbin:$(PATH) $(HOST_DIR)/usr/bin/generate-ubi \
+ $(XML_VAR).pnor.squashfs.tar ;\
+ $(INSTALL) $(STAGING_DIR)/pnor.$(XML_VAR)/$(XML_VAR).pnor.ubi.mtd $(BINARIES_DIR) ;\
+ $(TARGET_MAKE_ENV) $(@D)/makelidpkg \
+ $(BINARIES_DIR)/$(XML_VAR).ebmc_lids.tar.gz \
+ $(PNOR_SCRATCH_DIR); \
+ if [ -e $(STAGING_DIR)/openpower_pnor_scratch ] ; then \
+ echo "*** Reusing existing $(STAGING_DIR)/openpower_pnor_scratch => $$(readlink -f $(STAGING_DIR)/openpower_pnor_scratch)";\
+ else \
+ ln -rs $(PNOR_SCRATCH_DIR) $(STAGING_DIR)/openpower_pnor_scratch ;\
+ ln -rs $(BINARIES_DIR)/$(XML_VAR).ebmc_lids.tar.gz \
+ $(BINARIES_DIR)/ebmc_lids.tar.gz ;\
+ ln -rs $(BINARIES_DIR)/$(XML_VAR).pnor \
+ $(BINARIES_DIR)/$(BR2_OPENPOWER_PNOR_P10_LEGACY_PNOR_TARGET).pnor ;\
+ ln -rs $(BINARIES_DIR)/$(XML_VAR).pnor.squashfs.tar \
+ $(BINARIES_DIR)/$(BR2_OPENPOWER_PNOR_P10_LEGACY_PNOR_TARGET).pnor.squashfs.tar ;\
+ ln -rs $(BINARIES_DIR)/$(XML_VAR).pnor.ubi.mtd \
+ $(BINARIES_DIR)/$(BR2_OPENPOWER_PNOR_P10_LEGACY_PNOR_TARGET).pnor.ubi.mtd ;\
+ fi ;\
+ fi
+ # Copy images to mmc dir
+ # HBBL
+ test -f "$(BINARIES_DIR)/mmc/HBBL.P10" ||\
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/hbbl.bin.ecc \
+ $(BINARIES_DIR)/mmc/HBBL.P10
+
+ # HBB
+ test -f "$(BINARIES_DIR)/mmc/HBB.P10" ||\
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/hostboot.header.bin.ecc \
+ $(BINARIES_DIR)/mmc/HBB.P10
+
+ # HBI
+ test -f "$(BINARIES_DIR)/mmc/HBI.P10" ||\
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/hostboot_extended.header.bin.ecc \
+ $(BINARIES_DIR)/mmc/HBI.P10
+
+ # HBD
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/$(TARGETING_BINARY_FILENAME) \
+ $(BINARIES_DIR)/mmc/HBD.$(XML_VAR)
+
+ # SBE
+ test -f "$(BINARIES_DIR)/mmc/SBE.P10" ||\
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/$(BR2_HOSTBOOT_P10_BINARY_SBE_FILENAME) \
+ $(BINARIES_DIR)/mmc/SBE.P10
+
+ # PAYLOAD
+ test -f "$(BINARIES_DIR)/mmc/PAYLOAD.P10" ||\
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/skiboot.lid.xz \
+ $(BINARIES_DIR)/mmc/PAYLOAD.P10
+
+ # HCODE
+ test -f "$(BINARIES_DIR)/mmc/HCODE.P10" ||\
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/$(BR2_HOSTBOOT_P10_BINARY_WINK_FILENAME) \
+ $(BINARIES_DIR)/mmc/HCODE.P10
+
+ # HBRT
+ test -f "$(BINARIES_DIR)/mmc/HBRT.P10" ||\
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/hostboot_runtime.header.bin.ecc \
+ $(BINARIES_DIR)/mmc/HBRT.P10
+
+ # OCC
+ test -f "$(BINARIES_DIR)/mmc/OCC.P10" ||\
+ $(INSTALL) -m 0644 -D $(OCC_STAGING_DIR)/$(BR2_OCC_P10_BIN_FILENAME).ecc \
+ $(BINARIES_DIR)/mmc/OCC.P10
+
+ # BOOTKERNEL
+ test -f "$(BINARIES_DIR)/mmc/BOOTKERNEL.P10" ||\
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/$(LINUX_IMAGE_NAME) \
+ $(BINARIES_DIR)/mmc/BOOTKERNEL.P10
+
+ # CAPP
+ test -f "$(BINARIES_DIR)/mmc/CAPP.P10" ||\
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/cappucode.bin.ecc \
+ $(BINARIES_DIR)/mmc/CAPP.P10
+
+ # VERSION
+ test -f "$(BINARIES_DIR)/mmc/VERSION.P10" ||\
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/openpower_pnor_version.bin \
+ $(BINARIES_DIR)/mmc/VERSION.P10
+
+ # IMA_CATALOG
+ test -f "$(BINARIES_DIR)/mmc/IMA_CATALOG.P10" ||\
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/ima_catalog.bin.ecc \
+ $(BINARIES_DIR)/mmc/IMA_CATALOG.P10
+
+ # SBKT (special content)
+ test -f "$(BINARIES_DIR)/mmc/SBKT.P10" ||\
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/SBKT.bin \
+ $(BINARIES_DIR)/mmc/SBKT.P10
+
+ # HBEL (blank)
+ test -f "$(BINARIES_DIR)/mmc/HBEL.P10" ||\
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/hbel.bin.ecc \
+ $(BINARIES_DIR)/mmc/HBEL.P10
+
+ # GUARD (blank)
+ test -f "$(BINARIES_DIR)/mmc/GUARD.P10" ||\
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/guard.bin.ecc \
+ $(BINARIES_DIR)/mmc/GUARD.P10
+
+ # HB_VOLATILE (blank)
+ test -f "$(BINARIES_DIR)/mmc/HB_VOLATILE.P10" ||\
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/hb_volatile.bin \
+ $(BINARIES_DIR)/mmc/HB_VOLATILE.P10
+
+ # NVRAM (blank)
+ test -f "$(BINARIES_DIR)/mmc/NVRAM.P10" ||\
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/nvram.bin \
+ $(BINARIES_DIR)/mmc/NVRAM.P10
+
+ # ATTR_TMP (blank)
+ test -f "$(BINARIES_DIR)/mmc/ATTR_TMP.P10" ||\
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/attr_tmp.bin.ecc \
+ $(BINARIES_DIR)/mmc/ATTR_TMP.P10
+
+ # ATTR_PERM (blank)
+ test -f "$(BINARIES_DIR)/mmc/ATTR_PERM.P10" ||\
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/attr_perm.bin.ecc \
+ $(BINARIES_DIR)/mmc/ATTR_PERM.P10
+
+ # FIRDATA (blank, optional)
+ if [ -f "$(PNOR_SCRATCH_DIR)/firdata.bin.ecc" ] ; then \
+ test -f "$(BINARIES_DIR)/mmc/FIRDATA.P10" || \
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/firdata.bin.ecc \
+ $(BINARIES_DIR)/mmc/FIRDATA.P10 ; \
+ fi
+
+ # SECBOOT (blank)
+ test -f "$(BINARIES_DIR)/mmc/SECBOOT.P10" ||\
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/secboot.bin.ecc \
+ $(BINARIES_DIR)/mmc/SECBOOT.P10
+
+ # RINGOVD (blank)
+ test -f "$(BINARIES_DIR)/mmc/RINGOVD.P10" ||\
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/ringOvd.bin \
+ $(BINARIES_DIR)/mmc/RINGOVD.P10
+
+ # CVPD (blank, optional)
+ if [ -f "$(PNOR_SCRATCH_DIR)/cvpd.bin.ecc" ] ; then \
+ test -f "$(BINARIES_DIR)/mmc/CVPD.P10" ||\
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/cvpd.bin.ecc \
+ $(BINARIES_DIR)/mmc/CVPD.P10 ; \
+ fi
+
+ # DJVPD (blank, optional)
+ if [ -f "$(PNOR_SCRATCH_DIR)/djvpd_fill.bin.ecc" ] ; then \
+ test -f "$(BINARIES_DIR)/mmc/DJVPD.P10" ||\
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/djvpd_fill.bin.ecc \
+ $(BINARIES_DIR)/mmc/DJVPD.P10 ; \
+ fi
+
+ # MVPD (blank, optional)
+ if [ -f "$(PNOR_SCRATCH_DIR)/mvpd_fill.bin.ecc" ] ; then \
+ test -f "$(BINARIES_DIR)/mmc/MVPD.P10" ||\
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/mvpd_fill.bin.ecc \
+ $(BINARIES_DIR)/mmc/MVPD.P10 ; \
+ fi
+
+ # EECACHE (blank, optional)
+ if [ -f "$(PNOR_SCRATCH_DIR)/eecache_fill.bin.ecc" ] ; then \
+ test -f "$(BINARIES_DIR)/mmc/EECACHE.P10" ||\
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/eecache_fill.bin.ecc \
+ $(BINARIES_DIR)/mmc/EECACHE.P10 ; \
+ fi
+
+ # WOFDATA
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/wofdata.bin.ecc \
+ $(BINARIES_DIR)/mmc/WOFDATA.$(XML_VAR)
+
+ # MEMD (optional)
+ if [ -f "$(PNOR_SCRATCH_DIR)/memd_extra_data.bin.ecc" ] ; then \
+ test -f "$(BINARIES_DIR)/mmc/MEMD.P10" ||\
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/memd_extra_data.bin.ecc \
+ $(BINARIES_DIR)/mmc/MEMD.P10 ; \
+ fi
+
+ # HDAT
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/hdat.bin.ecc \
+ $(BINARIES_DIR)/mmc/HDAT.$(XML_VAR)
+
+ # OCMBFW (optional)
+ if [ -f "$(PNOR_SCRATCH_DIR)/$(BR2_OCMBFW_P10_PROCESSED_FILENAME)" ] ; then \
+ test -f "$(BINARIES_DIR)/mmc/OCMBFW.P10" ||\
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/$(BR2_OCMBFW_P10_PROCESSED_FILENAME) \
+ $(BINARIES_DIR)/mmc/OCMBFW.P10 ; \
+ fi
+
+ # DEVTREE
+ $(INSTALL) -m 0644 -D $(PNOR_SCRATCH_DIR)/DEVTREE.bin \
+ $(BINARIES_DIR)/mmc/DEVTREE.$(XML_VAR)
+
+endef
+
+define OPENPOWER_PNOR_P10_INSTALL_IMAGES_CMDS
+
+ if [ -n "$(BR2_OPENPOWER_PNOR_P10_LEGACY_PNOR_TARGET)" ] ; then \
+ rm -f $(BINARIES_DIR)/*.pnor \
+ $(BINARIES_DIR)/*.pnor.squashfs.tar \
+ $(BINARIES_DIR)/*.ubi.mtd ;\
+ rm -rf $(BINARIES_DIR)/ebmc_lids.tar.gz \
+ $(BINARIES_DIR)/*.ebmc_lids.tar.gz ;\
+ rm -rf $(STAGING_DIR)/openpower_pnor_scratch \
+ $(STAGING_DIR)/openpower_pnor_scratch.* ;\
+ fi
+
+ $(foreach xmlpkg,$(BR2_OPENPOWER_P10_XMLS),\
+ $(call OPENPOWER_PNOR_P10_UPDATE_IMAGE,\
+ $(xmlpkg)))
+
+ # Create Debug Tarball (target-agnostic)
+ mkdir -p $(STAGING_DIR)/pnor/host_fw_debug_tarball_files/
+ cp -r $(STAGING_DIR)/hostboot_build_images/* \
+ $(BUILD_DIR)/skiboot-$(SKIBOOT_VERSION)/skiboot.elf \
+ $(BUILD_DIR)/skiboot-$(SKIBOOT_VERSION)/skiboot.map \
+ $(BUILD_DIR)/linux-$(LINUX_VERSION)/.config \
+ $(BUILD_DIR)/linux-$(LINUX_VERSION)/vmlinux \
+ $(BUILD_DIR)/linux-$(LINUX_VERSION)/System.map \
+ $(STAGING_DIR)/fsp-trace/fsp-trace \
+ $(BINARIES_DIR)/zImage.epapr \
+ $(STAGING_DIR)/pnor/host_fw_debug_tarball_files/
+ tar -zcvf $(BINARIES_DIR)/host_fw_debug.tar -C $(STAGING_DIR)/pnor/host_fw_debug_tarball_files/ .
+
+endef
+
+$(eval $(generic-package))
+# Generate openPOWER pnor version string by combining subpackage version string files
+$(eval $(OPENPOWER_VERSION))
+