#@TYPE: Machine #@NAME: versal-net-generic #@DESCRIPTION: Machine configuration for the versal-net-generic devices #### Preamble MACHINEOVERRIDES =. "${@['', 'versal-net-generic:']['versal-net-generic' != '${MACHINE}']}" #### Regular settings follow # 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 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 KERNEL Variables UBOOT_ENTRYPOINT ?= "0x200000" UBOOT_LOADADDRESS ?= "0x200000" # Versal Serial Console SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;ttyAMA1" require conf/machine/include/soc-versal-net.inc require conf/machine/include/machine-xilinx-default.inc require conf/machine/include/machine-xilinx-qemu.inc MACHINE_FEATURES += "rtc ext2 ext3 vfat usbhost" # 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'}" UBOOT_BOOT_SCRIPT ?= "u-boot-xlnx-scr" EXTRA_IMAGEDEPENDS += " \ ${UBOOT_BOOT_SCRIPT} \ " IMAGE_BOOT_FILES += " \ Image \ boot.scr \ " # Versal QEMU Configurations # This machine has a QEMU model, runqemu setup: QB_MACHINE ?= "-machine arm-generic-fdt" 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 ?= "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" # Four total serial ports defined in this model (according to the dts) # # hw serial0 xps-uartlite (0xf0110000) - # hw serial1 xps-uartlite (0xf0310000) - # hw serial2 pl011 (0xf1920000) - linux serial0 (ttyAMA0) # hw serial3 pl011 (0xf1930000) - linux serial1 (ttyAMA1) QEMU_HW_SERIAL ?= "-serial null -serial null -serial mon:stdio -serial null" QEMU_HW_OSPI_FILE ??= "" QB_DTB = "${DEPLOY_DIR_IMAGE}/${QEMU_HW_DTB_PS}" QB_OPT_APPEND += " \ ${@qemu_add_extra_args(d)} \ ${@'-bootbin versal:@DEPLOY_DIR_IMAGE@/${QEMU_HW_OSPI_FILE}' if d.getVar('QEMU_HW_OSPI_FILE') != '' else ''} \ " # PLM instance args QEMU_HW_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 @DEPLOY_DIR_IMAGE@/${QEMU_HW_DTB_PMC} \ -display none \ " QEMU_HW_FW_FILES = " \ -device loader,file=@DEPLOY_DIR_IMAGE@/BOOT-${MACHINE}_bh.bin,addr=0xF201E000,force-raw=on \ -device loader,file=@DEPLOY_DIR_IMAGE@/CDO/pmc_cdo.bin,addr=0xf2000000,force-raw=on \ -device loader,file=@DEPLOY_DIR_IMAGE@/plm-${MACHINE}.elf,cpu-num=1 \ " QEMU_HW_PLM_OPT += "${@d.getVar('QEMU_HW_FW_FILES') if d.getVar('QEMU_HW_OSPI_FILE') == '' else ''}" QB_OPT_APPEND += " -plm-args '${QEMU_HW_PLM_OPT}'" #### No additional settings should be after the Postamble #### Postamble PACKAGE_EXTRA_ARCHS:append = "${@['', ' versal_net_generic']['versal-net-generic' != "${MACHINE}"]}"