From 195e1fa9fb13b21bc41af4e0747d4646caeb65e5 Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Tue, 4 Jun 2024 16:51:04 -0600 Subject: various: Remove SOC_VARIANT, split versal and versal-net, add machine_features SOC_VARIANT has been remove, we are now only using the YP standard SOC_FAMILY configuration. The defined families are: zynq, zynqmp, versal and versal-net. Our decision of breaking up versal-net from versal, is based on the SoC CPU changes from cortexa72/r5 to cortexa78/r52, thus we're treating it as a different SoC family. In order to capture the individual capabilities that we used to handle via SOC_VARIANT, we have defined the following features (some may have been previously defined): - mali400 (zynqmp eg and ev) - vcu (zynqmp ev) - rfsoc (zynqmp dr RF capabiltiies) - aie - (versal ai & premium) - vdu - (versal ai) SOC_VARIANT_ARCH and SOC_FAMILY_ARCH are now obsolete and replaced by MACHINE_ARCH. This is based on the guideline that any recipes that use MACHINE_FEATURES should be MACHINE_ARCH specific. Signed-off-by: Mark Hatle --- meta-xilinx-bsp/conf/machine/zc1254-zynqmp.conf | 4 +- .../classes-recipe/qemuboot-xilinx.bbclass | 12 +-- meta-xilinx-core/conf/layer.conf | 2 +- meta-xilinx-core/conf/machine/README | 2 - .../conf/machine/include/soc-versal-net.inc | 26 ++++++ .../conf/machine/include/soc-versal.inc | 20 ++--- meta-xilinx-core/conf/machine/include/soc-zynq.inc | 8 +- .../conf/machine/include/soc-zynqmp.inc | 26 ++---- .../conf/machine/include/xilinx-soc-family.inc | 10 --- .../conf/machine/versal-ai-core-generic.conf | 2 +- .../conf/machine/versal-ai-edge-generic.conf | 2 +- .../conf/machine/versal-hbm-generic.conf | 2 - .../conf/machine/versal-net-generic.conf | 98 ++++++++++++++++++++-- .../conf/machine/versal-premium-generic.conf | 2 +- .../conf/machine/versal-prime-generic.conf | 2 - .../conf/machine/zynqmp-cg-generic.conf | 2 - .../conf/machine/zynqmp-dr-generic.conf | 2 +- .../conf/machine/zynqmp-eg-generic.conf | 2 +- .../conf/machine/zynqmp-ev-generic.conf | 2 +- .../open-amp/open-amp-xlnx_%.bbappend | 3 + .../openamp-layer/recipes-xrt/xrt/xrt_%.bbappend | 20 ++--- .../recipes-xrt/xrt/xrt_202310.2.15.0.bbappend | 3 +- .../recipes-xrt/xrt/xrt_202320.2.16.0.bbappend | 3 +- meta-xilinx-core/lib/devtool/boot-jtag.py | 30 ++++--- .../recipes-apps/image-update/image-update_1.1.bb | 3 +- .../recipes-bsp/ai-engine/ai-engine-driver_3.3.bb | 10 +-- .../recipes-bsp/ai-engine/ai-engine-driver_3.4.bb | 12 ++- .../recipes-bsp/ai-engine/ai-engine-driver_3.5.bb | 12 ++- .../recipes-bsp/ai-engine/aiefal_1.4.bb | 10 +-- .../recipes-bsp/ai-engine/aiefal_1.5.bb | 12 ++- .../recipes-bsp/ai-engine/aiefal_1.6.bb | 12 ++- .../arm-trusted-firmware/arm-trusted-firmware.inc | 4 + .../recipes-bsp/base-pdi/base-pdi_1.0.bb | 1 + .../bootbin/machine-xilinx-versal-net.inc | 1 + .../recipes-bsp/bootbin/xilinx-bootbin_1.0.bb | 18 +++- .../recipes-bsp/cdo/extract-cdo_1.0.bb | 1 + .../recipes-bsp/device-tree/device-tree.bb | 1 + .../recipes-bsp/dfx-mgr/dfx-mgr_1.0.bb | 1 + .../recipes-bsp/dfx-mgr/dfx-mgr_2023.1.bb | 1 + .../recipes-bsp/dfx-mgr/dfx-mgr_2023.2.bb | 1 + .../recipes-bsp/dfx-mgr/dfx-mgr_2024.1.bb | 1 + meta-xilinx-core/recipes-bsp/embeddedsw/plmfw.bb | 1 + meta-xilinx-core/recipes-bsp/embeddedsw/psmfw.bb | 1 + meta-xilinx-core/recipes-bsp/libdfx/libdfx_1.0.bb | 1 + .../recipes-bsp/libdfx/libdfx_2023.1.bb | 1 + .../recipes-bsp/libdfx/libdfx_2023.2.bb | 1 + .../recipes-bsp/libdfx/libdfx_2024.1.bb | 1 + .../recipes-bsp/u-boot/u-boot-xlnx-scr.bb | 14 ++++ .../recipes-bsp/u-boot/u-boot-xlnx.inc | 2 +- .../images/core-image-ptest-all.bbappend | 1 + .../images/core-image-ptest-all.bbppend | 5 -- .../images/core-image-ptest-fast.bbappend | 1 + .../recipes-core/images/core-image-ptest.bbappend | 1 + .../recipes-kernel/dp/kernel-module-dp_6.6.10.bb | 1 + .../hdmi/kernel-module-hdmi_6.6.10.bb | 1 + .../linux-xlnx-udev-rules/linux-xlnx-udev-rules.bb | 1 + .../recipes-kernel/linux/linux-xlnx.inc | 3 + .../zocl/kernel-module-zocl_202310.2.15.0.bb | 1 + .../zocl/kernel-module-zocl_202320.2.16.0.bb | 1 + .../zocl/kernel-module-zocl_202410.2.17.0.bb | 1 + .../recipes-graphics/wayland/weston.inc | 15 +--- .../classes-recipe/esw.bbclass | 27 +++--- .../recipes-bsp/embeddedsw/plm-firmware.inc | 1 + .../recipes-bsp/embeddedsw/psm-firmware.inc | 1 + 64 files changed, 279 insertions(+), 190 deletions(-) create mode 100644 meta-xilinx-core/conf/machine/include/soc-versal-net.inc delete mode 100644 meta-xilinx-core/conf/machine/include/xilinx-soc-family.inc create mode 100644 meta-xilinx-core/dynamic-layers/openamp-layer/recipes-openamp/open-amp/open-amp-xlnx_%.bbappend create mode 100644 meta-xilinx-core/recipes-bsp/bootbin/machine-xilinx-versal-net.inc delete mode 100644 meta-xilinx-core/recipes-core/images/core-image-ptest-all.bbppend diff --git a/meta-xilinx-bsp/conf/machine/zc1254-zynqmp.conf b/meta-xilinx-bsp/conf/machine/zc1254-zynqmp.conf index c3518577..a9dbe800 100644 --- a/meta-xilinx-bsp/conf/machine/zc1254-zynqmp.conf +++ b/meta-xilinx-bsp/conf/machine/zc1254-zynqmp.conf @@ -3,9 +3,7 @@ #@DESCRIPTION: Machine support for ZC1254 Evaluation Board. # -SOC_VARIANT = "dr" - -require conf/machine/zynqmp-generic.conf +require conf/machine/zynqmp-dr-generic.conf # Add board compatibility override MACHINEOVERRIDES .= ":zc1254" diff --git a/meta-xilinx-core/classes-recipe/qemuboot-xilinx.bbclass b/meta-xilinx-core/classes-recipe/qemuboot-xilinx.bbclass index 5dc21efa..c021ea93 100644 --- a/meta-xilinx-core/classes-recipe/qemuboot-xilinx.bbclass +++ b/meta-xilinx-core/classes-recipe/qemuboot-xilinx.bbclass @@ -55,7 +55,7 @@ def qemu_add_extra_args(data): # Add kernel image and boot.scr to qemu boot command when initramfs_image supplied kernel_name = '' bootscr_image = '%s/boot.scr' % deploy_dir - if soc_family in ('zynqmp', 'versal'): + if soc_family in ('zynqmp', 'versal', 'versal-net'): kernel_name = 'Image' bootscr_loadaddr = '0x20000000' if initramfs_image: @@ -66,10 +66,10 @@ def qemu_add_extra_args(data): if kernel_name: qb_extra_args = ' -device loader,file=%s,addr=%s,force-raw=on' % (kernel_image, kernel_loadaddr) qb_extra_args += ' -device loader,file=%s,addr=%s,force-raw=on' % (bootscr_image, bootscr_loadaddr) - if soc_family == 'versal': + if soc_family in ('versal', 'versal-net'): qb_extra_args += ' %s' % boot_mode else: - if soc_family in ('zynqmp', 'versal'): + if soc_family in ('zynqmp', 'versal', 'versal-net'): qb_extra_args = ' %s' % boot_mode return qb_extra_args @@ -80,7 +80,6 @@ def qemu_rootfs_params(data, param): tune_features = (data.getVar('TUNE_FEATURES') or []).split() if 'microblaze' in tune_features: soc_family = 'microblaze' - soc_variant = data.getVar('SOC_VARIANT') or "" if param == 'rootfs': return 'none' if bundle_image == "1" else '' @@ -90,7 +89,8 @@ def qemu_rootfs_params(data, param): "microblaze": "cpio.gz", "zynq": "cpio.gz", "zynqmp": "cpio.gz.u-boot", - "versal": "cpio.gz.u-boot.qemu-sd-fatimg" + "versal": "cpio.gz.u-boot.qemu-sd-fatimg", + "versal-net": "cpio.gz.u-boot.qemu-sd-fatimg" } if not initramfs_image: image_fs = data.getVar('IMAGE_FSTYPES') @@ -104,7 +104,7 @@ def qemu_rootfs_params(data, param): sd_index = "1" if soc_family == 'zynq': sd_index = "0" - if soc_family == 'versal' and soc_variant == 'net': + if soc_family == 'versal-net': sd_index = "0" # Device is using a disk diff --git a/meta-xilinx-core/conf/layer.conf b/meta-xilinx-core/conf/layer.conf index 443e408e..bbd46631 100644 --- a/meta-xilinx-core/conf/layer.conf +++ b/meta-xilinx-core/conf/layer.conf @@ -44,7 +44,7 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \ XILINX_RELEASE_VERSION ??= "v2024.2" -BUILDCFG_VARS:append = " SOC_VARIANT XILINX_RELEASE_VERSION" +BUILDCFG_VARS:append = " XILINX_RELEASE_VERSION" DEFAULT_XILINX_QEMU = "qemu-xilinx" DEFAULT_XILINX_QEMU:arm = "qemu" diff --git a/meta-xilinx-core/conf/machine/README b/meta-xilinx-core/conf/machine/README index de8cf58d..f664a2f0 100644 --- a/meta-xilinx-core/conf/machine/README +++ b/meta-xilinx-core/conf/machine/README @@ -132,8 +132,6 @@ easiy make a local change, if allowed by the machine .conf: UBOOT_MACHINE - The defconfig for u-boot. (Note, this may be an error TBD). -SOC_VARIANT - See include/soc-*.inc (Note, most machines this is fixed). - The following variables must be set AFTER the 'require' line, using '=' or '+='/'=+' as required. Using ':append', ':prepend', or ':remove' will diff --git a/meta-xilinx-core/conf/machine/include/soc-versal-net.inc b/meta-xilinx-core/conf/machine/include/soc-versal-net.inc new file mode 100644 index 00000000..b59bdacc --- /dev/null +++ b/meta-xilinx-core/conf/machine/include/soc-versal-net.inc @@ -0,0 +1,26 @@ +DEFAULTTUNE ?= "cortexa72-cortexa53" +SOC_FAMILY ?= "versal-net" + +require conf/machine/include/soc-family.inc +require soc-tune-include.inc + +# Linux Configuration +KERNEL_IMAGETYPE ?= "Image" + +WIC_DEPENDS ?= "virtual/kernel virtual/bootloader virtual/boot-bin virtual/arm-trusted-firmware" + +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 ??= "" +PLM_MCDEPENDS ??= "" +PLM_DEPLOY_DIR ??= "${DEPLOY_DIR_IMAGE}" +PLM_IMAGE_NAME ??= "plm-${MACHINE}" +PLM_DEPLOY_DIR[vardepsexclude] += "TOPDIR" + +PSM_DEPENDS ??= "" +PSM_MCDEPENDS ??= "" +PSM_FIRMWARE_DEPLOY_DIR ??= "${DEPLOY_DIR_IMAGE}" +PSM_FIRMWARE_IMAGE_NAME ??= "psm-firmware-${MACHINE}" +PSM_DEPLOY_DIR[vardepsexclude] += "TOPDIR" diff --git a/meta-xilinx-core/conf/machine/include/soc-versal.inc b/meta-xilinx-core/conf/machine/include/soc-versal.inc index dcf3796e..daa129af 100644 --- a/meta-xilinx-core/conf/machine/include/soc-versal.inc +++ b/meta-xilinx-core/conf/machine/include/soc-versal.inc @@ -1,17 +1,15 @@ DEFAULTTUNE ?= "cortexa72-cortexa53" SOC_FAMILY ?= "versal" -# Available SOC_VARIANT's for versal: -# "prime" - Versal deafult Prime Devices -# "premium" - Versal Premium Devices -# "hbm" - Versal HMB Devices -# "ai-core" - Versal AI-core Devices -# "ai-edge" - Versal AI-Edge Devices -# "net" - Versal Net Devices - -SOC_VARIANT ?= "prime" - -require xilinx-soc-family.inc +# Available MACHINE_FETURES for versal processors: +# prime - (none) +# premium - aie +# hbm - (none) +# ai-core - aie, vdu +# ai-edge - aie, vdu +# net - none + +require conf/machine/include/soc-family.inc require soc-tune-include.inc # Linux Configuration diff --git a/meta-xilinx-core/conf/machine/include/soc-zynq.inc b/meta-xilinx-core/conf/machine/include/soc-zynq.inc index eea02a6c..e456a31f 100644 --- a/meta-xilinx-core/conf/machine/include/soc-zynq.inc +++ b/meta-xilinx-core/conf/machine/include/soc-zynq.inc @@ -1,13 +1,7 @@ DEFAULTTUNE ?= "cortexa9thf-neon" SOC_FAMILY ?= "zynq" -# Available SOC_VARIANT's for zynq: -# 7zs - Zynq-7000 Single A9 Core -# 7z - Zynq-7000 Dual A9 Core - -SOC_VARIANT ?= "7z" - -require xilinx-soc-family.inc +require conf/machine/include/soc-family.inc require soc-tune-include.inc # Linux Configuration diff --git a/meta-xilinx-core/conf/machine/include/soc-zynqmp.inc b/meta-xilinx-core/conf/machine/include/soc-zynqmp.inc index 95ac54e2..a9c3ad73 100644 --- a/meta-xilinx-core/conf/machine/include/soc-zynqmp.inc +++ b/meta-xilinx-core/conf/machine/include/soc-zynqmp.inc @@ -1,27 +1,13 @@ DEFAULTTUNE ?= "cortexa72-cortexa53" SOC_FAMILY ?= "zynqmp" -# Available SOC_VARIANT's for zynqmp: -# "cg" - Zynq UltraScale+ CG Devices (default lowest common denominator) -# "eg" - Zynq UltraScale+ EG Devices -# "ev" - Zynq UltraScale+ EV Devices -# "dr" - Zynq UltraScale+ DR Devices - -SOC_VARIANT ?= "cg" - -# Add VCU feature on "ev" devices -VCU_MACHINE_FEATURE = "" -VCU_MACHINE_FEATURE:zynqmp-ev = " vcu" -MACHINE_FEATURES .= "${VCU_MACHINE_FEATURE}" - -# Add mali400 a.k.a Mali Utgard, "ev" and "eg" devices -MALI_MACHINE_FEATURE = "" -MALI_MACHINE_FEATURE:zynqmp-eg = " mali400" -MALI_MACHINE_FEATURE:zynqmp-ev = " mali400" -MACHINE_FEATURES .= "${MALI_MACHINE_FEATURE}" - -require xilinx-soc-family.inc +# Available MACHINE_FETURES for zynqmp processors: +# zynqmp-cg - (none) +# zynqmp-eg - mali400 +# zynqmp-ev - mali400, vcu +# zynqmp-dr - rfsoc +require conf/machine/include/soc-family.inc require soc-tune-include.inc # Linux Configuration diff --git a/meta-xilinx-core/conf/machine/include/xilinx-soc-family.inc b/meta-xilinx-core/conf/machine/include/xilinx-soc-family.inc deleted file mode 100644 index dd54f5c6..00000000 --- a/meta-xilinx-core/conf/machine/include/xilinx-soc-family.inc +++ /dev/null @@ -1,10 +0,0 @@ -SOC_VARIANT ??= "" -MACHINEOVERRIDES =. "${@['', '${SOC_FAMILY}-${SOC_VARIANT}:']['${SOC_VARIANT}' != '']}" - -require conf/machine/include/soc-family.inc - -SOC_FAMILY_ARCH ?= "${SOC_FAMILY}" -SOC_VARIANT_ARCH ?= "${@['${SOC_FAMILY}-${SOC_VARIANT}','${SOC_FAMILY}'][d.getVar('SOC_VARIANT')=='']}" - -PACKAGE_EXTRA_ARCHS:append = " ${SOC_FAMILY_ARCH}" -PACKAGE_EXTRA_ARCHS:append = "${@['', ' ${SOC_VARIANT_ARCH}'][d.getVar('SOC_VARIANT_ARCH') != d.getVar('SOC_FAMILY_ARCH')]}" diff --git a/meta-xilinx-core/conf/machine/versal-ai-core-generic.conf b/meta-xilinx-core/conf/machine/versal-ai-core-generic.conf index 34f57691..3b7218c1 100644 --- a/meta-xilinx-core/conf/machine/versal-ai-core-generic.conf +++ b/meta-xilinx-core/conf/machine/versal-ai-core-generic.conf @@ -4,7 +4,7 @@ MACHINEOVERRIDES =. "${@['', 'versal-ai-core-generic:']['versal-ai-core-generic' require conf/machine/versal-generic.conf -SOC_VARIANT = "ai-core" +MACHINE_FEATURES += "aie vdu" #### No additional settings should be after the Postamble #### Postamble diff --git a/meta-xilinx-core/conf/machine/versal-ai-edge-generic.conf b/meta-xilinx-core/conf/machine/versal-ai-edge-generic.conf index 1028ac04..2b4f94d2 100644 --- a/meta-xilinx-core/conf/machine/versal-ai-edge-generic.conf +++ b/meta-xilinx-core/conf/machine/versal-ai-edge-generic.conf @@ -4,7 +4,7 @@ MACHINEOVERRIDES =. "${@['', 'versal-ai-edge-generic:']['versal-ai-edge-generic' require conf/machine/versal-generic.conf -SOC_VARIANT = "ai-edge" +MACHINE_FEATURES += "aie vdu" # VEK280 board has 12GB memory only but default versal-generic has QB_MEM set to # 8G, Hence we need set 12G in QB_MEM. diff --git a/meta-xilinx-core/conf/machine/versal-hbm-generic.conf b/meta-xilinx-core/conf/machine/versal-hbm-generic.conf index 3e72da60..9fef78f3 100644 --- a/meta-xilinx-core/conf/machine/versal-hbm-generic.conf +++ b/meta-xilinx-core/conf/machine/versal-hbm-generic.conf @@ -4,8 +4,6 @@ MACHINEOVERRIDES =. "${@['', 'versal-hbm-generic:']['versal-hbm-generic' != '${M require conf/machine/versal-generic.conf -SOC_VARIANT = "hbm" - # VHK158 has 32GB memory only but default versal-generic has QB_MEM set to 8G, # Since versal-vhk158-reva.dts has 32GB set, we need set same in QB_MEM QB_MEM = "-m 32G" diff --git a/meta-xilinx-core/conf/machine/versal-net-generic.conf b/meta-xilinx-core/conf/machine/versal-net-generic.conf index eb450bbf..65c2dd23 100644 --- a/meta-xilinx-core/conf/machine/versal-net-generic.conf +++ b/meta-xilinx-core/conf/machine/versal-net-generic.conf @@ -6,30 +6,83 @@ MACHINEOVERRIDES =. "${@['', 'versal-net-generic:']['versal-net-generic' != '${MACHINE}']}" #### Regular settings follow -# Must be set first, or versal-generic will set it -UBOOT_MACHINE ?= "xilinx_versal_net_virt_defconfig" +# Variables that changes based on hw design or board specific requirement must be +# defined before calling the required inclusion file else pre-expansion value +# defined in local.conf without machine override will not be reflected. -# Yocto Versal Net device-tree variables +# Yocto Versal device-tree variables YAML_CONSOLE_DEVICE_CONFIG:pn-device-tree ?= "psx_wizard_0_psxl_0_psx_sbsauart_0" +DT_PADDING_SIZE:pn-device-tree ?= "0x1000" +DTC_FLAGS:pn-device-tree = "-@" YAML_DT_BOARD_FLAGS ?= "{BOARD versal-net-ipp-rev1.9}" -# Yocto Versal Net PLM variables +# Yocto Versal u-boot-xlnx variables +UBOOT_MACHINE ?= "xilinx_versal_net_virt_defconfig" +BOOTMODE ?= "generic.root" + +# Yocto Versal arm-trusted-firmware(TF-A) variables +TFA_BL33_LOAD ?= "0x8000000" + +# Yocto Versal PLM variables YAML_SERIAL_CONSOLE_STDIN:pn-plm-firmware ?= "psx_wizard_0_psxl_0_psx_sbsauart_0" YAML_SERIAL_CONSOLE_STDOUT:pn-plm-firmware ?= "psx_wizard_0_psxl_0_psx_sbsauart_0" +# Yocto Versal KERNEL Variables +UBOOT_ENTRYPOINT ?= "0x200000" +UBOOT_LOADADDRESS ?= "0x200000" + # Versal Serial Console SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;ttyAMA1" YAML_SERIAL_CONSOLE_BAUDRATE ?= "115200" -require conf/machine/versal-generic.conf +require conf/machine/include/soc-versal-net.inc +require conf/machine/include/machine-xilinx-default.inc +require conf/machine/include/machine-xilinx-qemu.inc -SOC_VARIANT = "net" - -# versal-generic.conf uses vck190-versal xsa as reference input. +# versal-net-generic.conf uses a qemu only xsa as reference input. # User can override with custom xsa using HDF_BASE and HDF_PATH variables from # local.conf. HDF_MACHINE = "versal-net-generic" +MACHINE_FEATURES += "rtc ext2 ext3 vfat usbhost" + +MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "${PREFERRED_PROVIDER_virtual/dtb}" + +# Default SD image build onfiguration, use qemu-sd to pad +IMAGE_CLASSES += "image-types-xilinx-qemu" +# Add wic.qemu-sd only if initramfs_image not set due to circular dependecies +IMAGE_FSTYPES += "${@'wic.qemu-sd' if (d.getVar('INITRAMFS_IMAGE') or '') == '' else 'cpio.gz.u-boot.qemu-sd-fatimg'}" + +EXTRA_IMAGEDEPENDS += " \ + libyaml-native \ + python3-cython-native \ + python3-pyyaml-native \ + arm-trusted-firmware \ + virtual/boot-bin \ + virtual/bootloader \ + virtual/psm-firmware \ + virtual/plm \ + u-boot-xlnx-scr \ + qemu-devicetrees:do_deploy \ + virtual/cdo:do_deploy \ + " + +IMAGE_BOOT_FILES += " \ + boot.bin \ + ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/dtb', 'device-tree', 'system.dtb', '', d)} \ + Image \ + boot.scr \ + " + +# Versal QEMU Configurations +# This machine has a QEMU model, runqemu setup: +QB_MEM = "-m 8G" +QB_DEFAULT_KERNEL = "none" +# Iteration appears to be eth0 then eth1 +QB_NETWORK_DEVICE = "-net nic,netdev=net0,macaddr=@MAC@ -net nic" +QB_KERNEL_CMDLINE_APPEND ?= "" + +QEMU_HW_DTB_PATH = "${DEPLOY_DIR_IMAGE}/qemu-hw-devicetrees/multiarch" QEMU_HW_DTB_PS = "${QEMU_HW_DTB_PATH}/board-versal-net-psx-spp-1.4.dtb" QEMU_HW_DTB_PMC = "${QEMU_HW_DTB_PATH}/board-versal-pmx-virt.dtb" @@ -41,7 +94,34 @@ QEMU_HW_DTB_PMC = "${QEMU_HW_DTB_PATH}/board-versal-pmx-virt.dtb" # hw serial3 pl011 (0xf1930000) - linux serial1 (ttyAMA1) QB_XILINX_SERIAL = "-serial null -serial null -serial mon:stdio -serial null" +QB_OSPI_FILE ??= "" + +QB_OPT_APPEND += " \ + -hw-dtb ${QEMU_HW_DTB_PS} \ + ${@qemu_add_extra_args(d)} \ + ${@'-bootbin ${QB_OSPI_FILE}' if d.getVar('QB_OSPI_FILE') != '' else ''} \ + " + +# PLM instance args +QB_PLM_OPT = " \ + -M microblaze-fdt \ + -device loader,addr=0xf0000000,data=0xba020004,data-len=4 \ + -device loader,addr=0xf0000004,data=0xb800fffc,data-len=4 \ + -device loader,addr=0xF1110624,data=0x0,data-len=4 \ + -device loader,addr=0xF1110620,data=0x1,data-len=4 \ + -hw-dtb ${QEMU_HW_DTB_PMC} \ + -display none \ + " + +QB_FW_FILES = " \ + -device loader,file=${DEPLOY_DIR_IMAGE}/BOOT-${MACHINE}_bh.bin,addr=0xF201E000,force-raw \ + -device loader,file=${DEPLOY_DIR_IMAGE}/CDO/pmc_cdo.bin,addr=0xf2000000,force-raw \ + -device loader,file=${DEPLOY_DIR_IMAGE}/plm-${MACHINE}.elf,cpu-num=1 \ +" +QB_PLM_OPT += "${@"d.getVar('QB_FW_FILES')" if d.getVar('QB_OSPI_FILE') == '' else ''}" + +QB_OPT_APPEND += " -plm-args '${QB_PLM_OPT}'" + #### No additional settings should be after the Postamble #### Postamble PACKAGE_EXTRA_ARCHS:append = "${@['', ' versal_net_generic']['versal-net-generic' != "${MACHINE}"]}" - diff --git a/meta-xilinx-core/conf/machine/versal-premium-generic.conf b/meta-xilinx-core/conf/machine/versal-premium-generic.conf index d785edff..357e852d 100644 --- a/meta-xilinx-core/conf/machine/versal-premium-generic.conf +++ b/meta-xilinx-core/conf/machine/versal-premium-generic.conf @@ -4,7 +4,7 @@ MACHINEOVERRIDES =. "${@['', 'versal-premium-generic:']['versal-premium-generic' require conf/machine/versal-generic.conf -SOC_VARIANT = "premium" +MACHINE_FEATURES += "aie" #### No additional settings should be after the Postamble #### Postamble diff --git a/meta-xilinx-core/conf/machine/versal-prime-generic.conf b/meta-xilinx-core/conf/machine/versal-prime-generic.conf index 206f0e2a..edce3577 100644 --- a/meta-xilinx-core/conf/machine/versal-prime-generic.conf +++ b/meta-xilinx-core/conf/machine/versal-prime-generic.conf @@ -4,8 +4,6 @@ MACHINEOVERRIDES =. "${@['', 'versal-prime-generic:']['versal-prime-generic' != require conf/machine/versal-generic.conf -SOC_VARIANT = "prime" - QEMU_HW_DTB_PS = "${QEMU_HW_DTB_PATH}/board-versal-ps-vmk180.dtb" #### No additional settings should be after the Postamble diff --git a/meta-xilinx-core/conf/machine/zynqmp-cg-generic.conf b/meta-xilinx-core/conf/machine/zynqmp-cg-generic.conf index 38c9126f..44169186 100644 --- a/meta-xilinx-core/conf/machine/zynqmp-cg-generic.conf +++ b/meta-xilinx-core/conf/machine/zynqmp-cg-generic.conf @@ -4,8 +4,6 @@ MACHINEOVERRIDES =. "${@['', 'zynqmp-cg-generic:']['zynqmp-cg-generic' != '${MAC require conf/machine/zynqmp-generic.conf -SOC_VARIANT = "cg" - #### No additional settings should be after the Postamble #### Postamble PACKAGE_EXTRA_ARCHS:append = "${@['', ' zynqmp_cg_generic']['zynqmp-cg-generic' != "${MACHINE}"]}" diff --git a/meta-xilinx-core/conf/machine/zynqmp-dr-generic.conf b/meta-xilinx-core/conf/machine/zynqmp-dr-generic.conf index fbe445aa..316175af 100644 --- a/meta-xilinx-core/conf/machine/zynqmp-dr-generic.conf +++ b/meta-xilinx-core/conf/machine/zynqmp-dr-generic.conf @@ -4,7 +4,7 @@ MACHINEOVERRIDES =. "${@['', 'zynqmp-dr-generic:']['zynqmp-dr-generic' != '${MAC require conf/machine/zynqmp-generic.conf -SOC_VARIANT = "dr" +MACHINE_FEATURES += "rfsoc" #### No additional settings should be after the Postamble #### Postamble diff --git a/meta-xilinx-core/conf/machine/zynqmp-eg-generic.conf b/meta-xilinx-core/conf/machine/zynqmp-eg-generic.conf index 33375b46..239ded34 100644 --- a/meta-xilinx-core/conf/machine/zynqmp-eg-generic.conf +++ b/meta-xilinx-core/conf/machine/zynqmp-eg-generic.conf @@ -4,7 +4,7 @@ MACHINEOVERRIDES =. "${@['', 'zynqmp-eg-generic:']['zynqmp-eg-generic' != '${MAC require conf/machine/zynqmp-generic.conf -SOC_VARIANT = "eg" +MACHINE_FEATURES += "mali400" #### No additional settings should be after the Postamble #### Postamble diff --git a/meta-xilinx-core/conf/machine/zynqmp-ev-generic.conf b/meta-xilinx-core/conf/machine/zynqmp-ev-generic.conf index f2ffe40f..31d94f63 100644 --- a/meta-xilinx-core/conf/machine/zynqmp-ev-generic.conf +++ b/meta-xilinx-core/conf/machine/zynqmp-ev-generic.conf @@ -4,7 +4,7 @@ MACHINEOVERRIDES =. "${@['', 'zynqmp-ev-generic:']['zynqmp-ev-generic' != '${MAC require conf/machine/zynqmp-generic.conf -SOC_VARIANT = "ev" +MACHINE_FEATURES += "mali400 vcu" #### No additional settings should be after the Postamble #### Postamble diff --git a/meta-xilinx-core/dynamic-layers/openamp-layer/recipes-openamp/open-amp/open-amp-xlnx_%.bbappend b/meta-xilinx-core/dynamic-layers/openamp-layer/recipes-openamp/open-amp/open-amp-xlnx_%.bbappend new file mode 100644 index 00000000..33cd55c1 --- /dev/null +++ b/meta-xilinx-core/dynamic-layers/openamp-layer/recipes-openamp/open-amp/open-amp-xlnx_%.bbappend @@ -0,0 +1,3 @@ +# Prevents parse failrues on zynq + +COMPATIBLE_MACHINE:zynq = "^$" diff --git a/meta-xilinx-core/dynamic-layers/openamp-layer/recipes-xrt/xrt/xrt_%.bbappend b/meta-xilinx-core/dynamic-layers/openamp-layer/recipes-xrt/xrt/xrt_%.bbappend index 4d21c98b..0e7f3693 100644 --- a/meta-xilinx-core/dynamic-layers/openamp-layer/recipes-xrt/xrt/xrt_%.bbappend +++ b/meta-xilinx-core/dynamic-layers/openamp-layer/recipes-xrt/xrt/xrt_%.bbappend @@ -1,14 +1,8 @@ # Use libmetal for systems with AIE -# For vck190 kind of devices -PACKAGE_ARCH:versal-ai-core = "${SOC_VARIANT_ARCH}" -EXTRA_OECMAKE:append:versal-ai-core = " -DXRT_AIE_BUILD=true" -TARGET_CXXFLAGS:append:versal-ai-core = " -DXRT_ENABLE_AIE -DFAL_LINUX=on" -DEPENDS:append:versal-ai-core = " libxaiengine aiefal" -RDEPENDS:${PN}:append:versal-ai-core = " libxaiengine aiefal" - -# For vek280 kind of devices -PACKAGE_ARCH:versal-ai-edge = "${SOC_VARIANT_ARCH}" -EXTRA_OECMAKE:append:versal-ai-edge = " -DXRT_AIE_BUILD=true" -TARGET_CXXFLAGS:append:versal-ai-edge = " -DXRT_ENABLE_AIE -DFAL_LINUX=on" -DEPENDS:append:versal-ai-edge = " libxaiengine aiefal" -RDEPENDS:${PN}:append:versal-ai-edge = " libxaiengine aiefal" +# For versal devices with the ai-engine +PACKAGE_ARCH_orig := "${PACKAGE_ARCH}" +PACKAGE_ARCH = "${@bb.utils.contains('MACHINE_FEATURES', 'aie', '${MACHINE_ARCH}', '${PACKAGE_ARCH_orig}', d)}" +EXTRA_OECMAKE .= "${@bb.utils.contains('MACHINE_FEATURES', 'aie', ' -DXRT_AIE_BUILD=true', '', d)}" +TARGET_CXXFLAGS .= "${@bb.utils.contains('MACHINE_FEATURES', 'aie', ' -DXRT_ENABLE_AIE -DFAL_LINUX=on', '', d)}" +DEPENDS .= "${@bb.utils.contains('MACHINE_FEATURES', 'aie', ' libxaiengine aiefal', '', d)}" +RDEPENDS:${PN} += "${@bb.utils.contains('MACHINE_FEATURES', 'aie', ' libxaiengine aiefal', '', d)}" diff --git a/meta-xilinx-core/dynamic-layers/openamp-layer/recipes-xrt/xrt/xrt_202310.2.15.0.bbappend b/meta-xilinx-core/dynamic-layers/openamp-layer/recipes-xrt/xrt/xrt_202310.2.15.0.bbappend index 89f1b4ad..362dc45a 100644 --- a/meta-xilinx-core/dynamic-layers/openamp-layer/recipes-xrt/xrt/xrt_202310.2.15.0.bbappend +++ b/meta-xilinx-core/dynamic-layers/openamp-layer/recipes-xrt/xrt/xrt_202310.2.15.0.bbappend @@ -1,3 +1,2 @@ # Older xrt requires a manual dependency on libmetal -DEPENDS:append:versal-ai-core = " libmetal" -DEPENDS:append:versal-ai-edge = " libmetal" +DEPENDS .= "${@bb.utils.contains('MACHINE_FEATURES', 'aie', ' libmetal', '', d)}" diff --git a/meta-xilinx-core/dynamic-layers/openamp-layer/recipes-xrt/xrt/xrt_202320.2.16.0.bbappend b/meta-xilinx-core/dynamic-layers/openamp-layer/recipes-xrt/xrt/xrt_202320.2.16.0.bbappend index 89f1b4ad..362dc45a 100644 --- a/meta-xilinx-core/dynamic-layers/openamp-layer/recipes-xrt/xrt/xrt_202320.2.16.0.bbappend +++ b/meta-xilinx-core/dynamic-layers/openamp-layer/recipes-xrt/xrt/xrt_202320.2.16.0.bbappend @@ -1,3 +1,2 @@ # Older xrt requires a manual dependency on libmetal -DEPENDS:append:versal-ai-core = " libmetal" -DEPENDS:append:versal-ai-edge = " libmetal" +DEPENDS .= "${@bb.utils.contains('MACHINE_FEATURES', 'aie', ' libmetal', '', d)}" diff --git a/meta-xilinx-core/lib/devtool/boot-jtag.py b/meta-xilinx-core/lib/devtool/boot-jtag.py index 53d70262..247851ec 100644 --- a/meta-xilinx-core/lib/devtool/boot-jtag.py +++ b/meta-xilinx-core/lib/devtool/boot-jtag.py @@ -32,7 +32,6 @@ def bootjtag(args, config, basepath, workspace): machine = rd.getVar('MACHINE') arch = rd.getVar('TARGET_ARCH') soc = rd.getVar("SOC_FAMILY") - soc_variant = rd.getVar("SOC_VARIANT") ddr_base_addr = rd.getVar('DDR_BASEADDR') kernel_img_name = rd.getVar('KERNEL_IMAGE') kernel_load_addr = rd.getVar('KERNEL_LOAD_ADDRESS') @@ -59,7 +58,7 @@ def bootjtag(args, config, basepath, workspace): # MB = (DDR base address + DDR Size) - 0xe00000 # Zynq 7000 = DDR base address + 0x3000000 # ZynqMP = DDR base address + 0x20000000 - # Versal = DDR base address + 0x20000000 + # Versal & Versal-net = DDR base address + 0x20000000 if arch == 'microblazeel': # Assuming DDR size is 2GB bootscr_addr = hex(int(ddr_base_addr, 16) + 0x80000000 - 0xe00000) @@ -93,7 +92,7 @@ def bootjtag(args, config, basepath, workspace): data['atf'] = os.path.join(deploy_dir, 'arm-trusted-firmware.elf') data['pmufw'] = os.path.join(deploy_dir, 'pmu-firmware-' + machine + '.elf') - if soc == 'versal': + if soc in ('versal', 'versal-net'): data['bootbin'] = os.path.join(deploy_dir, 'boot.bin') data['bootscr'] = os.path.join(deploy_dir, 'boot.scr') @@ -165,12 +164,17 @@ def bootjtag(args, config, basepath, workspace): lines.append('puts stderr "INFO: Downloading BOOT bin file: ' + data['bootbin'] + '"') lines.append('device program \"' + data['bootbin'] + '\"') lines.append('') - - if soc_variant == 'net': - lines.append('targets -set -nocase -filter {name =~ \"*A78*#0\"}') - else: - lines.append('targets -set -nocase -filter {name =~ \"*A72*#0\"}') - + lines.append('targets -set -nocase -filter {name =~ \"*A72*#0\"}') + lines.append('stop') + lines.append('') + lines.append('targets -set -nocase -filter {name =~ \"*Versal*\"}') + elif soc == 'versal-net': + # Download boot.bin to versal device + lines.append('targets -set -nocase -filter {name =~ \"*PMC*\"}') + lines.append('puts stderr "INFO: Downloading BOOT bin file: ' + data['bootbin'] + '"') + lines.append('device program \"' + data['bootbin'] + '\"') + lines.append('') + lines.append('targets -set -nocase -filter {name =~ \"*A78*#0\"}') lines.append('stop') lines.append('') lines.append('targets -set -nocase -filter {name =~ \"*Versal*\"}') @@ -235,10 +239,10 @@ def bootjtag(args, config, basepath, workspace): # Select A72 Core 0 to load and run Versal images if soc == 'versal': - if soc_variant == 'net': - lines.append('targets -set -nocase -filter {name =~ \"*A78*#0\"}') - else: - lines.append('targets -set -nocase -filter {name =~ \"*A72*#0\"}') + lines.append('targets -set -nocase -filter {name =~ \"*A72*#0\"}') + + if soc == 'versal-net': + lines.append('targets -set -nocase -filter {name =~ \"*A78*#0\"}') lines.append('con') lines.append('exit\n') diff --git a/meta-xilinx-core/recipes-apps/image-update/image-update_1.1.bb b/meta-xilinx-core/recipes-apps/image-update/image-update_1.1.bb index 1f1d0606..63718813 100644 --- a/meta-xilinx-core/recipes-apps/image-update/image-update_1.1.bb +++ b/meta-xilinx-core/recipes-apps/image-update/image-update_1.1.bb @@ -17,8 +17,9 @@ S = "${WORKDIR}/git" COMPATIBLE_MACHINE = "^$" COMPATIBLE_MACHINE:zynqmp = "zynqmp" COMPATIBLE_MACHINE:versal = "versal" +COMPATIBLE_MACHINE:versal-net = "versal-net" -PACKAGE_ARCH:zynqmp = "${SOC_FAMILY_ARCH}" +PACKAGE_ARCH:zynqmp = "${MACHINE_ARCH}" # Force the make system to use the flags we want! EXTRA_OEMAKE = 'CC="${CC} ${TARGET_CFLAGS} ${TARGET_LDFLAGS}" all' diff --git a/meta-xilinx-core/recipes-bsp/ai-engine/ai-engine-driver_3.3.bb b/meta-xilinx-core/recipes-bsp/ai-engine/ai-engine-driver_3.3.bb index c609f3e4..e726ac5b 100644 --- a/meta-xilinx-core/recipes-bsp/ai-engine/ai-engine-driver_3.3.bb +++ b/meta-xilinx-core/recipes-bsp/ai-engine/ai-engine-driver_3.3.bb @@ -9,9 +9,11 @@ AIEDIR ?= "${S}/driver" S = "${WORKDIR}/git" I = "${AIEDIR}/include" -COMPATIBLE_MACHINE = "^$" -COMPATIBLE_MACHINE:versal-ai-core = "versal-ai-core" -COMPATIBLE_MACHINE:versal-ai-edge = "${SOC_VARIANT_ARCH}" +inherit features_check + +REQUIRED_MACHINE_FEATURES = "aie" + +PACKAGE_ARCH = "${MACHINE_ARCH}" IOBACKENDS ?= "Linux" @@ -42,5 +44,3 @@ do_install(){ install -d ${D}${libdir} cp -dr ${AIEDIR}/src/*.so* ${D}${libdir} } - -PACKAGE_ARCH:versal-ai-core = "${SOC_VARIANT_ARCH}" diff --git a/meta-xilinx-core/recipes-bsp/ai-engine/ai-engine-driver_3.4.bb b/meta-xilinx-core/recipes-bsp/ai-engine/ai-engine-driver_3.4.bb index 154d02cf..92f44a34 100644 --- a/meta-xilinx-core/recipes-bsp/ai-engine/ai-engine-driver_3.4.bb +++ b/meta-xilinx-core/recipes-bsp/ai-engine/ai-engine-driver_3.4.bb @@ -9,9 +9,11 @@ AIEDIR ?= "${S}/driver" S = "${WORKDIR}/git" I = "${AIEDIR}/include" -COMPATIBLE_MACHINE = "^$" -COMPATIBLE_MACHINE:versal-ai-core = "versal-ai-core" -COMPATIBLE_MACHINE:versal-ai-edge = "${SOC_VARIANT_ARCH}" +inherit features_check + +REQUIRED_MACHINE_FEATURES = "aie" + +PACKAGE_ARCH = "${MACHINE_ARCH}" IOBACKENDS ?= "Linux" @@ -42,7 +44,3 @@ do_install(){ install -d ${D}${libdir} cp -dr ${AIEDIR}/src/*.so* ${D}${libdir} } - -PACKAGE_ARCH:versal-ai-core = "${SOC_VARIANT_ARCH}" -PACKAGE_ARCH:versal-ai-edge = "${SOC_VARIANT_ARCH}" - diff --git a/meta-xilinx-core/recipes-bsp/ai-engine/ai-engine-driver_3.5.bb b/meta-xilinx-core/recipes-bsp/ai-engine/ai-engine-driver_3.5.bb index 075fd94c..6befcffa 100644 --- a/meta-xilinx-core/recipes-bsp/ai-engine/ai-engine-driver_3.5.bb +++ b/meta-xilinx-core/recipes-bsp/ai-engine/ai-engine-driver_3.5.bb @@ -9,9 +9,11 @@ AIEDIR ?= "${S}/driver" S = "${WORKDIR}/git" I = "${AIEDIR}/include" -COMPATIBLE_MACHINE = "^$" -COMPATIBLE_MACHINE:versal-ai-core = "versal-ai-core" -COMPATIBLE_MACHINE:versal-ai-edge = "${SOC_VARIANT_ARCH}" +inherit features_check + +REQUIRED_MACHINE_FEATURES = "aie" + +PACKAGE_ARCH = "${MACHINE_ARCH}" IOBACKENDS ?= "Linux" @@ -42,7 +44,3 @@ do_install(){ install -d ${D}${libdir} cp -dr ${AIEDIR}/src/*.so* ${D}${libdir} } - -PACKAGE_ARCH:versal-ai-core = "${SOC_VARIANT_ARCH}" -PACKAGE_ARCH:versal-ai-edge = "${SOC_VARIANT_ARCH}" - diff --git a/meta-xilinx-core/recipes-bsp/ai-engine/aiefal_1.4.bb b/meta-xilinx-core/recipes-bsp/ai-engine/aiefal_1.4.bb index 7bb4b849..5b741f9a 100644 --- a/meta-xilinx-core/recipes-bsp/ai-engine/aiefal_1.4.bb +++ b/meta-xilinx-core/recipes-bsp/ai-engine/aiefal_1.4.bb @@ -8,9 +8,11 @@ SECTION = "devel" XAIEFAL_DIR ?= "fal" S = "${WORKDIR}/git" -COMPATIBLE_MACHINE = "^$" -COMPATIBLE_MACHINE:versal-ai-core = "versal-ai-core" -COMPATIBLE_MACHINE:versal-ai-edge = "${SOC_VARIANT_ARCH}" +inherit features_check + +REQUIRED_MACHINE_FEATURES = "aie" + +PACKAGE_ARCH = "${MACHINE_ARCH}" IOBACKENDS ?= "Linux" @@ -29,5 +31,3 @@ EXTRA_OECMAKE:append = "${@'-DWITH_EXAMPLES=ON' if d.getVar('WITH_EXAMPLES') == FILES:${PN}-demos = " \ ${bindir}/* \ " - -PACKAGE_ARCH:versal-ai-core = "${SOC_VARIANT_ARCH}" diff --git a/meta-xilinx-core/recipes-bsp/ai-engine/aiefal_1.5.bb b/meta-xilinx-core/recipes-bsp/ai-engine/aiefal_1.5.bb index 45e38977..8b5c4334 100644 --- a/meta-xilinx-core/recipes-bsp/ai-engine/aiefal_1.5.bb +++ b/meta-xilinx-core/recipes-bsp/ai-engine/aiefal_1.5.bb @@ -8,9 +8,11 @@ SECTION = "devel" XAIEFAL_DIR ?= "fal" S = "${WORKDIR}/git" -COMPATIBLE_MACHINE = "^$" -COMPATIBLE_MACHINE:versal-ai-core = "versal-ai-core" -COMPATIBLE_MACHINE:versal-ai-edge = "${SOC_VARIANT_ARCH}" +inherit features_check + +REQUIRED_MACHINE_FEATURES = "aie" + +PACKAGE_ARCH = "${MACHINE_ARCH}" IOBACKENDS ?= "Linux" @@ -29,7 +31,3 @@ EXTRA_OECMAKE:append = "${@'-DWITH_EXAMPLES=ON' if d.getVar('WITH_EXAMPLES') == FILES:${PN}-demos = " \ ${bindir}/* \ " - -PACKAGE_ARCH:versal-ai-core = "${SOC_VARIANT_ARCH}" -PACKAGE_ARCH:versal-ai-edge = "${SOC_VARIANT_ARCH}" - diff --git a/meta-xilinx-core/recipes-bsp/ai-engine/aiefal_1.6.bb b/meta-xilinx-core/recipes-bsp/ai-engine/aiefal_1.6.bb index 5c479d05..f8c9482b 100644 --- a/meta-xilinx-core/recipes-bsp/ai-engine/aiefal_1.6.bb +++ b/meta-xilinx-core/recipes-bsp/ai-engine/aiefal_1.6.bb @@ -8,9 +8,11 @@ SECTION = "devel" XAIEFAL_DIR ?= "fal" S = "${WORKDIR}/git" -COMPATIBLE_MACHINE = "^$" -COMPATIBLE_MACHINE:versal-ai-core = "versal-ai-core" -COMPATIBLE_MACHINE:versal-ai-edge = "${SOC_VARIANT_ARCH}" +inherit features_check + +REQUIRED_MACHINE_FEATURES = "aie" + +PACKAGE_ARCH = "${MACHINE_ARCH}" IOBACKENDS ?= "Linux" @@ -29,7 +31,3 @@ EXTRA_OECMAKE:append = "${@'-DWITH_EXAMPLES=ON' if d.getVar('WITH_EXAMPLES') == FILES:${PN}-demos = " \ ${bindir}/* \ " - -PACKAGE_ARCH:versal-ai-core = "${SOC_VARIANT_ARCH}" -PACKAGE_ARCH:versal-ai-edge = "${SOC_VARIANT_ARCH}" - diff --git a/meta-xilinx-core/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware.inc b/meta-xilinx-core/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware.inc index df97c3cf..67b97613 100644 --- a/meta-xilinx-core/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware.inc +++ b/meta-xilinx-core/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware.inc @@ -28,6 +28,7 @@ ATF_BASE_NAME ?= "${PN}-${PKGE}-${PKGV}-${PKGR}${IMAGE_VERSION_SUFFIX}" COMPATIBLE_MACHINE ?= "^$" COMPATIBLE_MACHINE:zynqmp = ".*" COMPATIBLE_MACHINE:versal = ".*" +COMPATIBLE_MACHINE:versal-net = ".*" PACKAGE_ARCH = "${MACHINE_ARCH}" @@ -47,10 +48,12 @@ LD[unexport] = "1" ATF_CONSOLE_DEFAULT = "" ATF_CONSOLE_DEFAULT:zynqmp = "cadence" ATF_CONSOLE_DEFAULT:versal = "pl011" +ATF_CONSOLE_DEFAULT:versal-net = "pl011" ATF_CONSOLE ?= "${ATF_CONSOLE_DEFAULT}" DEBUG_ATF_DEFAULT = "" DEBUG_ATF_DEFAULT:versal = "1" +DEBUG_ATF_DEFAULT:versal-net = "1" DEBUG_ATF ?= "${DEBUG_ATF_DEFAULT}" EXTRA_OEMAKE:append:zynqmp = "${@' ZYNQMP_CONSOLE=${ATF_CONSOLE}' if d.getVar('ATF_CONSOLE', True) != '' else ''}" @@ -125,3 +128,4 @@ FILES:${PN} += "/boot/*.elf /boot/*.bin /boot/*.ub" # Disable buildpaths QA check warnings for Versal. INSANE_SKIP:${PN}:append:versal = " buildpaths" +INSANE_SKIP:${PN}:append:versal-net = " buildpaths" diff --git a/meta-xilinx-core/recipes-bsp/base-pdi/base-pdi_1.0.bb b/meta-xilinx-core/recipes-bsp/base-pdi/base-pdi_1.0.bb index deb8bb3d..f3457640 100644 --- a/meta-xilinx-core/recipes-bsp/base-pdi/base-pdi_1.0.bb +++ b/meta-xilinx-core/recipes-bsp/base-pdi/base-pdi_1.0.bb @@ -7,6 +7,7 @@ PROVIDES = "virtual/base-pdi" COMPATIBLE_MACHINE = "^$" COMPATIBLE_MACHINE:microblaze = ".*" COMPATIBLE_MACHINE:versal = ".*" +COMPATIBLE_MACHINE:versal-net = ".*" PACKAGE_ARCH ?= "${MACHINE_ARCH}" diff --git a/meta-xilinx-core/recipes-bsp/bootbin/machine-xilinx-versal-net.inc b/meta-xilinx-core/recipes-bsp/bootbin/machine-xilinx-versal-net.inc new file mode 100644 index 00000000..46191720 --- /dev/null +++ b/meta-xilinx-core/recipes-bsp/bootbin/machine-xilinx-versal-net.inc @@ -0,0 +1 @@ +require machine-xilinx-versal.inc diff --git a/meta-xilinx-core/recipes-bsp/bootbin/xilinx-bootbin_1.0.bb b/meta-xilinx-core/recipes-bsp/bootbin/xilinx-bootbin_1.0.bb index e0e1e506..e53d21f7 100644 --- a/meta-xilinx-core/recipes-bsp/bootbin/xilinx-bootbin_1.0.bb +++ b/meta-xilinx-core/recipes-bsp/bootbin/xilinx-bootbin_1.0.bb @@ -14,6 +14,7 @@ COMPATIBLE_MACHINE ?= "^$" COMPATIBLE_MACHINE:zynq = ".*" COMPATIBLE_MACHINE:zynqmp = ".*" COMPATIBLE_MACHINE:versal = ".*" +COMPATIBLE_MACHINE:versal-net = ".*" PROVIDES = "virtual/boot-bin" @@ -36,8 +37,11 @@ SRC_URI += "${@('file://' + d.getVar("BIF_FILE_PATH")) if d.getVar("BIF_FILE_PAT # zynqmp : zynqmp # versal : versal # versal-net : versalnet -BOOTGEN_ARCH_DEFAULT = "${SOC_FAMILY}" -BOOTGEN_ARCH_DEFAULT:versal-net = "${SOC_FAMILY}${SOC_VARIANT}" +BOOTGEN_ARCH_DEFAULT = "undefined" +BOOTGEN_ARCH_DEFAULT:zynq = "zynq" +BOOTGEN_ARCH_DEFAULT:zynqmp = "zynqmp" +BOOTGEN_ARCH_DEFAULT:versal = "versal" +BOOTGEN_ARCH_DEFAULT:versal-net = "versalnet" BOOTGEN_ARCH ?= "${BOOTGEN_ARCH_DEFAULT}" BOOTGEN_EXTRA_ARGS ?= "" @@ -135,7 +139,7 @@ python do_configure() { attrflags = d.getVarFlags("BIF_COMMON_ATTR") or {} if arch in ['zynq', 'zynqmp']: create_zynq_bif(bifattr, attrflags,'','', 1, biffd, d) - elif arch in ['versal']: + elif arch in ['versal', 'versal-net']: create_versal_bif(bifattr, attrflags,'','', 1, biffd, d) else: create_bif(bifattr, attrflags,'','', 1, biffd, d) @@ -147,7 +151,7 @@ python do_configure() { ids = d.getVarFlags("BIF_PARTITION_ID") or {} if arch in ['zynq', 'zynqmp']: create_zynq_bif(bifpartition, attrflags, attrimage, ids, 0, biffd, d) - elif arch in ['versal']: + elif arch in ['versal', 'versal-net']: create_versal_bif(bifpartition, attrflags, attrimage, ids, 0, biffd, d) else: create_bif(bifpartition, attrflags, attrimage, ids, 0, biffd, d) @@ -197,6 +201,12 @@ do_deploy:append:versal () { ln -sf ${BOOTBIN_BASE_NAME}_bh.bin ${DEPLOYDIR}/BOOT-${MACHINE}_bh.bin } +do_deploy:append:versal-net () { + + install -m 0644 ${B}/BOOT_bh.bin ${DEPLOYDIR}/${BOOTBIN_BASE_NAME}_bh.bin + ln -sf ${BOOTBIN_BASE_NAME}_bh.bin ${DEPLOYDIR}/BOOT-${MACHINE}_bh.bin +} + FILES:${PN} += "/boot/BOOT.bin" SYSROOT_DIRS += "/boot" diff --git a/meta-xilinx-core/recipes-bsp/cdo/extract-cdo_1.0.bb b/meta-xilinx-core/recipes-bsp/cdo/extract-cdo_1.0.bb index 8b1e52ac..b52c7853 100644 --- a/meta-xilinx-core/recipes-bsp/cdo/extract-cdo_1.0.bb +++ b/meta-xilinx-core/recipes-bsp/cdo/extract-cdo_1.0.bb @@ -12,6 +12,7 @@ do_compile[depends] += "virtual/boot-bin:do_deploy" COMPATIBLE_MACHINE = "^$" COMPATIBLE_MACHINE:versal = "versal" +COMPATIBLE_MACHINE:versal-net = "versal-net" PACKAGE_ARCH ?= "${MACHINE_ARCH}" diff --git a/meta-xilinx-core/recipes-bsp/device-tree/device-tree.bb b/meta-xilinx-core/recipes-bsp/device-tree/device-tree.bb index 9367fa2c..4783a329 100644 --- a/meta-xilinx-core/recipes-bsp/device-tree/device-tree.bb +++ b/meta-xilinx-core/recipes-bsp/device-tree/device-tree.bb @@ -49,6 +49,7 @@ SRC_URI:append = " ${@" ".join(["file://%s" % f for f in (d.getVar('EXTRA_OVERLA COMPATIBLE_MACHINE:zynq = ".*" COMPATIBLE_MACHINE:zynqmp = ".*" COMPATIBLE_MACHINE:versal = ".*" +COMPATIBLE_MACHINE:versal-net = ".*" DEPENDS += "python3-dtc-native" diff --git a/meta-xilinx-core/recipes-bsp/dfx-mgr/dfx-mgr_1.0.bb b/meta-xilinx-core/recipes-bsp/dfx-mgr/dfx-mgr_1.0.bb index 1d4ab5a3..a5413bdc 100644 --- a/meta-xilinx-core/recipes-bsp/dfx-mgr/dfx-mgr_1.0.bb +++ b/meta-xilinx-core/recipes-bsp/dfx-mgr/dfx-mgr_1.0.bb @@ -17,6 +17,7 @@ SOVERSION = "${SOMAJOR}.${SOMINOR}" COMPATIBLE_MACHINE = "^$" COMPATIBLE_MACHINE:zynqmp = "zynqmp" COMPATIBLE_MACHINE:versal = "versal" +COMPATIBLE_MACHINE:versal-net = "versal-net" S = "${WORKDIR}/git" diff --git a/meta-xilinx-core/recipes-bsp/dfx-mgr/dfx-mgr_2023.1.bb b/meta-xilinx-core/recipes-bsp/dfx-mgr/dfx-mgr_2023.1.bb index b15fff74..8343451d 100644 --- a/meta-xilinx-core/recipes-bsp/dfx-mgr/dfx-mgr_2023.1.bb +++ b/meta-xilinx-core/recipes-bsp/dfx-mgr/dfx-mgr_2023.1.bb @@ -17,6 +17,7 @@ SOVERSION = "${SOMAJOR}.${SOMINOR}" COMPATIBLE_MACHINE = "^$" COMPATIBLE_MACHINE:zynqmp = "zynqmp" COMPATIBLE_MACHINE:versal = "versal" +COMPATIBLE_MACHINE:versal-net = "versal-net" S = "${WORKDIR}/git" diff --git a/meta-xilinx-core/recipes-bsp/dfx-mgr/dfx-mgr_2023.2.bb b/meta-xilinx-core/recipes-bsp/dfx-mgr/dfx-mgr_2023.2.bb index 60096e33..199ff4de 100644 --- a/meta-xilinx-core/recipes-bsp/dfx-mgr/dfx-mgr_2023.2.bb +++ b/meta-xilinx-core/recipes-bsp/dfx-mgr/dfx-mgr_2023.2.bb @@ -17,6 +17,7 @@ SOVERSION = "${SOMAJOR}.${SOMINOR}" COMPATIBLE_MACHINE = "^$" COMPATIBLE_MACHINE:zynqmp = "zynqmp" COMPATIBLE_MACHINE:versal = "versal" +COMPATIBLE_MACHINE:versal-net = "versal-net" S = "${WORKDIR}/git" diff --git a/meta-xilinx-core/recipes-bsp/dfx-mgr/dfx-mgr_2024.1.bb b/meta-xilinx-core/recipes-bsp/dfx-mgr/dfx-mgr_2024.1.bb index 28f997f2..c646228d 100644 --- a/meta-xilinx-core/recipes-bsp/dfx-mgr/dfx-mgr_2024.1.bb +++ b/meta-xilinx-core/recipes-bsp/dfx-mgr/dfx-mgr_2024.1.bb @@ -17,6 +17,7 @@ SOVERSION = "${SOMAJOR}.${SOMINOR}" COMPATIBLE_MACHINE = "^$" COMPATIBLE_MACHINE:zynqmp = "zynqmp" COMPATIBLE_MACHINE:versal = "versal" +COMPATIBLE_MACHINE:versal-net = "versal-net" S = "${WORKDIR}/git" diff --git a/meta-xilinx-core/recipes-bsp/embeddedsw/plmfw.bb b/meta-xilinx-core/recipes-bsp/embeddedsw/plmfw.bb index a10d3924..80063f85 100644 --- a/meta-xilinx-core/recipes-bsp/embeddedsw/plmfw.bb +++ b/meta-xilinx-core/recipes-bsp/embeddedsw/plmfw.bb @@ -9,6 +9,7 @@ INHIBIT_DEFAULT_DEPS = "1" COMPATIBLE_MACHINE = "^$" COMPATIBLE_MACHINE:versal = ".*" +COMPATIBLE_MACHINE:versal-net = ".*" # Since we're just copying, we can run any config COMPATIBLE_HOST = ".*" diff --git a/meta-xilinx-core/recipes-bsp/embeddedsw/psmfw.bb b/meta-xilinx-core/recipes-bsp/embeddedsw/psmfw.bb index d47ab114..3fa6d98c 100644 --- a/meta-xilinx-core/recipes-bsp/embeddedsw/psmfw.bb +++ b/meta-xilinx-core/recipes-bsp/embeddedsw/psmfw.bb @@ -9,6 +9,7 @@ INHIBIT_DEFAULT_DEPS = "1" COMPATIBLE_MACHINE = "^$" COMPATIBLE_MACHINE:versal = ".*" +COMPATIBLE_MACHINE:versal-net = ".*" # Since we're just copying, we can run any config COMPATIBLE_HOST = ".*" diff --git a/meta-xilinx-core/recipes-bsp/libdfx/libdfx_1.0.bb b/meta-xilinx-core/recipes-bsp/libdfx/libdfx_1.0.bb index 2c180561..1bd468d7 100644 --- a/meta-xilinx-core/recipes-bsp/libdfx/libdfx_1.0.bb +++ b/meta-xilinx-core/recipes-bsp/libdfx/libdfx_1.0.bb @@ -13,6 +13,7 @@ SRCREV = "f2b7bbca9d6936141024becfb92266600eeefc2b" COMPATIBLE_MACHINE = "^$" COMPATIBLE_MACHINE:zynqmp = "zynqmp" COMPATIBLE_MACHINE:versal = "versal" +COMPATIBLE_MACHINE:versal-net = "versal-net" S = "${WORKDIR}/git" diff --git a/meta-xilinx-core/recipes-bsp/libdfx/libdfx_2023.1.bb b/meta-xilinx-core/recipes-bsp/libdfx/libdfx_2023.1.bb index 287246c2..15c04add 100644 --- a/meta-xilinx-core/recipes-bsp/libdfx/libdfx_2023.1.bb +++ b/meta-xilinx-core/recipes-bsp/libdfx/libdfx_2023.1.bb @@ -13,6 +13,7 @@ SRCREV = "52c1d83c72a2b2e85d256411a199ed1baed12ae1" COMPATIBLE_MACHINE = "^$" COMPATIBLE_MACHINE:zynqmp = "zynqmp" COMPATIBLE_MACHINE:versal = "versal" +COMPATIBLE_MACHINE:versal-net = "versal-net" S = "${WORKDIR}/git" diff --git a/meta-xilinx-core/recipes-bsp/libdfx/libdfx_2023.2.bb b/meta-xilinx-core/recipes-bsp/libdfx/libdfx_2023.2.bb index b3ccb884..70d85f88 100644 --- a/meta-xilinx-core/recipes-bsp/libdfx/libdfx_2023.2.bb +++ b/meta-xilinx-core/recipes-bsp/libdfx/libdfx_2023.2.bb @@ -13,6 +13,7 @@ SRCREV = "52c1d83c72a2b2e85d256411a199ed1baed12ae1" COMPATIBLE_MACHINE = "^$" COMPATIBLE_MACHINE:zynqmp = "zynqmp" COMPATIBLE_MACHINE:versal = "versal" +COMPATIBLE_MACHINE:versal-net = "versal-net" S = "${WORKDIR}/git" diff --git a/meta-xilinx-core/recipes-bsp/libdfx/libdfx_2024.1.bb b/meta-xilinx-core/recipes-bsp/libdfx/libdfx_2024.1.bb index 42e67ce6..c82984f4 100644 --- a/meta-xilinx-core/recipes-bsp/libdfx/libdfx_2024.1.bb +++ b/meta-xilinx-core/recipes-bsp/libdfx/libdfx_2024.1.bb @@ -13,6 +13,7 @@ SRCREV = "c8275891ead62b3dfce68c00cf466715f0ac75f1" COMPATIBLE_MACHINE = "^$" COMPATIBLE_MACHINE:zynqmp = "zynqmp" COMPATIBLE_MACHINE:versal = "versal" +COMPATIBLE_MACHINE:versal-net = "versal-net" S = "${WORKDIR}/git" diff --git a/meta-xilinx-core/recipes-bsp/u-boot/u-boot-xlnx-scr.bb b/meta-xilinx-core/recipes-bsp/u-boot/u-boot-xlnx-scr.bb index 985ca427..678ae236 100644 --- a/meta-xilinx-core/recipes-bsp/u-boot/u-boot-xlnx-scr.bb +++ b/meta-xilinx-core/recipes-bsp/u-boot/u-boot-xlnx-scr.bb @@ -12,6 +12,7 @@ COMPATIBLE_MACHINE ?= "^$" COMPATIBLE_MACHINE:zynqmp = "zynqmp" COMPATIBLE_MACHINE:zynq = "zynq" COMPATIBLE_MACHINE:versal = "versal" +COMPATIBLE_MACHINE:versal-net = "versal" COMPATIBLE_MACHINE:microblaze = "microblaze" KERNELDT = "${@os.path.basename(d.getVar('KERNEL_DEVICETREE').split(' ')[0]) if d.getVar('KERNEL_DEVICETREE') else ''}" @@ -25,6 +26,7 @@ PXERAMDISK_IMAGE ?= "${@'${RAMDISK_IMAGE1}' if d.getVar('INITRAMFS_IMAGE') and d KERNEL_BOOTCMD:zynqmp ?= "booti" KERNEL_BOOTCMD:zynq ?= "bootm" KERNEL_BOOTCMD:versal ?= "booti" +KERNEL_BOOTCMD:versal-net ?= "booti" KERNEL_BOOTCMD:microblaze ?= "bootm" BOOTMODE ??= "generic" @@ -56,6 +58,7 @@ UENV_TEXTFILE ?= "uEnv.txt" UENV_MMC_OFFSET:zynqmp ??= "0x200000" UENV_MMC_OFFSET:zynq ??= "0x2080000" UENV_MMC_OFFSET:versal ??= "0x200000" +UENV_MMC_OFFSET:versal-net ??= "0x200000" UENV_MMC_OFFSET:microblaze ??= "0x0" UENV_MMC_LOAD_ADDRESS ?= "${@append_baseaddr(d,d.getVar('UENV_MMC_OFFSET'))}" @@ -71,11 +74,13 @@ DEVICETREE_OFFSET:microblaze ??= "0x1e00000" DEVICETREE_OFFSET:zynqmp ??= "0x100000" DEVICETREE_OFFSET:zynq ??= "0x100000" DEVICETREE_OFFSET:versal ??= "0x1000" +DEVICETREE_OFFSET:versal-net ??= "0x1000" DEVICETREE_OVERLAY_OFFSET:microblaze ??= "0x1e00000" DEVICETREE_OVERLAY_OFFSET:zynqmp ??= "0x100000" DEVICETREE_OVERLAY_OFFSET:zynq ??= "0x100000" DEVICETREE_OVERLAY_OFFSET:versal ??= "0x1000" +DEVICETREE_OVERLAY_OFFSET:versal-net ??= "0x1000" DEVICETREE_OVERLAY_PADSIZE ??= "0xf00000" DEVICETREE_OVERLAY_ADDRESS ?= "${@hex(int(append_baseaddr(d,d.getVar('DEVICETREE_OVERLAY_OFFSET')),16) \ @@ -87,6 +92,7 @@ KERNEL_OFFSET:microblaze ??= "0x0" KERNEL_OFFSET:zynqmp ??= "0x200000" KERNEL_OFFSET:zynq ??= "0x200000" KERNEL_OFFSET:versal ??= "0x200000" +KERNEL_OFFSET:versal-net ??= "0x200000" KERNEL_IMAGE ?= "${KERNEL_IMAGETYPE}" @@ -96,6 +102,7 @@ RAMDISK_OFFSET:microblaze ??= "0x2e00000" RAMDISK_OFFSET:zynq ??= "0x4000000" RAMDISK_OFFSET:zynqmp ??= "0x4000000" RAMDISK_OFFSET:versal ??= "0x4000000" +RAMDISK_OFFSET:versal-net ??= "0x4000000" FIT_IMAGE_LOAD_ADDRESS ?= "${@append_baseaddr(d,d.getVar('FIT_IMAGE_OFFSET'))}" FIT_IMAGE_OFFSET ??= "0x10000000" @@ -141,18 +148,25 @@ QSPI_RAMDISK_SIZE:zynqmpdr ??= "0x1D00000" ## For versal ## Load boot.scr at 0x7F80000 -> 127MB of QSPI/NAND Memory QSPI_KERNEL_OFFSET:versal ??= "0xF00000" +QSPI_KERNEL_OFFSET:versal-net ??= "0xF00000" QSPI_RAMDISK_OFFSET:versal ??= "0x2E00000" +QSPI_RAMDISK_OFFSET:versal-net ??= "0x2E00000" NAND_KERNEL_OFFSET:versal ??= "0x4100000" +NAND_KERNEL_OFFSET:versal-net ??= "0x4100000" NAND_RAMDISK_OFFSET:versal ??= "0x8200000" +NAND_RAMDISK_OFFSET:versal-net ??= "0x8200000" QSPI_KERNEL_SIZE:versal ??= "0x1D00000" +QSPI_KERNEL_SIZE:versal-net ??= "0x1D00000" QSPI_RAMDISK_SIZE:versal ??= "0x4000000" +QSPI_RAMDISK_SIZE:versal-net ??= "0x4000000" QSPI_KERNEL_IMAGE:microblaze ?= "image.ub" QSPI_KERNEL_IMAGE:zynq ?= "image.ub" QSPI_KERNEL_IMAGE:zynqmp ?= "image.ub" QSPI_KERNEL_IMAGE:versal ?= "image.ub" +QSPI_KERNEL_IMAGE:versal-net ?= "image.ub" NAND_KERNEL_IMAGE ?= "image.ub" diff --git a/meta-xilinx-core/recipes-bsp/u-boot/u-boot-xlnx.inc b/meta-xilinx-core/recipes-bsp/u-boot/u-boot-xlnx.inc index bd9711f5..e2ee2c3f 100644 --- a/meta-xilinx-core/recipes-bsp/u-boot/u-boot-xlnx.inc +++ b/meta-xilinx-core/recipes-bsp/u-boot/u-boot-xlnx.inc @@ -75,7 +75,7 @@ do_deploy:prepend() { fi # In ZynqMP u-boot.dtb is generated by default but not for versal, Hence manually deploy. - if [ "${SOC_FAMILY}" == "versal" ]; then + if [ "${SOC_FAMILY}" == "versal" -o "${SOC_FAMILY}" == "versal-net" ]; then if [ -f ${B}/arch/arm/dts/${UBOOT_USER_SPECIFIED_DTS}.dtb ]; then install -Dm 0644 ${B}/arch/arm/dts/${UBOOT_USER_SPECIFIED_DTS}.dtb ${DEPLOYDIR}/u-boot.dtb fi diff --git a/meta-xilinx-core/recipes-core/images/core-image-ptest-all.bbappend b/meta-xilinx-core/recipes-core/images/core-image-ptest-all.bbappend index fd3a3c11..8901a611 100644 --- a/meta-xilinx-core/recipes-core/images/core-image-ptest-all.bbappend +++ b/meta-xilinx-core/recipes-core/images/core-image-ptest-all.bbappend @@ -3,3 +3,4 @@ QB_MEM:microblaze = "-m 2G" QB_MEM:zynq = "-m 1G" QB_MEM:zynqmp = "-m 4G" QB_MEM:versal = "-m 16G" +QB_MEM:versal-net = "-m 16G" diff --git a/meta-xilinx-core/recipes-core/images/core-image-ptest-all.bbppend b/meta-xilinx-core/recipes-core/images/core-image-ptest-all.bbppend deleted file mode 100644 index fd3a3c11..00000000 --- a/meta-xilinx-core/recipes-core/images/core-image-ptest-all.bbppend +++ /dev/null @@ -1,5 +0,0 @@ -# Minimum board memory required for each type -QB_MEM:microblaze = "-m 2G" -QB_MEM:zynq = "-m 1G" -QB_MEM:zynqmp = "-m 4G" -QB_MEM:versal = "-m 16G" diff --git a/meta-xilinx-core/recipes-core/images/core-image-ptest-fast.bbappend b/meta-xilinx-core/recipes-core/images/core-image-ptest-fast.bbappend index e748c9e4..e7133ca9 100644 --- a/meta-xilinx-core/recipes-core/images/core-image-ptest-fast.bbappend +++ b/meta-xilinx-core/recipes-core/images/core-image-ptest-fast.bbappend @@ -3,6 +3,7 @@ QB_MEM:microblaze = "-m 2G" QB_MEM:zynq = "-m 1G" QB_MEM:zynqmp = "-m 4G" QB_MEM:versal = "-m 16G" +QB_MEM:versal-net = "-m 16G" # Zynq can't build qemu-xilinx or it's ptests PTESTS_FAST:remove:zynq = "qemu-ptest" diff --git a/meta-xilinx-core/recipes-core/images/core-image-ptest.bbappend b/meta-xilinx-core/recipes-core/images/core-image-ptest.bbappend index fd3a3c11..8901a611 100644 --- a/meta-xilinx-core/recipes-core/images/core-image-ptest.bbappend +++ b/meta-xilinx-core/recipes-core/images/core-image-ptest.bbappend @@ -3,3 +3,4 @@ QB_MEM:microblaze = "-m 2G" QB_MEM:zynq = "-m 1G" QB_MEM:zynqmp = "-m 4G" QB_MEM:versal = "-m 16G" +QB_MEM:versal-net = "-m 16G" diff --git a/meta-xilinx-core/recipes-kernel/dp/kernel-module-dp_6.6.10.bb b/meta-xilinx-core/recipes-kernel/dp/kernel-module-dp_6.6.10.bb index 3aaac030..22f363c9 100644 --- a/meta-xilinx-core/recipes-kernel/dp/kernel-module-dp_6.6.10.bb +++ b/meta-xilinx-core/recipes-kernel/dp/kernel-module-dp_6.6.10.bb @@ -23,3 +23,4 @@ EXTRA_OEMAKE += "O=${STAGING_KERNEL_BUILDDIR}" COMPATIBLE_MACHINE = "^$" COMPATIBLE_MACHINE:zynqmp = "zynqmp" COMPATIBLE_MACHINE:versal = "versal" +COMPATIBLE_MACHINE:versal-net = "versal-net" diff --git a/meta-xilinx-core/recipes-kernel/hdmi/kernel-module-hdmi_6.6.10.bb b/meta-xilinx-core/recipes-kernel/hdmi/kernel-module-hdmi_6.6.10.bb index 7e25fe1f..318a3cc0 100644 --- a/meta-xilinx-core/recipes-kernel/hdmi/kernel-module-hdmi_6.6.10.bb +++ b/meta-xilinx-core/recipes-kernel/hdmi/kernel-module-hdmi_6.6.10.bb @@ -23,3 +23,4 @@ EXTRA_OEMAKE += "O=${STAGING_KERNEL_BUILDDIR}" COMPATIBLE_MACHINE = "^$" COMPATIBLE_MACHINE:zynqmp = "zynqmp" COMPATIBLE_MACHINE:versal = "versal" +COMPATIBLE_MACHINE:versal-net = "versal-net" diff --git a/meta-xilinx-core/recipes-kernel/linux-xlnx-udev-rules/linux-xlnx-udev-rules.bb b/meta-xilinx-core/recipes-kernel/linux-xlnx-udev-rules/linux-xlnx-udev-rules.bb index 7ff3ef79..966aaaf5 100644 --- a/meta-xilinx-core/recipes-kernel/linux-xlnx-udev-rules/linux-xlnx-udev-rules.bb +++ b/meta-xilinx-core/recipes-kernel/linux-xlnx-udev-rules/linux-xlnx-udev-rules.bb @@ -16,6 +16,7 @@ COMPATIBLE_MACHINE:zynq = ".*" COMPATIBLE_MACHINE:zynqmp = ".*" COMPATIBLE_MACHINE:microblaze = ".*" COMPATIBLE_MACHINE:versal = ".*" +COMPATIBLE_MACHINE:versal-net = ".*" do_configure[noexec] = '1' do_compile[noexec] = '1' diff --git a/meta-xilinx-core/recipes-kernel/linux/linux-xlnx.inc b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx.inc index fff62eb6..329ae03b 100644 --- a/meta-xilinx-core/recipes-kernel/linux/linux-xlnx.inc +++ b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx.inc @@ -46,6 +46,7 @@ COMPATIBLE_MACHINE:zynq = ".*" COMPATIBLE_MACHINE:zynqmp = ".*" COMPATIBLE_MACHINE:microblaze = ".*" COMPATIBLE_MACHINE:versal = ".*" +COMPATIBLE_MACHINE:versal-net = ".*" # Use DEFCONFIGs for configuring linux-xlnx kernels KCONFIG_MODE ?= "alldefconfig" @@ -53,11 +54,13 @@ KBUILD_DEFCONFIG:zynqmp ?= "xilinx_defconfig" KBUILD_DEFCONFIG:zynq ?= "xilinx_zynq_defconfig" KBUILD_DEFCONFIG:microblaze ?= "mmu_defconfig" KBUILD_DEFCONFIG:versal ?= "xilinx_defconfig" +KBUILD_DEFCONFIG:versal-net ?= "xilinx_defconfig" KERNEL_FEATURES:append:zynqmp = "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ' features/xen/xen.scc', '', d)}" KERNEL_FEATURES:append:zynqmp = "${@' features/xilinx/overlay_of/overlay_of.scc' if d.getVar('FPGA_MNGR_RECONFIG_ENABLE') == '1' else ''}" KERNEL_FEATURES:append:versal = "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ' features/xen/xen.scc', '', d)} features/xilinx/hdmi-module/hdmi-module.scc" +KERNEL_FEATURES:append:versal-net = "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ' features/xen/xen.scc', '', d)} features/xilinx/hdmi-module/hdmi-module.scc" KERNEL_FEATURES:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'virtualization', ' features/ocicontainer/ocicontainer.scc', '', d)}" diff --git a/meta-xilinx-core/recipes-xrt/zocl/kernel-module-zocl_202310.2.15.0.bb b/meta-xilinx-core/recipes-xrt/zocl/kernel-module-zocl_202310.2.15.0.bb index b91572f9..e5efd89c 100644 --- a/meta-xilinx-core/recipes-xrt/zocl/kernel-module-zocl_202310.2.15.0.bb +++ b/meta-xilinx-core/recipes-xrt/zocl/kernel-module-zocl_202310.2.15.0.bb @@ -13,6 +13,7 @@ LICENSE = "GPL-2.0-or-later & Apache-2.0" COMPATIBLE_MACHINE ?= "^$" COMPATIBLE_MACHINE:zynqmp = ".*" COMPATIBLE_MACHINE:versal = ".*" +COMPATIBLE_MACHINE:versal-net = ".*" S = "${WORKDIR}/git/src/runtime_src/core/edge/drm/zocl" diff --git a/meta-xilinx-core/recipes-xrt/zocl/kernel-module-zocl_202320.2.16.0.bb b/meta-xilinx-core/recipes-xrt/zocl/kernel-module-zocl_202320.2.16.0.bb index b91572f9..e5efd89c 100644 --- a/meta-xilinx-core/recipes-xrt/zocl/kernel-module-zocl_202320.2.16.0.bb +++ b/meta-xilinx-core/recipes-xrt/zocl/kernel-module-zocl_202320.2.16.0.bb @@ -13,6 +13,7 @@ LICENSE = "GPL-2.0-or-later & Apache-2.0" COMPATIBLE_MACHINE ?= "^$" COMPATIBLE_MACHINE:zynqmp = ".*" COMPATIBLE_MACHINE:versal = ".*" +COMPATIBLE_MACHINE:versal-net = ".*" S = "${WORKDIR}/git/src/runtime_src/core/edge/drm/zocl" diff --git a/meta-xilinx-core/recipes-xrt/zocl/kernel-module-zocl_202410.2.17.0.bb b/meta-xilinx-core/recipes-xrt/zocl/kernel-module-zocl_202410.2.17.0.bb index b91572f9..e5efd89c 100644 --- a/meta-xilinx-core/recipes-xrt/zocl/kernel-module-zocl_202410.2.17.0.bb +++ b/meta-xilinx-core/recipes-xrt/zocl/kernel-module-zocl_202410.2.17.0.bb @@ -13,6 +13,7 @@ LICENSE = "GPL-2.0-or-later & Apache-2.0" COMPATIBLE_MACHINE ?= "^$" COMPATIBLE_MACHINE:zynqmp = ".*" COMPATIBLE_MACHINE:versal = ".*" +COMPATIBLE_MACHINE:versal-net = ".*" S = "${WORKDIR}/git/src/runtime_src/core/edge/drm/zocl" diff --git a/meta-xilinx-mali400/recipes-graphics/wayland/weston.inc b/meta-xilinx-mali400/recipes-graphics/wayland/weston.inc index fadc9486..f18cae89 100644 --- a/meta-xilinx-mali400/recipes-graphics/wayland/weston.inc +++ b/meta-xilinx-mali400/recipes-graphics/wayland/weston.inc @@ -1,15 +1,4 @@ SRC_URI:append:zynqmp = " file://0001-libweston-Remove-substitute-format-for-ARGB8888.patch" -# Due to the SRC_URI zynqmp specific change, this needs to be SOC_FAMILY_ARCH specific -SOC_FAMILY_ARCH ??= "${TUNE_PKGARCH}" -DEFAULT_PACKAGE_ARCH := "${PACKAGE_ARCH}" -DEFAULT_PACKAGE_ARCH:zynqmp = "${SOC_FAMILY_ARCH}" -PACKAGE_ARCH = "${DEFAULT_PACKAGE_ARCH}" - - -# Links to libmali-xlnx, so it becomes MACHINE_ARCH specific -DEFAULT_PACKAGE_ARCH := "${PACKAGE_ARCH}" -MALI_PACKAGE_ARCH[vardepsexclude] = "MACHINE_ARCH" -MALI_PACKAGE_ARCH = "${@'${MACHINE_ARCH}' if d.getVar('PREFERRED_PROVIDER_virtual/libgles1') == 'libmali-xlnx' else '${DEFAULT_PACKAGE_ARCH}'}" -PACKAGE_ARCH[vardepsexclude] = "MALI_PACKAGE_ARCH" -PACKAGE_ARCH = "${@bb.utils.contains_any('DEPENDS', 'virtual/libgles1 virtual/libgles2 virtual/egl virtual/libgbm', '${MALI_PACKAGE_ARCH}', '${DEFAULT_PACKAGE_ARCH}', d)}" +# Due to the SRC_URI zynqmp specific change, this needs to be MACHINE_ARCH specific +PACKAGE_ARCH:zynqmp = "${MACHINE_ARCH}" diff --git a/meta-xilinx-standalone-sdt/classes-recipe/esw.bbclass b/meta-xilinx-standalone-sdt/classes-recipe/esw.bbclass index a87e1dad..abd08a5d 100644 --- a/meta-xilinx-standalone-sdt/classes-recipe/esw.bbclass +++ b/meta-xilinx-standalone-sdt/classes-recipe/esw.bbclass @@ -36,19 +36,7 @@ do_configure[depends] += "device-tree:do_deploy" do_compile[depends] += "device-tree:do_deploy" do_install[depends] += "device-tree:do_deploy" -def get_xlnx_cmake_machine(fam, variant, d): - cmake_machine = fam - if (fam == 'zynqmp'): - cmake_machine = 'ZynqMP' - elif (fam == 'versal'): - cmake_machine = 'Versal' - if (variant == 'net'): - cmake_machine = 'VersalNet' - elif (fam == 'zynq'): - cmake_machine = 'Zynq' - return cmake_machine - -def get_xlnx_cmake_processor(tune, machine, variant, d): +def get_xlnx_cmake_processor(tune, machine, d): cmake_processor = tune if tune.startswith('microblaze'): if (machine == 'psu_pmu_0'): @@ -67,12 +55,17 @@ def get_xlnx_cmake_processor(tune, machine, variant, d): cmake_processor = 'cortexa53' elif tune == 'cortexa72': cmake_processor = 'cortexa72' - if (variant == 'net'): - cmake_processor = 'cortexa78' + elif tune == 'cortexa78': + cmake_processor = 'cortexa78' return cmake_processor -XLNX_CMAKE_MACHINE = "${@get_xlnx_cmake_machine(d.getVar('SOC_FAMILY'), d.getVar('SOC_VARIANT'), d)}" -XLNX_CMAKE_PROCESSOR = "${@get_xlnx_cmake_processor(d.getVar('DEFAULTTUNE'), d.getVar('ESW_MACHINE'), d.getVar('SOC_VARIANT'), d)}" +XLNX_CMAKE_MACHINE = "undefined" +XLNX_CMAKE_MACHINE:zynq = "Zynq" +XLNX_CMAKE_MACHINE:zynqmp = "ZynqMP" +XLNX_CMAKE_MACHINE:versal = "Versal" +XLNX_CMAKE_MACHINE:versal-net = "VersalNet" + +XLNX_CMAKE_PROCESSOR = "${@get_xlnx_cmake_processor(d.getVar('DEFAULTTUNE'), d.getVar('ESW_MACHINE'), d)}" XLNX_CMAKE_SYSTEM_NAME ?= "Generic" XLNX_CMAKE_BSP_VARS ?= "" diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware.inc b/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware.inc index bac5c997..99451c3b 100644 --- a/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware.inc +++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware.inc @@ -6,6 +6,7 @@ inherit xlnx-embeddedsw deploy COMPATIBLE_HOST = "microblaze.*-elf" COMPATIBLE_MACHINE = "none" COMPATIBLE_MACHINE:versal = ".*" +COMPATIBLE_MACHINE:versal-net = ".*" PACKAGE_ARCH = "${MACHINE_ARCH}" diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware.inc b/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware.inc index 42463173..6c378270 100644 --- a/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware.inc +++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware.inc @@ -6,6 +6,7 @@ inherit xlnx-embeddedsw deploy COMPATIBLE_HOST = "microblaze.*-elf" COMPATIBLE_MACHINE = "none" COMPATIBLE_MACHINE:versal = ".*" +COMPATIBLE_MACHINE:versal-net = ".*" PACKAGE_ARCH = "${MACHINE_ARCH}" -- cgit v1.2.3-54-g00ecf