#@TYPE: Machine #@NAME: Generic versal #@DESCRIPTION: versal devices # Deprecated board config USE_BOARD = "${@"conf/machine/include/xilinx-board-pre.inc" if d.getVar("BOARD") or d.getVar("BOARD_VARIANT") else ""}" require ${USE_BOARD} unset USE_BOARD #### Preamble MACHINEOVERRIDES =. "${@['', 'versal-generic:']['versal-generic' != '${MACHINE}']}" #### Regular settings follow require conf/machine/include/soc-versal.inc require conf/machine/include/machine-xilinx-default.inc require conf/machine/include/machine-xilinx-qemu.inc MACHINE_FEATURES += "rtc ext2 ext3 vfat usbhost" EXTRA_IMAGEDEPENDS += "libyaml-native python3-cython-native python3-pyyaml-native" UBOOT_MACHINE ?= "xilinx_versal_virt_defconfig" BOOTMODE ?= "generic.root" SERIAL_CONSOLES ?= "115200;ttyAMA0" MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "device-tree" HDF_MACHINE = "vck190-versal" # 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'}" WKS_FILES ?= "sdimage-bootpart.wks" EXTRA_IMAGEDEPENDS += " \ arm-trusted-firmware \ virtual/boot-bin \ virtual/bootloader \ virtual/psm-firmware \ virtual/plm \ u-boot-zynq-scr \ qemu-devicetrees \ virtual/cdo \ " IMAGE_BOOT_FILES += " \ boot.bin \ ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/dtb', 'device-tree', 'system.dtb', '', d)} \ Image \ boot.scr \ " # This machine has a QEMU model, runqemu setup: QB_MEM = "-m 8G" QB_DEFAULT_KERNEL = "none" QB_NETWORK_DEVICE = "" QB_KERNEL_CMDLINE_APPEND ?= "" QB_NET = "none" QEMU_HW_DTB_PATH = "${DEPLOY_DIR_IMAGE}/qemu-hw-devicetrees/multiarch" QEMU_HW_DTB_PS = "${QEMU_HW_DTB_PATH}/board-versal-ps-vck190.dtb" QEMU_HW_DTB_PMC = "${QEMU_HW_DTB_PATH}/board-versal-pmc-vc-p-a2197-00.dtb" QEMU_HW_DTB_PS_vp1202-versal = "${QEMU_HW_DTB_PATH}/board-versal-vp1202-ps-virt.dtb" QEMU_HW_DTB_PMC_vp1202-versal = "${QEMU_HW_DTB_PATH}/board-versal-vp1202-pmc-virt.dtb" QB_OPT_APPEND = " \ -hw-dtb ${QEMU_HW_DTB_PS} \ -serial null -serial null \ ${@qemu_add_extra_args(d)} \ " # PLM instance args QB_PLM_OPT = " \ -M microblaze-fdt \ -device loader,file=${DEPLOY_DIR_IMAGE}/BOOT-${MACHINE}_bh.bin,addr=0xF201E000,force-raw \ -device loader,addr=0xf0000000,data=0xba020004,data-len=4 \ -device loader,addr=0xf0000004,data=0xb800fffc,data-len=4 \ -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 \ -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_OPT_APPEND += " -plm-args '${QB_PLM_OPT}'" #### No additional settings should be after the Postamble #### Postamble PACKAGE_EXTRA_ARCHS:append = "${@['', ' versal_generic']['versal-generic' != "${MACHINE}"]}" # Deprecated board config USE_BOARD = "${@"conf/machine/include/xilinx-board-post.inc" if d.getVar("BOARD") or d.getVar("BOARD_VARIANT") else ""}" require ${USE_BOARD} unset USE_BOARD