aboutsummaryrefslogtreecommitdiffstats
path: root/meta-xilinx-core/conf/machine/versal-generic.conf
diff options
context:
space:
mode:
Diffstat (limited to 'meta-xilinx-core/conf/machine/versal-generic.conf')
-rw-r--r--meta-xilinx-core/conf/machine/versal-generic.conf120
1 files changed, 120 insertions, 0 deletions
diff --git a/meta-xilinx-core/conf/machine/versal-generic.conf b/meta-xilinx-core/conf/machine/versal-generic.conf
new file mode 100644
index 00000000..2f35ba24
--- /dev/null
+++ b/meta-xilinx-core/conf/machine/versal-generic.conf
@@ -0,0 +1,120 @@
+#@TYPE: Machine
+#@NAME: versal-generic
+#@DESCRIPTION: Machine configuration for the versal-generic devices
+
+#### Preamble
+MACHINEOVERRIDES =. "${@['', 'versal-generic:']['versal-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 device-tree variables
+YAML_CONSOLE_DEVICE_CONFIG:pn-device-tree ?= "CIPS_0_pspmc_0_psv_sbsauart_0"
+DT_PADDING_SIZE:pn-device-tree ?= "0x1000"
+DTC_FLAGS:pn-device-tree = "-@"
+YAML_DT_BOARD_FLAGS ?= "{BOARD versal-vck190-reva-x-ebm-01-reva}"
+
+# Yocto Versal u-boot-xlnx variables
+UBOOT_MACHINE ?= "xilinx_versal_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 ?= "CIPS_0_pspmc_0_psv_sbsauart_0"
+YAML_SERIAL_CONSOLE_STDOUT:pn-plm-firmware ?= "CIPS_0_pspmc_0_psv_sbsauart_0"
+
+# Yocto Versal KERNEL Variables
+UBOOT_ENTRYPOINT ?= "0x200000"
+UBOOT_LOADADDRESS ?= "0x200000"
+
+# Versal Serial Console
+SERIAL_CONSOLES ?= "115200;ttyAMA0"
+YAML_SERIAL_CONSOLE_BAUDRATE ?= "115200"
+
+require conf/machine/include/soc-versal.inc
+require conf/machine/include/machine-xilinx-default.inc
+require conf/machine/include/machine-xilinx-qemu.inc
+
+# versal-generic.conf uses vck190-versal xsa as reference input.
+# User can override with custom xsa using HDF_BASE and HDF_PATH variables from
+# local.conf.
+HDF_MACHINE = "vck190-versal"
+
+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-ps-vck190.dtb"
+QEMU_HW_DTB_PMC = "${QEMU_HW_DTB_PATH}/board-versal-pmc-vc-p-a2197-00.dtb"
+
+# Four total serial ports defined in this model (according to the dts)
+#
+# hw serial0 xps-uartlite (f0110000) -
+# hw serial1 ddrmc/xps-uartlite (f0310000) -
+# hw serial2 pl011 (ff000000) - linux serial0 (ttyAMA0)
+# hw serial3 pl011 (ff010000) - linux serial1 (ttyAMA1) (disabled)
+# ? dcc ? - linux serial2 (????)
+QB_XILINX_SERIAL = "-serial null -serial null -serial mon:stdio -serial null"
+
+QB_OPT_APPEND += " \
+ -hw-dtb ${QEMU_HW_DTB_PS} \
+ ${@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}"]}"