From 84db3b3d44099132f6aa0e6049d5727e4a0b0fbc Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Fri, 21 Jan 2022 12:53:12 -0800 Subject: embeddedsw: Rework the embeddedsw copy firmware recipes fsbl, plmfw, pufw, and psmfw are reworked to provide earlier error messages, and better handle multiconfig builds. Also adjust MACHINE specific changes to use .* for compatibility based on the SOC_FAMILY override. The system doesn't always set the SOC_FAMILY as COMPATIBLE_MACHINE, so this avoids an error of incompatible machine. Align all of the expected firmware filenames to be -${MACHINE}. The user can override as necessary. The license moves to CLOSED as we don't know the license of the software being provided by the user or other dependencies. It'll be up to the user to reconcile it. Signed-off-by: Mark Hatle --- .../conf/machine/include/soc-versal.inc | 16 ++++++++-------- .../conf/machine/include/soc-zynqmp.inc | 22 ++++++++-------------- 2 files changed, 16 insertions(+), 22 deletions(-) (limited to 'meta-xilinx-core/conf/machine') diff --git a/meta-xilinx-core/conf/machine/include/soc-versal.inc b/meta-xilinx-core/conf/machine/include/soc-versal.inc index f2a033ad..40145963 100644 --- a/meta-xilinx-core/conf/machine/include/soc-versal.inc +++ b/meta-xilinx-core/conf/machine/include/soc-versal.inc @@ -22,14 +22,14 @@ UBOOT_ELF ?= "u-boot.elf" # Default, if multiconfig is off, call plm/psm-firmware directly, otherwise call the versal-fw multiconfig version # The Linux compatible plm/psm-firmware though requires meta-xilinx-tools -PLM_DEPENDS ?= "${@bb.utils.contains('BBMULTICONFIG', 'versal-fw', '', 'plm-firmware:do_deploy', d)}" -PLM_MCDEPENDS ?= "${@bb.utils.contains('BBMULTICONFIG', 'versal-fw', 'mc::versal-fw:plm-firmware:do_deploy', '', d)}" -PLM_DEPLOY_DIR ?= "${@bb.utils.contains('BBMULTICONFIG', 'versal-fw', '${TOPDIR}/tmp-microblaze-versal-fw/deploy/images/${MACHINE}', '${DEPLOY_DIR_IMAGE}', d)}" +PLM_DEPENDS ??= "" +PLM_MCDEPENDS ??= "" +PLM_DEPLOY_DIR ??= "${DEPLOY_DIR_IMAGE}" +PLM_IMAGE_NAME ??= "plm-${MACHINE}" PLM_DEPLOY_DIR[vardepsexclude] += "TOPDIR" -PLM_IMAGE_NAME ?= "${@bb.utils.contains('BBMULTICONFIG', 'versal-fw', 'plm-versal-mb', 'plm-${MACHINE}', d)}" -PSM_DEPENDS ?= "${@bb.utils.contains('BBMULTICONFIG', 'versal-fw', '', 'psm-firmware:do_deploy', d)}" -PSM_MCDEPENDS ?= "${@bb.utils.contains('BBMULTICONFIG', 'versal-fw', 'mc::versal-fw:psm-firmware:do_deploy', '', d)}" -PSM_FIRMWARE_DEPLOY_DIR ?= "${@bb.utils.contains('BBMULTICONFIG', 'versal-fw', '${TOPDIR}/tmp-microblaze-versal-fw/deploy/images/${MACHINE}', '${DEPLOY_DIR_IMAGE}', d)}" +PSM_DEPENDS ??= "" +PSM_MCDEPENDS ??= "" +PSM_FIRMWARE_DEPLOY_DIR ??= "${DEPLOY_DIR_IMAGE}" +PSM_FIRMWARE_IMAGE_NAME ??= "psm-firmware-${MACHINE}" PSM_DEPLOY_DIR[vardepsexclude] += "TOPDIR" -PSM_FIRMWARE_IMAGE_NAME ?= "${@bb.utils.contains('BBMULTICONFIG', 'versal-fw', 'psm-firmware-versal-mb', 'psm-firmware-${MACHINE}', d)}" diff --git a/meta-xilinx-core/conf/machine/include/soc-zynqmp.inc b/meta-xilinx-core/conf/machine/include/soc-zynqmp.inc index e32fd617..d67fa95d 100644 --- a/meta-xilinx-core/conf/machine/include/soc-zynqmp.inc +++ b/meta-xilinx-core/conf/machine/include/soc-zynqmp.inc @@ -34,18 +34,12 @@ XSERVER_EXT:zynqmp ?= "xf86-video-armsoc" # Default PMU ROM PMU_ROM ?= "${DEPLOY_DIR_IMAGE}/pmu-rom.elf" -# Default, if multiconfig is off, call pmu-firmware directly, otherwise call the zynqmp-pmufw multiconfig version -# The Linux compatible pmu-firmware though requires meta-xilinx-tools -PMU_DEPENDS ?= "${@bb.utils.contains('BBMULTICONFIG', 'zynqmp-pmufw', '', 'pmu-firmware:do_deploy', d)}" -PMU_MCDEPENDS ?= "${@bb.utils.contains('BBMULTICONFIG', 'zynqmp-pmufw', 'mc::zynqmp-pmufw:pmu-firmware:do_deploy', '', d)}" -PMU_FIRMWARE_DEPLOY_DIR ?= "${@bb.utils.contains('BBMULTICONFIG', 'zynqmp-pmufw', '${TOPDIR}/tmp-microblaze-zynqmp-pmufw/deploy/images/${MACHINE}', '${DEPLOY_DIR_IMAGE}', d)}" + +# Default expects the user to provide a specific pmu-firwmare in the deploy +# directory, named "pmu-firmware-${MACHINE}.elf" and "pmu-firmware-${MACHINE}.bin" +PMU_DEPENDS ??= "" +PMU_MCDEPENDS ??= "" +PMU_FIRMWARE_DEPLOY_DIR ??= "${DEPLOY_DIR_IMAGE}" +PMU_FIRMWARE_IMAGE_NAME ??= "pmu-firmware-${MACHINE}" + PMU_FIRMWARE_DEPLOY_DIR[vardepsexclude] += "TOPDIR" -PMU_FIRMWARE_IMAGE_NAME ?= "${@bb.utils.contains('BBMULTICONFIG', 'zynqmp-pmufw', 'pmu-firmware-zynqmp-pmu', 'pmu-firmware-${MACHINE}', d)}" - -# Default, if multiconfig is off, the fsbl is in the regular deploydir, otherwise -# it is located under a multiconfig specific deploydir -FSBL_DEPENDS ?= "${@bb.utils.contains('BBMULTICONFIG', 'fsbl-fw', '', 'fsbl-firmware:do_deploy', d)}" -FSBL_MCDEPENDS ?= "${@bb.utils.contains('BBMULTICONFIG', 'fsbl-fw', 'mc::fsbl-fw:fsbl-firmware:do_deploy', '', d)}" -FSBL_DEPLOY_DIR ?= "${@bb.utils.contains('BBMULTICONFIG', 'fsbl-fw', '${TOPDIR}/tmp-fsbl-fw/deploy/images/${MACHINE}', '${DEPLOY_DIR_IMAGE}', d)}" -FSBL_DEPLOY_DIR[vardepsexclude] += "TOPDIR" -FSBL_IMAGE_NAME ?= "fsbl-${MACHINE}" -- cgit v1.2.3-54-g00ecf