diff options
| author | Jaewon Lee <jaewon.lee@xilinx.com> | 2021-06-21 14:46:06 -0700 |
|---|---|---|
| committer | Sai Hari Chandana Kalluri <chandana.kalluri@xilinx.com> | 2021-09-27 21:34:01 -0700 |
| commit | 2bb2224aa7446f64b9843752c41cab3fc8ded6fa (patch) | |
| tree | 6bc2a3fff080ab0ec858130c06b95e2250514362 | |
| parent | e0718bdb5b141438b6f21911a48f00f6e470736f (diff) | |
| download | meta-xilinx-2bb2224aa7446f64b9843752c41cab3fc8ded6fa.tar.gz | |
Enabling bootbin wiring for decoupling flow for zynqmp and versal
Signed-off-by: Jaewon Lee <jaewon.lee@xilinx.com>
11 files changed, 103 insertions, 131 deletions
diff --git a/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware.inc b/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware.inc index 64279467..5060887b 100644 --- a/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware.inc +++ b/meta-xilinx-bsp/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware.inc | |||
| @@ -81,7 +81,7 @@ do_compile() { | |||
| 81 | 81 | ||
| 82 | do_install() { | 82 | do_install() { |
| 83 | install -d ${D}/boot | 83 | install -d ${D}/boot |
| 84 | install -Dm 0644 ${OUTPUT_DIR}/bl31/bl31.elf ${D}/boot/${PN}-${SRCPV}.elf | 84 | install -Dm 0644 ${OUTPUT_DIR}/bl31/bl31.elf ${D}/boot/${PN}.elf |
| 85 | } | 85 | } |
| 86 | 86 | ||
| 87 | do_deploy() { | 87 | do_deploy() { |
| @@ -100,4 +100,4 @@ do_deploy() { | |||
| 100 | ln -sf ${ATF_BASE_NAME}.ub ${DEPLOYDIR}/atf-uboot.ub | 100 | ln -sf ${ATF_BASE_NAME}.ub ${DEPLOYDIR}/atf-uboot.ub |
| 101 | } | 101 | } |
| 102 | addtask deploy before do_build after do_compile | 102 | addtask deploy before do_build after do_compile |
| 103 | FILES_${PN} += "/boot/${PN}-${SRCPV}.elf" | 103 | FILES_${PN} += "/boot/${PN}.elf" |
diff --git a/meta-xilinx-bsp/recipes-bsp/base-pdi/base-pdi_1.0.bb b/meta-xilinx-bsp/recipes-bsp/base-pdi/base-pdi_1.0.bb new file mode 100644 index 00000000..8b77fd51 --- /dev/null +++ b/meta-xilinx-bsp/recipes-bsp/base-pdi/base-pdi_1.0.bb | |||
| @@ -0,0 +1,30 @@ | |||
| 1 | DESCRIPTION = "Recipe to deploy base pdi" | ||
| 2 | |||
| 3 | LICENSE = "CLOSED" | ||
| 4 | |||
| 5 | PROVIDES = "virtual/base-pdi" | ||
| 6 | |||
| 7 | COMPATIBLE_MACHINE = "^$" | ||
| 8 | COMPATIBLE_MACHINE_versal = "versal" | ||
| 9 | |||
| 10 | PACKAGE_ARCH ?= "${MACHINE_ARCH}" | ||
| 11 | |||
| 12 | do_compile[noexec] = "1" | ||
| 13 | |||
| 14 | PDI_PATH ?= "" | ||
| 15 | SRC_URI += "${@['file://'+d.getVar('PDI_PATH'),''][d.getVar('PDI_PATH') == '']}" | ||
| 16 | |||
| 17 | #base install will just take from PDI_PATH variable | ||
| 18 | #will need to bbappend to this in meta-xilinx-tools to use xsct to extract pdi from xsa and install | ||
| 19 | do_install() { | ||
| 20 | |||
| 21 | if [ -f ${WORKDIR}/${PDI_PATH} ];then | ||
| 22 | install -d ${D}/boot | ||
| 23 | install -m 0644 ${WORKDIR}/${PDI_PATH} ${D}/boot/base-design.pdi | ||
| 24 | else | ||
| 25 | bbfatal "No base pdi supplied" | ||
| 26 | fi | ||
| 27 | } | ||
| 28 | SYSROOT_DIRS += "/boot" | ||
| 29 | |||
| 30 | FILES_${PN} += "/boot/*" | ||
diff --git a/meta-xilinx-bsp/recipes-bsp/bootbin/machine-xilinx-versal.inc b/meta-xilinx-bsp/recipes-bsp/bootbin/machine-xilinx-versal.inc index e10339dd..a9c58aa2 100644 --- a/meta-xilinx-bsp/recipes-bsp/bootbin/machine-xilinx-versal.inc +++ b/meta-xilinx-bsp/recipes-bsp/bootbin/machine-xilinx-versal.inc | |||
| @@ -1,46 +1,35 @@ | |||
| 1 | #Extra args for versal | 1 | #Extra args for versal |
| 2 | BOOTGEN_EXTRA_ARGS += "-dump bh" | 2 | BOOTGEN_EXTRA_ARGS += "-dump bh" |
| 3 | 3 | ||
| 4 | #Add pdi dependency for versal | ||
| 5 | DEPENDS += "virtual/base-pdi" | ||
| 6 | |||
| 7 | # specify BIF common attribute for FSBL | 4 | # specify BIF common attribute for FSBL |
| 8 | BIF_COMMON_ATTR ?= "" | 5 | BIF_COMMON_ATTR ?= "" |
| 9 | 6 | ||
| 10 | # specify BIF partition attributes required for BOOT.bin | 7 | # specify BIF partition attributes required for BOOT.bin |
| 11 | BIF_PARTITION_ATTR ?= "pdi plm psm dtb atf u-boot" | 8 | BIF_PARTITION_ATTR ?= "base-pdi plmfw psmfw device-tree arm-trusted-firmware u-boot-xlnx" |
| 12 | 9 | ||
| 13 | # specify BIF partition attributes for pdi | 10 | # specify BIF partition attributes for base-pdi |
| 14 | BIF_PARTITION_ATTR[pdi] ?= "type=bootimage" | 11 | BIF_PARTITION_ATTR[base-pdi] ?= "type=bootimage" |
| 15 | BIF_PARTITION_IMAGE[pdi] ?= "${RECIPE_SYSROOT}/boot/base-design.pdi" | 12 | BIF_PARTITION_IMAGE[base-pdi] ?= "${RECIPE_SYSROOT}/boot/base-design.pdi" |
| 16 | BIF_PARTITION_DEPENDS[pdi] ?= "virtual/base-pdi:do_populate_sysroot" | 13 | |
| 17 | 14 | # specify BIF partition attributes for plmfw | |
| 18 | # specify BIF partition attributes for plm | 15 | BIF_PARTITION_ATTR[plmfw] ?= "type=bootloader" |
| 19 | PLM_IMAGE_NAME ??= "plm-${MACHINE}" | 16 | BIF_PARTITION_IMAGE[plmfw] ?= "${RECIPE_SYSROOT}/boot/plmfw.elf" |
| 20 | BIF_PARTITION_ATTR[plm] ?= "type=bootloader" | 17 | |
| 21 | BIF_PARTITION_IMAGE[plm] ?= "${DEPLOY_DIR_IMAGE}/${PLM_IMAGE_NAME}.elf" | 18 | # specify BIF partition attributes for psmfw |
| 22 | BIF_PARTITION_DEPENDS[plm] ?= "virtual/plm:do_deploy" | 19 | BIF_PARTITION_ATTR[psmfw] ?= "core=psm" |
| 23 | 20 | BIF_PARTITION_IMAGE[psmfw] ?= "${RECIPE_SYSROOT}/boot/psmfw.elf" | |
| 24 | # specify BIF partition attributes for psm | 21 | |
| 25 | PSM_FIRMWARE_IMAGE_NAME ??= "psm-firmware-${MACHINE}" | 22 | # specify BIF partition attributes for device-tree |
| 26 | BIF_PARTITION_ATTR[psm] ?= "core=psm" | 23 | BIF_PARTITION_ATTR[device-tree] ?= "type=raw, load=0x1000" |
| 27 | BIF_PARTITION_IMAGE[psm] ?= "${DEPLOY_DIR_IMAGE}/${PSM_FIRMWARE_IMAGE_NAME}.elf" | 24 | BIF_PARTITION_IMAGE[device-tree] ?= "${RECIPE_SYSROOT}/boot/devicetree/system-top.dtb" |
| 28 | BIF_PARTITION_DEPENDS[psm] ?= "virtual/psm-firmware:do_deploy" | 25 | BIF_PARTITION_ID[device-tree] ?= "0x1c000000" |
| 29 | |||
| 30 | # specify BIF partition attributes for dtb | ||
| 31 | BIF_PARTITION_ATTR[dtb] ?= "type=raw, load=0x1000" | ||
| 32 | BIF_PARTITION_IMAGE[dtb] ?= "${DEPLOY_DIR_IMAGE}/system.dtb" | ||
| 33 | BIF_PARTITION_DEPENDS[dtb] ?= "virtual/dtb:do_deploy" | ||
| 34 | BIF_PARTITION_ID[dtb] ?= "0x1c000000" | ||
| 35 | 26 | ||
| 36 | # specify BIF partition attributes for u-boot | 27 | # specify BIF partition attributes for u-boot |
| 37 | BIF_PARTITION_ATTR[u-boot] ?= "core=a72-0, exception_level = el-2" | 28 | BIF_PARTITION_ATTR[u-boot-xlnx] ?= "core=a72-0, exception_level = el-2" |
| 38 | BIF_PARTITION_IMAGE[u-boot] ?= "${DEPLOY_DIR_IMAGE}/u-boot-${MACHINE}.elf" | 29 | BIF_PARTITION_IMAGE[u-boot-xlnx] ?= "${RECIPE_SYSROOT}/boot/u-boot.elf" |
| 39 | BIF_PARTITION_DEPENDS[u-boot] ?= "virtual/bootloader:do_deploy u-boot-zynq-scr:do_deploy" | 30 | BIF_PARTITION_ID[u-boot-xlnx] ?= "0x1c000000" |
| 40 | BIF_PARTITION_ID[u-boot] ?= "0x1c000000" | 31 | |
| 41 | 32 | # specify BIF partition attributes for arm-trusted-firmware | |
| 42 | # specify BIF partition attributes for atf | 33 | BIF_PARTITION_ATTR[arm-trusted-firmware] ?= "core=a72-0, exception_level = el-3, trustzone" |
| 43 | BIF_PARTITION_ATTR[atf] ?= "core=a72-0, exception_level = el-3, trustzone" | 34 | BIF_PARTITION_IMAGE[arm-trusted-firmware] ?= "${RECIPE_SYSROOT}/boot/arm-trusted-firmware.elf" |
| 44 | BIF_PARTITION_IMAGE[atf] ?= "${DEPLOY_DIR_IMAGE}/arm-trusted-firmware.elf" | 35 | BIF_PARTITION_ID[arm-trusted-firmware] ?= "0x1c000000" |
| 45 | BIF_PARTITION_DEPENDS[atf] ?= "virtual/arm-trusted-firmware:do_deploy" | ||
| 46 | BIF_PARTITION_ID[atf] ?= "0x1c000000" | ||
diff --git a/meta-xilinx-bsp/recipes-bsp/bootbin/machine-xilinx-zynqmp.inc b/meta-xilinx-bsp/recipes-bsp/bootbin/machine-xilinx-zynqmp.inc index cd2026ad..4eb404c1 100644 --- a/meta-xilinx-bsp/recipes-bsp/bootbin/machine-xilinx-zynqmp.inc +++ b/meta-xilinx-bsp/recipes-bsp/bootbin/machine-xilinx-zynqmp.inc | |||
| @@ -2,39 +2,32 @@ | |||
| 2 | BIF_COMMON_ATTR ?= "" | 2 | BIF_COMMON_ATTR ?= "" |
| 3 | 3 | ||
| 4 | # specify BIF partition attributes required for BOOT.bin | 4 | # specify BIF partition attributes required for BOOT.bin |
| 5 | BIF_PARTITION_ATTR ?= "fsbl pmu atf u-boot" | 5 | BIF_PARTITION_ATTR = "fsbl pmufw arm-trusted-firmware device-tree u-boot-xlnx" |
| 6 | 6 | ||
| 7 | # specify BIF partition attributes for FSBL | 7 | # specify BIF partition attributes for FSBL |
| 8 | # bootloader is FSBL. Location where FSBL binary is present and dependency to build FSBL | 8 | # bootloader is FSBL. Location where FSBL binary is present and dependency to build FSBL |
| 9 | BIF_PARTITION_ATTR[fsbl] ?= "bootloader, destination_cpu=a53-0" | 9 | BIF_PARTITION_ATTR[fsbl] ?= "bootloader, destination_cpu=a53-0" |
| 10 | BIF_PARTITION_IMAGE[fsbl] ?= "${DEPLOY_DIR_IMAGE}/fsbl-${MACHINE}.elf" | 10 | BIF_PARTITION_IMAGE[fsbl] ?= "${RECIPE_SYSROOT}/boot/fsbl.elf" |
| 11 | BIF_PARTITION_DEPENDS[fsbl] ?= "virtual/fsbl:do_deploy" | ||
| 12 | 11 | ||
| 13 | # specify BIF partition attributes for PMU Firmware | 12 | # specify BIF partition attributes for PMU Firmware |
| 14 | # destination cpu for PMU. Location where PMU binary is present and dependency to build PMU Firmware | 13 | # destination cpu for PMU. Location where PMU binary is present and dependency to build PMU Firmware |
| 15 | PMU_FIRMWARE_IMAGE_NAME ??= "pmu-firmware-${MACHINE}" | 14 | BIF_PARTITION_ATTR[pmufw] ?= "destination_cpu=pmu" |
| 16 | BIF_PARTITION_ATTR[pmu] ?= "destination_cpu=pmu" | 15 | BIF_PARTITION_IMAGE[pmufw] ?= "${RECIPE_SYSROOT}/boot/pmufw.elf" |
| 17 | BIF_PARTITION_IMAGE[pmu] ?= "${DEPLOY_DIR_IMAGE}/${PMU_FIRMWARE_IMAGE_NAME}.elf" | ||
| 18 | BIF_PARTITION_DEPENDS[pmu] ?= "virtual/pmu-firmware:do_deploy" | ||
| 19 | 16 | ||
| 20 | # specify BIF partition attributes for ATF | 17 | # specify BIF partition attributes for ATF |
| 21 | # destination cpu for ATF, security levels. Location where ATF binary is present (dependency is not required as ATF is always built for ZU+, see zcu102-zynqmp.conf) | 18 | # destination cpu for ATF, security levels. Location where ATF binary is present (dependency is not required as ATF is always built for ZU+, see zcu102-zynqmp.conf) |
| 22 | BIF_PARTITION_ATTR[atf] ?= "destination_cpu=a53-0,exception_level=el-3,trustzone" | 19 | BIF_PARTITION_ATTR[arm-trusted-firmware] ?= "destination_cpu=a53-0,exception_level=el-3,trustzone" |
| 23 | BIF_PARTITION_IMAGE[atf] ?= "${DEPLOY_DIR_IMAGE}/arm-trusted-firmware.elf" | 20 | BIF_PARTITION_IMAGE[arm-trusted-firmware] ?= "${RECIPE_SYSROOT}/boot/arm-trusted-firmware.elf" |
| 24 | BIF_PARTITION_DEPENDS[atf] ?= "arm-trusted-firmware:do_deploy" | ||
| 25 | 21 | ||
| 26 | # specify BIF partition attributes for u-boot | 22 | # specify BIF partition attributes for u-boot |
| 27 | # destination cpu for u-boot, security levels. Location where u-boot binary is present (dependency is not required as u-boot is always built for ZU+, see zcu102-zynqmp.conf) | 23 | # destination cpu for u-boot, security levels. Location where u-boot binary is present (dependency is not required as u-boot is always built for ZU+, see zcu102-zynqmp.conf) |
| 28 | BIF_PARTITION_ATTR[u-boot] ?= "destination_cpu=a53-0,exception_level=el-2" | 24 | BIF_PARTITION_ATTR[u-boot-xlnx] ?= "destination_cpu=a53-0,exception_level=el-2" |
| 29 | BIF_PARTITION_IMAGE[u-boot] ?= "${DEPLOY_DIR_IMAGE}/u-boot-${MACHINE}.elf" | 25 | BIF_PARTITION_IMAGE[u-boot-xlnx] ?= "${RECIPE_SYSROOT}/boot/u-boot.elf" |
| 30 | BIF_PARTITION_DEPENDS[u-boot] ?= "virtual/bootloader:do_deploy" | ||
| 31 | 26 | ||
| 32 | # specify BIF partition attributes for dtb | 27 | # specify BIF partition attributes for dtb |
| 33 | BIF_PARTITION_ATTR[dtb] ?= "load=0x100000" | 28 | BIF_PARTITION_ATTR[device-tree] ?= "destination_cpu=a53-0,load=0x100000" |
| 34 | BIF_PARTITION_IMAGE[dtb] ?= "${DEPLOY_DIR_IMAGE}/system.dtb" | 29 | BIF_PARTITION_IMAGE[device-tree] ?= "${RECIPE_SYSROOT}/boot/devicetree/system-top.dtb" |
| 35 | BIF_PARTITION_DEPENDS[dtb] ?= "virtual/dtb:do_deploy" | ||
| 36 | 30 | ||
| 37 | # enable bitstream-Note this is not enabled by default (missing in BIF_PARTITION_ATTR) | 31 | # enable bitstream-Note this is not enabled by default (missing in BIF_PARTITION_ATTR) |
| 38 | BIF_PARTITION_ATTR[bitstream] ?= "destination_device=pl" | 32 | BIF_PARTITION_ATTR[bitstream] ?= "destination_device=pl" |
| 39 | BIF_PARTITION_IMAGE[bitstream] ?= "${DEPLOY_DIR_IMAGE}/download-${MACHINE}.bit" | 33 | BIF_PARTITION_IMAGE[bitstream] ?= "${DEPLOY_DIR_IMAGE}/download-${MACHINE}.bit" |
| 40 | BIF_PARTITION_DEPENDS[bitstream] ?= "virtual/bitstream:do_deploy" | ||
diff --git a/meta-xilinx-bsp/recipes-bsp/bootbin/xilinx-bootbin_1.0.bb b/meta-xilinx-bsp/recipes-bsp/bootbin/xilinx-bootbin_1.0.bb index 3a0535b7..4bd99bda 100644 --- a/meta-xilinx-bsp/recipes-bsp/bootbin/xilinx-bootbin_1.0.bb +++ b/meta-xilinx-bsp/recipes-bsp/bootbin/xilinx-bootbin_1.0.bb | |||
| @@ -13,7 +13,7 @@ PROVIDES = "virtual/boot-bin" | |||
| 13 | 13 | ||
| 14 | DEPENDS += "bootgen-native" | 14 | DEPENDS += "bootgen-native" |
| 15 | 15 | ||
| 16 | do_configure[depends] += "${@get_bootbin_depends(d)}" | 16 | DEPENDS += "${BIF_PARTITION_ATTR}" |
| 17 | 17 | ||
| 18 | PACKAGE_ARCH = "${MACHINE_ARCH}" | 18 | PACKAGE_ARCH = "${MACHINE_ARCH}" |
| 19 | 19 | ||
| @@ -26,20 +26,8 @@ SRC_URI += "${@('file://' + d.getVar("BIF_FILE_PATH")) if d.getVar("BIF_FILE_PAT | |||
| 26 | 26 | ||
| 27 | BOOTGEN_EXTRA_ARGS ?= "" | 27 | BOOTGEN_EXTRA_ARGS ?= "" |
| 28 | 28 | ||
| 29 | BIF_PARTITION_ATTR_zynqmp = "${@'fsbl pmu atf dtb u-boot' if d.getVar('FPGA_MNGR_RECONFIG_ENABLE') == '1' else 'fsbl bitstream pmu atf dtb u-boot'}" | ||
| 30 | |||
| 31 | do_patch[noexec] = "1" | 29 | do_patch[noexec] = "1" |
| 32 | 30 | ||
| 33 | def get_bootbin_depends(d): | ||
| 34 | bootbindeps = "" | ||
| 35 | bifpartition = (d.getVar("BIF_PARTITION_ATTR") or "").split() | ||
| 36 | attrdepends = d.getVarFlags("BIF_PARTITION_DEPENDS") or {} | ||
| 37 | for cfg in bifpartition: | ||
| 38 | if cfg in attrdepends: | ||
| 39 | bootbindeps = bootbindeps + " " + attrdepends[cfg] | ||
| 40 | |||
| 41 | return bootbindeps | ||
| 42 | |||
| 43 | def create_bif(config, attrflags, attrimage, ids, common_attr, biffd, d): | 31 | def create_bif(config, attrflags, attrimage, ids, common_attr, biffd, d): |
| 44 | import re, os | 32 | import re, os |
| 45 | for cfg in config: | 33 | for cfg in config: |
| @@ -150,12 +138,6 @@ do_compile() { | |||
| 150 | fi | 138 | fi |
| 151 | } | 139 | } |
| 152 | 140 | ||
| 153 | do_compile_append_versal() { | ||
| 154 | dd if=/dev/zero bs=256M count=1 > ${B}/QEMU_qspi.bin | ||
| 155 | dd if=${B}/BOOT.bin of=${B}/QEMU_qspi.bin bs=1 seek=0 conv=notrunc | ||
| 156 | dd if=${DEPLOY_DIR_IMAGE}/boot.scr of=${B}/QEMU_qspi.bin bs=1 seek=66584576 conv=notrunc | ||
| 157 | } | ||
| 158 | |||
| 159 | do_install() { | 141 | do_install() { |
| 160 | install -d ${D}/boot | 142 | install -d ${D}/boot |
| 161 | install -m 0644 ${B}/BOOT.bin ${D}/boot/BOOT.bin | 143 | install -m 0644 ${B}/BOOT.bin ${D}/boot/BOOT.bin |
| @@ -178,13 +160,9 @@ do_deploy_append_versal () { | |||
| 178 | 160 | ||
| 179 | install -m 0644 ${B}/BOOT_bh.bin ${DEPLOYDIR}/${BOOTBIN_BASE_NAME}_bh.bin | 161 | install -m 0644 ${B}/BOOT_bh.bin ${DEPLOYDIR}/${BOOTBIN_BASE_NAME}_bh.bin |
| 180 | ln -sf ${BOOTBIN_BASE_NAME}_bh.bin ${DEPLOYDIR}/BOOT-${MACHINE}_bh.bin | 162 | ln -sf ${BOOTBIN_BASE_NAME}_bh.bin ${DEPLOYDIR}/BOOT-${MACHINE}_bh.bin |
| 181 | |||
| 182 | install -m 0644 ${B}/QEMU_qspi.bin ${DEPLOYDIR}/${QEMUQSPI_BASE_NAME}.bin | ||
| 183 | ln -sf ${QEMUQSPI_BASE_NAME}.bin ${DEPLOYDIR}/QEMU_qspi-${MACHINE}.bin | ||
| 184 | } | 163 | } |
| 185 | 164 | ||
| 186 | FILES_${PN} += "/boot/BOOT.bin" | 165 | FILES_${PN} += "/boot/BOOT.bin" |
| 187 | SYSROOT_DIRS += "/boot" | 166 | SYSROOT_DIRS += "/boot" |
| 188 | 167 | ||
| 189 | addtask do_deploy before do_build after do_compile | 168 | addtask do_deploy before do_build after do_compile |
| 190 | |||
diff --git a/meta-xilinx-bsp/recipes-bsp/device-tree/device-tree.bb b/meta-xilinx-bsp/recipes-bsp/device-tree/device-tree.bb index 9f163a8b..86fcb26d 100644 --- a/meta-xilinx-bsp/recipes-bsp/device-tree/device-tree.bb +++ b/meta-xilinx-bsp/recipes-bsp/device-tree/device-tree.bb | |||
| @@ -11,6 +11,15 @@ LIC_FILES_CHKSUM = " \ | |||
| 11 | 11 | ||
| 12 | inherit devicetree | 12 | inherit devicetree |
| 13 | 13 | ||
| 14 | #this way of going through SRC_URI is better but if dts is including other dtsis, need to add all of them to SRC_URI.. | ||
| 15 | #SRC_URI += "file://${SYSTEM_DTFILE}" | ||
| 16 | #DT_FILES_PATH = "${@d.getVar('WORKDIR')+'/'+os.path.dirname(d.getVar('SYSTEM_DTFILE'))}" | ||
| 17 | |||
| 18 | DT_FILES_PATH = "${@os.path.dirname(d.getVar('SYSTEM_DTFILE')) if d.getVar('SYSTEM_DTFILE') else d.getVar('S')}" | ||
| 19 | |||
| 20 | COMPATIBLE_MACHINE_zynqmp = ".*" | ||
| 21 | COMPATIBLE_MACHINE_versal = ".*" | ||
| 22 | |||
| 14 | # Device-trees are inherently board specific | 23 | # Device-trees are inherently board specific |
| 15 | BOARD_ARCH ??= "${MACHINE_ARCH}" | 24 | BOARD_ARCH ??= "${MACHINE_ARCH}" |
| 16 | PACKAGE_ARCH = "${BOARD_ARCH}" | 25 | PACKAGE_ARCH = "${BOARD_ARCH}" |
diff --git a/meta-xilinx-bsp/recipes-bsp/embeddedsw/fsbl.bb b/meta-xilinx-bsp/recipes-bsp/embeddedsw/fsbl.bb index f2342041..4954b03d 100644 --- a/meta-xilinx-bsp/recipes-bsp/embeddedsw/fsbl.bb +++ b/meta-xilinx-bsp/recipes-bsp/embeddedsw/fsbl.bb | |||
| @@ -31,19 +31,15 @@ FSBL_FILE[vardepsexclude] = "FSBL_DEPLOY_DIR" | |||
| 31 | do_fetch[depends] += "${FSBL_DEPENDS}" | 31 | do_fetch[depends] += "${FSBL_DEPENDS}" |
| 32 | do_fetch[mcdepends] += "${FSBL_MCDEPENDS}" | 32 | do_fetch[mcdepends] += "${FSBL_MCDEPENDS}" |
| 33 | 33 | ||
| 34 | inherit update-alternatives deploy | 34 | inherit deploy |
| 35 | |||
| 36 | BINARY_NAME = "${PN}" | ||
| 37 | BINARY_EXT = ".elf" | ||
| 38 | BINARY_ID = "${@d.getVar('SRCPV') if d.getVar('SRCPV') else d.getVar('PR') }" | ||
| 39 | 35 | ||
| 40 | do_install() { | 36 | do_install() { |
| 41 | if [ ! -e ${FSBL_FILE}${BINARY_EXT} ]; then | 37 | if [ ! -e ${FSBL_FILE}.elf ]; then |
| 42 | echo "Unable to find FSBL_FILE (${FSBL_FILE}${BINARY_EXT})" | 38 | echo "Unable to find FSBL_FILE (${FSBL_FILE}.elf)" |
| 43 | exit 1 | 39 | exit 1 |
| 44 | fi | 40 | fi |
| 45 | 41 | ||
| 46 | install -Dm 0644 ${FSBL_FILE}${BINARY_EXT} ${D}/boot/${BINARY_NAME}-${BINARY_ID}${BINARY_EXT} | 42 | install -Dm 0644 ${FSBL_FILE}.elf ${D}/boot/${PN}.elf |
| 47 | } | 43 | } |
| 48 | 44 | ||
| 49 | # If the item is already in OUR deploy_image_dir, nothing to deploy! | 45 | # If the item is already in OUR deploy_image_dir, nothing to deploy! |
| @@ -57,12 +53,8 @@ do_deploy() { | |||
| 57 | 53 | ||
| 58 | addtask deploy before do_build after do_install | 54 | addtask deploy before do_build after do_install |
| 59 | 55 | ||
| 60 | ALTERNATIVE_${PN} = "fsbl" | ||
| 61 | ALTERNATIVE_TARGET[fsbl] = "/boot/${BINARY_NAME}-${BINARY_ID}${BINARY_EXT}" | ||
| 62 | ALTERNATIVE_LINK_NAME[fsbl] = "/boot/${BINARY_NAME}${BINARY_EXT}" | ||
| 63 | |||
| 64 | INSANE_SKIP_${PN} = "arch" | 56 | INSANE_SKIP_${PN} = "arch" |
| 65 | INSANE_SKIP_${PN}-dbg = "arch" | 57 | INSANE_SKIP_${PN}-dbg = "arch" |
| 66 | 58 | ||
| 67 | SYSROOT_DIRS += "/boot" | 59 | SYSROOT_DIRS += "/boot" |
| 68 | FILES_${PN} = "/boot/${BINARY_NAME}-${BINARY_ID}${BINARY_EXT}" | 60 | FILES_${PN} = "/boot/${PN}.elf" |
diff --git a/meta-xilinx-bsp/recipes-bsp/embeddedsw/plmfw.bb b/meta-xilinx-bsp/recipes-bsp/embeddedsw/plmfw.bb index dbc0c079..0dd93b09 100644 --- a/meta-xilinx-bsp/recipes-bsp/embeddedsw/plmfw.bb +++ b/meta-xilinx-bsp/recipes-bsp/embeddedsw/plmfw.bb | |||
| @@ -31,19 +31,15 @@ PLM_FILE[vardepsexclude] = "PLM_DEPLOY_DIR" | |||
| 31 | do_fetch[depends] += "${PLM_DEPENDS}" | 31 | do_fetch[depends] += "${PLM_DEPENDS}" |
| 32 | do_fetch[mcdepends] += "${PLM_MCDEPENDS}" | 32 | do_fetch[mcdepends] += "${PLM_MCDEPENDS}" |
| 33 | 33 | ||
| 34 | inherit update-alternatives deploy | 34 | inherit deploy |
| 35 | |||
| 36 | BINARY_NAME = "${PN}" | ||
| 37 | BINARY_EXT = ".elf" | ||
| 38 | BINARY_ID = "${@d.getVar('SRCPV') if d.getVar('SRCPV') else d.getVar('PR') }" | ||
| 39 | 35 | ||
| 40 | do_install() { | 36 | do_install() { |
| 41 | if [ ! -e ${PLM_FILE}${BINARY_EXT} ]; then | 37 | if [ ! -e ${PLM_FILE}.elf ]; then |
| 42 | echo "Unable to find PLM_FILE (${PLM_FILE}${BINARY_EXT})" | 38 | echo "Unable to find PLM_FILE (${PLM_FILE}.elf)" |
| 43 | exit 1 | 39 | exit 1 |
| 44 | fi | 40 | fi |
| 45 | 41 | ||
| 46 | install -Dm 0644 ${PLM_FILE}${BINARY_EXT} ${D}/boot/${BINARY_NAME}-${BINARY_ID}${BINARY_EXT} | 42 | install -Dm 0644 ${PLM_FILE}.elf ${D}/boot/${PN}.elf |
| 47 | } | 43 | } |
| 48 | 44 | ||
| 49 | # If the item is already in OUR deploy_image_dir, nothing to deploy! | 45 | # If the item is already in OUR deploy_image_dir, nothing to deploy! |
| @@ -58,12 +54,8 @@ do_deploy() { | |||
| 58 | 54 | ||
| 59 | addtask deploy before do_build after do_install | 55 | addtask deploy before do_build after do_install |
| 60 | 56 | ||
| 61 | ALTERNATIVE_${PN} = "plmfw" | ||
| 62 | ALTERNATIVE_TARGET[plmfw] = "/boot/${BINARY_NAME}-${BINARY_ID}${BINARY_EXT}" | ||
| 63 | ALTERNATIVE_LINK_NAME[plmfw] = "/boot/${BINARY_NAME}${BINARY_EXT}" | ||
| 64 | |||
| 65 | INSANE_SKIP_${PN} = "arch" | 57 | INSANE_SKIP_${PN} = "arch" |
| 66 | INSANE_SKIP_${PN}-dbg = "arch" | 58 | INSANE_SKIP_${PN}-dbg = "arch" |
| 67 | 59 | ||
| 68 | SYSROOT_DIRS += "/boot" | 60 | SYSROOT_DIRS += "/boot" |
| 69 | FILES_${PN} = "/boot/${BINARY_NAME}-${BINARY_ID}${BINARY_EXT}" | 61 | FILES_${PN} = "/boot/${PN}.elf" |
diff --git a/meta-xilinx-bsp/recipes-bsp/embeddedsw/pmufw.bb b/meta-xilinx-bsp/recipes-bsp/embeddedsw/pmufw.bb index 1400e3b3..13498737 100644 --- a/meta-xilinx-bsp/recipes-bsp/embeddedsw/pmufw.bb +++ b/meta-xilinx-bsp/recipes-bsp/embeddedsw/pmufw.bb | |||
| @@ -30,19 +30,15 @@ PMU_FILE[vardepsexclude] = "PMU_FIRMWARE_DEPLOY_DIR" | |||
| 30 | do_fetch[depends] += "${PMU_DEPENDS}" | 30 | do_fetch[depends] += "${PMU_DEPENDS}" |
| 31 | do_fetch[mcdepends] += "${PMU_MCDEPENDS}" | 31 | do_fetch[mcdepends] += "${PMU_MCDEPENDS}" |
| 32 | 32 | ||
| 33 | inherit deploy update-alternatives | 33 | inherit deploy |
| 34 | |||
| 35 | BINARY_NAME = "${PN}" | ||
| 36 | BINARY_EXT = ".elf" | ||
| 37 | BINARY_ID = "${@d.getVar('SRCPV') if d.getVar('SRCPV') else d.getVar('PR') }" | ||
| 38 | 34 | ||
| 39 | do_install() { | 35 | do_install() { |
| 40 | if [ ! -e ${PMU_FILE}${BINARY_EXT} ]; then | 36 | if [ ! -e ${PMU_FILE}.elf ]; then |
| 41 | echo "Unable to find PMU_FILE (${PMU_FILE}${BINARY_EXT})" | 37 | echo "Unable to find PMU_FILE (${PMU_FILE}.elf)" |
| 42 | exit 1 | 38 | exit 1 |
| 43 | fi | 39 | fi |
| 44 | 40 | ||
| 45 | install -Dm 0644 ${PMU_FILE}${BINARY_EXT} ${D}/boot/${BINARY_NAME}-${BINARY_ID}${BINARY_EXT} | 41 | install -Dm 0644 ${PMU_FILE}.elf ${D}/boot/${PN}.elf |
| 46 | } | 42 | } |
| 47 | 43 | ||
| 48 | # If the item is already in OUR deploy_image_dir, nothing to deploy! | 44 | # If the item is already in OUR deploy_image_dir, nothing to deploy! |
| @@ -56,12 +52,8 @@ do_deploy() { | |||
| 56 | 52 | ||
| 57 | addtask deploy before do_build after do_install | 53 | addtask deploy before do_build after do_install |
| 58 | 54 | ||
| 59 | ALTERNATIVE_${PN} = "pmufw" | ||
| 60 | ALTERNATIVE_TARGET[pmufw] = "/boot/${BINARY_NAME}-${BINARY_ID}${BINARY_EXT}" | ||
| 61 | ALTERNATIVE_LINK_NAME[pmufw] = "/boot/${BINARY_NAME}${BINARY_EXT}" | ||
| 62 | |||
| 63 | INSANE_SKIP_${PN} = "arch" | 55 | INSANE_SKIP_${PN} = "arch" |
| 64 | INSANE_SKIP_${PN}-dbg = "arch" | 56 | INSANE_SKIP_${PN}-dbg = "arch" |
| 65 | 57 | ||
| 66 | SYSROOT_DIRS += "/boot" | 58 | SYSROOT_DIRS += "/boot" |
| 67 | FILES_${PN} = "/boot/${BINARY_NAME}-${BINARY_ID}${BINARY_EXT}" | 59 | FILES_${PN} = "/boot/${PN}.elf" |
diff --git a/meta-xilinx-bsp/recipes-bsp/embeddedsw/psmfw.bb b/meta-xilinx-bsp/recipes-bsp/embeddedsw/psmfw.bb index ea41f8ff..267d6c8a 100644 --- a/meta-xilinx-bsp/recipes-bsp/embeddedsw/psmfw.bb +++ b/meta-xilinx-bsp/recipes-bsp/embeddedsw/psmfw.bb | |||
| @@ -31,19 +31,15 @@ PSM_FILE[vardepsexclude] = "PSM_FIRMWARE_DEPLOY_DIR" | |||
| 31 | do_fetch[depends] += "${PSM_DEPENDS}" | 31 | do_fetch[depends] += "${PSM_DEPENDS}" |
| 32 | do_fetch[mcdepends] += "${PSM_MCDEPENDS}" | 32 | do_fetch[mcdepends] += "${PSM_MCDEPENDS}" |
| 33 | 33 | ||
| 34 | inherit update-alternatives deploy | 34 | inherit deploy |
| 35 | |||
| 36 | BINARY_NAME = "${PN}" | ||
| 37 | BINARY_EXT = ".elf" | ||
| 38 | BINARY_ID = "${@d.getVar('SRCPV') if d.getVar('SRCPV') else d.getVar('PR') }" | ||
| 39 | 35 | ||
| 40 | do_install() { | 36 | do_install() { |
| 41 | if [ ! -e ${PSM_FILE}${BINARY_EXT} ]; then | 37 | if [ ! -e ${PSM_FILE}.elf ]; then |
| 42 | echo "Unable to find PSM_FILE (${PSM_FILE}${BINARY_EXT})" | 38 | echo "Unable to find PSM_FILE (${PSM_FILE}.elf)" |
| 43 | exit 1 | 39 | exit 1 |
| 44 | fi | 40 | fi |
| 45 | 41 | ||
| 46 | install -Dm 0644 ${PSM_FILE}${BINARY_EXT} ${D}/boot/${BINARY_NAME}-${BINARY_ID}${BINARY_EXT} | 42 | install -Dm 0644 ${PSM_FILE}.elf ${D}/boot/${PN}.elf |
| 47 | } | 43 | } |
| 48 | 44 | ||
| 49 | # If the item is already in OUR deploy_image_dir, nothing to deploy! | 45 | # If the item is already in OUR deploy_image_dir, nothing to deploy! |
| @@ -58,12 +54,8 @@ do_deploy() { | |||
| 58 | 54 | ||
| 59 | addtask deploy before do_build after do_install | 55 | addtask deploy before do_build after do_install |
| 60 | 56 | ||
| 61 | ALTERNATIVE_${PN} = "psmfw" | ||
| 62 | ALTERNATIVE_TARGET[psmfw] = "/boot/${BINARY_NAME}-${BINARY_ID}${BINARY_EXT}" | ||
| 63 | ALTERNATIVE_LINK_NAME[psmfw] = "/boot/${BINARY_NAME}${BINARY_EXT}" | ||
| 64 | |||
| 65 | INSANE_SKIP_${PN} = "arch" | 57 | INSANE_SKIP_${PN} = "arch" |
| 66 | INSANE_SKIP_${PN}-dbg = "arch" | 58 | INSANE_SKIP_${PN}-dbg = "arch" |
| 67 | 59 | ||
| 68 | SYSROOT_DIRS += "/boot" | 60 | SYSROOT_DIRS += "/boot" |
| 69 | FILES_${PN} = "/boot/${BINARY_NAME}-${BINARY_ID}${BINARY_EXT}" | 61 | FILES_${PN} = "/boot/${PN}.elf" |
diff --git a/meta-xilinx-standalone-experimental/recipes-kernel/lopper/device-tree-lops.bb b/meta-xilinx-standalone-experimental/recipes-kernel/lopper/device-tree-lops.bb index 4b4d8eb5..37d48480 100644 --- a/meta-xilinx-standalone-experimental/recipes-kernel/lopper/device-tree-lops.bb +++ b/meta-xilinx-standalone-experimental/recipes-kernel/lopper/device-tree-lops.bb | |||
| @@ -17,6 +17,11 @@ COMPATIBLE_HOST = "^.*" | |||
| 17 | 17 | ||
| 18 | LOPS_DIR = "${RECIPE_SYSROOT_NATIVE}/usr/share/lopper/lops" | 18 | LOPS_DIR = "${RECIPE_SYSROOT_NATIVE}/usr/share/lopper/lops" |
| 19 | 19 | ||
| 20 | python() { | ||
| 21 | if not d.getVar('SYSTEM_DTFILE'): | ||
| 22 | raise bb.parse.SkipRecipe("SYSTEM_DTFILE is not configured with the system device tree filename") | ||
| 23 | } | ||
| 24 | |||
| 20 | # All microblaze | 25 | # All microblaze |
| 21 | do_compile_microblaze_xilinx-standalone() { | 26 | do_compile_microblaze_xilinx-standalone() { |
| 22 | LOPPER_DTC_FLAGS="-b 0 -@" lopper.py -f -O ${WORKDIR} ${SYSTEM_DTFILE} ${B}/${DTS_FILE} | 27 | LOPPER_DTC_FLAGS="-b 0 -@" lopper.py -f -O ${WORKDIR} ${SYSTEM_DTFILE} ${B}/${DTS_FILE} |
