summaryrefslogtreecommitdiffstats
path: root/meta-xilinx-bsp/conf
diff options
context:
space:
mode:
authorMark Hatle <mark.hatle@xilinx.com>2021-12-15 13:52:16 -0800
committerMark Hatle <mark.hatle@xilinx.com>2022-01-14 15:37:02 -0800
commitf900c6a0c8908e370689235230094308ec419cf9 (patch)
treebd9ca83e452c263c7a421b826086048cf8130f34 /meta-xilinx-bsp/conf
parentaaddcc3f785404da04af9ea3d005f2f520b4ec9e (diff)
downloadmeta-xilinx-f900c6a0c8908e370689235230094308ec419cf9.tar.gz
Initial restructure/split of meta-xilinx-bsp
Create a new meta-xilinx-core, move core functionality to the core, keeping board specific files in the bsp layer. zynqmp-generic changed from require <board> to include, so if meta-xilinx-bsp is not available it will not fail. Signed-off-by: Mark Hatle <mark.hatle@xilinx.com>
Diffstat (limited to 'meta-xilinx-bsp/conf')
-rw-r--r--meta-xilinx-bsp/conf/0001-local.conf.sample-PMU_ROM-to-use-pmu-rom.elf-from-pr.patch27
-rw-r--r--meta-xilinx-bsp/conf/bblayers.conf.sample36
-rw-r--r--meta-xilinx-bsp/conf/layer.conf38
-rw-r--r--meta-xilinx-bsp/conf/local.conf.sample230
-rw-r--r--meta-xilinx-bsp/conf/machine/include/README34
-rw-r--r--meta-xilinx-bsp/conf/machine/include/board/ultra96.inc2
-rw-r--r--meta-xilinx-bsp/conf/machine/include/machine-xilinx-default.inc71
-rw-r--r--meta-xilinx-bsp/conf/machine/include/machine-xilinx-qemu.inc55
-rw-r--r--meta-xilinx-bsp/conf/machine/include/soc-tune-include.inc16
-rw-r--r--meta-xilinx-bsp/conf/machine/include/soc-versal.inc35
-rw-r--r--meta-xilinx-bsp/conf/machine/include/soc-zynq.inc32
-rw-r--r--meta-xilinx-bsp/conf/machine/include/soc-zynqmp.inc51
-rw-r--r--meta-xilinx-bsp/conf/machine/include/xilinx-board.inc12
-rw-r--r--meta-xilinx-bsp/conf/machine/include/xilinx-microblaze.inc17
-rw-r--r--meta-xilinx-bsp/conf/machine/include/xilinx-soc-family.inc10
-rw-r--r--meta-xilinx-bsp/conf/machine/microblaze-generic.conf32
-rw-r--r--meta-xilinx-bsp/conf/machine/qemu-zynq7.conf4
-rw-r--r--meta-xilinx-bsp/conf/machine/vc-p-a2197-00-versal.conf10
-rw-r--r--meta-xilinx-bsp/conf/machine/vck190-versal.conf10
-rw-r--r--meta-xilinx-bsp/conf/machine/versal-generic.conf86
-rw-r--r--meta-xilinx-bsp/conf/machine/vmk180-versal.conf10
-rw-r--r--meta-xilinx-bsp/conf/machine/zc702-zynq7.conf4
-rw-r--r--meta-xilinx-bsp/conf/machine/zc706-zynq7.conf4
-rw-r--r--meta-xilinx-bsp/conf/machine/zcu102-zynqmp.conf10
-rw-r--r--meta-xilinx-bsp/conf/machine/zynq-generic.conf41
-rw-r--r--meta-xilinx-bsp/conf/machine/zynqmp-generic.conf85
26 files changed, 32 insertions, 930 deletions
diff --git a/meta-xilinx-bsp/conf/0001-local.conf.sample-PMU_ROM-to-use-pmu-rom.elf-from-pr.patch b/meta-xilinx-bsp/conf/0001-local.conf.sample-PMU_ROM-to-use-pmu-rom.elf-from-pr.patch
deleted file mode 100644
index f7d487fe..00000000
--- a/meta-xilinx-bsp/conf/0001-local.conf.sample-PMU_ROM-to-use-pmu-rom.elf-from-pr.patch
+++ /dev/null
@@ -1,27 +0,0 @@
1From 4694f1ef8bdb40f5aa82597a62f2a8a8a5a38969 Mon Sep 17 00:00:00 2001
2From: Sai Hari Chandana Kalluri <chandana.kalluri@xilinx.com>
3Date: Thu, 13 Aug 2020 16:56:12 -0700
4Subject: [meta-xilinx-bsp][master-upstream][PATCH] local.conf.sample: PMU_ROM
5 to use pmu-rom.elf from /proj/yocto
6
7Users have to manually copy pmu-rom.elf to DEPLOY_DIR when using runqemu.
8Enable PMU_ROM line within local.conf to use pmu from /proj/yocto/pmu-rom/
9
10Signed-off-by: Sai Hari Chandana Kalluri <chandana.kalluri@xilinx.com>
11---
12 meta-xilinx-bsp/conf/local.conf.sample | 2 ++
13 1 file changed, 2 insertions(+)
14
15diff --git a/meta-xilinx-bsp/conf/local.conf.sample b/meta-xilinx-bsp/conf/local.conf.sample
16index 377a519..5d567af 100644
17--- a/meta-xilinx-bsp/conf/local.conf.sample
18+++ b/meta-xilinx-bsp/conf/local.conf.sample
19@@ -231,3 +231,5 @@ PMU_FIRMWARE_IMAGE_NAME = "pmu-firmware-${MACHINE}"
20 # this doesn't mean anything to you.
21 CONF_VERSION = "1"
22
23+#Enable the below line to use pmu-rom.elf from a specific path
24+#PMU_ROM = "/proj/yocto/pmu-rom/pmu-rom.elf"
25--
262.7.4
27
diff --git a/meta-xilinx-bsp/conf/bblayers.conf.sample b/meta-xilinx-bsp/conf/bblayers.conf.sample
deleted file mode 100644
index e29e9274..00000000
--- a/meta-xilinx-bsp/conf/bblayers.conf.sample
+++ /dev/null
@@ -1,36 +0,0 @@
1LCONF_VERSION = "7"
2
3BBPATH = "${TOPDIR}"
4BBFILES ?= ""
5
6BBLAYERS ?= " \
7 ##OEROOT##/meta \
8 ##OEROOT##/meta-poky \
9 ##OEROOT##/../meta-openembedded/meta-perl \
10 ##OEROOT##/../meta-openembedded/meta-python \
11 ##OEROOT##/../meta-openembedded/meta-filesystems \
12 ##OEROOT##/../meta-openembedded/meta-gnome \
13 ##OEROOT##/../meta-openembedded/meta-multimedia \
14 ##OEROOT##/../meta-openembedded/meta-networking \
15 ##OEROOT##/../meta-openembedded/meta-webserver \
16 ##OEROOT##/../meta-openembedded/meta-xfce \
17 ##OEROOT##/../meta-openembedded/meta-initramfs \
18 ##OEROOT##/../meta-openembedded/meta-oe \
19 ##OEROOT##/../meta-browser/meta-chromium \
20 ##OEROOT##/../meta-qt5 \
21 ##OEROOT##/../meta-xilinx/meta-xilinx-bsp \
22 ##OEROOT##/../meta-xilinx/meta-xilinx-pynq \
23 ##OEROOT##/../meta-xilinx/meta-xilinx-standalone \
24 ##OEROOT##/../meta-xilinx/meta-xilinx-contrib \
25 ##OEROOT##/../meta-xilinx-tools \
26 ##OEROOT##/../meta-petalinux \
27 ##OEROOT##/../meta-virtualization \
28 ##OEROOT##/../meta-openamp \
29 ##OEROOT##/../meta-jupyter \
30 ##OEROOT##/../meta-python2 \
31 ##OEROOT##/../meta-clang \
32"
33
34BBLAYERS_NON_REMOVABLE ?= " \
35 ##OEROOT##/meta \
36"
diff --git a/meta-xilinx-bsp/conf/layer.conf b/meta-xilinx-bsp/conf/layer.conf
index 7d414c0a..cee8b3c8 100644
--- a/meta-xilinx-bsp/conf/layer.conf
+++ b/meta-xilinx-bsp/conf/layer.conf
@@ -5,38 +5,10 @@ BBPATH .= ":${LAYERDIR}"
5BBFILES += "${LAYERDIR}/recipes-*/*/*.bb" 5BBFILES += "${LAYERDIR}/recipes-*/*/*.bb"
6BBFILES += "${LAYERDIR}/recipes-*/*/*.bbappend" 6BBFILES += "${LAYERDIR}/recipes-*/*/*.bbappend"
7 7
8BBFILE_COLLECTIONS += "xilinx" 8BBFILE_COLLECTIONS += "xilinx-bsp"
9BBFILE_PATTERN_xilinx = "^${LAYERDIR}/" 9BBFILE_PATTERN_xilinx-bsp = "^${LAYERDIR}/"
10BBFILE_PRIORITY_xilinx = "5" 10BBFILE_PRIORITY_xilinx-bsp = "5"
11 11
12BBFILES_DYNAMIC += " \ 12LAYERDEPENDS_xilinx-bsp = "xilinx"
13openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/recipes-*/*/*.bb \
14openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/recipes-*/*/*.bbappend \
15chromium-browser-layer:${LAYERDIR}/dynamic-layers/chromium-browser-layer/recipes-*/*/*.bb \
16chromium-browser-layer:${LAYERDIR}/dynamic-layers/chromium-browser-layer/recipes-*/*/*.bbappend \
17"
18 13
19LAYERDEPENDS_xilinx = "core" 14LAYERSERIES_COMPAT_xilinx-bsp = "honister"
20
21LAYERSERIES_COMPAT_xilinx = " gatesgarth honister hardknott"
22
23SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
24 *->zocl \
25 *->cairo \
26 *->libepoxy \
27 *->gstreamer1.0-plugins-base \
28 *->gtk+ \
29 *->gtk+3 \
30 *->libglu \
31 *->libsdl \
32 *->libsdl2 \
33 *->mesa \
34 *->mesa-gl \
35 *->qemu \
36 *->virglrenderer \
37 *->xserver-xorg \
38"
39
40XILINX_RELEASE_VERSION = "v2021.2"
41
42HOSTTOOLS += "xxd"
diff --git a/meta-xilinx-bsp/conf/local.conf.sample b/meta-xilinx-bsp/conf/local.conf.sample
deleted file mode 100644
index caaa2083..00000000
--- a/meta-xilinx-bsp/conf/local.conf.sample
+++ /dev/null
@@ -1,230 +0,0 @@
1#
2# This file is your local configuration file and is where all local user settings
3# are placed. The comments in this file give some guide to the options a new user
4# to the system might want to change but pretty much any configuration option can
5# be set in this file. More adventurous users can look at local.conf.extended
6# which contains other examples of configuration which can be placed in this file
7# but new users likely won't need any of them initially.
8#
9# Lines starting with the '#' character are commented out and in some cases the
10# default values are provided as comments to show people example syntax. Enabling
11# the option is a question of removing the # character and making any change to the
12# variable as required.
13
14# BASE = "${COREBASE}/../.."
15
16#
17# Machine Selection
18#
19# You need to select a specific machine to target the build with. There are a selection
20# of emulated machines available which can boot and run in the QEMU emulator:
21#
22# This sets the default machine if no other machine is selected:
23MACHINE ??= "qemuzynq"
24
25#
26# Where to place downloads
27#
28# During a first build the system will download many different source code tarballs
29# from various upstream projects. This can take a while, particularly if your network
30# connection is slow. These are all stored in DL_DIR. When wiping and rebuilding you
31# can preserve this directory to speed up this part of subsequent builds. This directory
32# is safe to share between multiple builds on the same machine too.
33#
34# The default is a downloads directory under TOPDIR which is the build directory.
35#
36# DL_DIR ?= "${BASE}/downloads"
37
38#
39# Where to place shared-state files
40#
41# BitBake has the capability to accelerate builds based on previously built output.
42# This is done using "shared state" files which can be thought of as cache objects
43# and this option determines where those files are placed.
44#
45# You can wipe out TMPDIR leaving this directory intact and the build would regenerate
46# from these files if no changes were made to the configuration. If changes were made
47# to the configuration, only shared state files where the state was still valid would
48# be used (done using checksums).
49#
50# The default is a sstate-cache directory under TOPDIR.
51#
52# SSTATE_DIR ?= "${BASE}/sstate-cache"
53
54#
55# Where to place the build output
56#
57# This option specifies where the bulk of the building work should be done and
58# where BitBake should place its temporary files and output. Keep in mind that
59# this includes the extraction and compilation of many applications and the toolchain
60# which can use Gigabytes of hard disk space.
61#
62# The default is a tmp directory under TOPDIR.
63#
64#TMPDIR = "${TOPDIR}/tmp"
65#
66#TMPDIR:versal = "${TOPDIR}/tmp-versal"
67
68#
69# Default policy config
70#
71# The distribution setting controls which policy settings are used as defaults.
72# The default value is fine for general Yocto project use, at least initially.
73# Ultimately when creating custom policy, people will likely end up subclassing
74# these defaults.
75#
76DISTRO ?= "petalinux"
77
78#
79# Package Management configuration
80#
81# This variable lists which packaging formats to enable. Multiple package backends
82# can be enabled at once and the first item listed in the variable will be used
83# to generate the root filesystems.
84# Options are:
85# - 'package_deb' for debian style deb files
86# - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager)
87# - 'package_rpm' for rpm style packages
88# E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk"
89# We default to rpm:
90PACKAGE_CLASSES ?= "package_rpm"
91
92#
93# SDK/ADT target architecture
94#
95# This variable specifies the architecture to build SDK/ADT items for and means
96# you can build the SDK packages for architectures other than the machine you are
97# running the build on (i.e. building i686 packages on an x86_64 host).
98# Supported values are i686 and x86_64
99#SDKMACHINE ?= "i686"
100
101#
102# Extra image configuration defaults
103#
104# The EXTRA_IMAGE_FEATURES variable allows extra packages to be added to the generated
105# images. Some of these options are added to certain image types automatically. The
106# variable can contain the following options:
107# "dbg-pkgs" - add -dbg packages for all installed packages
108# (adds symbol information for debugging/profiling)
109# "dev-pkgs" - add -dev packages for all installed packages
110# (useful if you want to develop against libs in the image)
111# "ptest-pkgs" - add -ptest packages for all ptest-enabled packages
112# (useful if you want to run the package test suites)
113# "tools-sdk" - add development tools (gcc, make, pkgconfig etc.)
114# "tools-debug" - add debugging tools (gdb, strace)
115# "eclipse-debug" - add Eclipse remote debugging support
116# "tools-profile" - add profiling tools (oprofile, exmap, lttng, valgrind)
117# "tools-testapps" - add useful testing tools (ts_print, aplay, arecord etc.)
118# "debug-tweaks" - make an image suitable for development
119# e.g. ssh root access has a blank password
120# There are other application targets that can be used here too, see
121# meta/classes/image.bbclass and meta/classes/core-image.bbclass for more details.
122# We default to enabling the debugging tweaks.
123EXTRA_IMAGE_FEATURES = "debug-tweaks"
124
125#
126# Additional image features
127#
128# The following is a list of additional classes to use when building images which
129# enable extra features. Some available options which can be included in this variable
130# are:
131# - 'buildstats' collect build statistics
132USER_CLASSES ?= "buildstats"
133
134#
135# Runtime testing of images
136#
137# The build system can test booting virtual machine images under qemu (an emulator)
138# after any root filesystems are created and run tests against those images. To
139# enable this uncomment this line. See classes/testimage(-auto).bbclass for
140# further details.
141#TEST_IMAGE = "1"
142#
143# Interactive shell configuration
144#
145# Under certain circumstances the system may need input from you and to do this it
146# can launch an interactive shell. It needs to do this since the build is
147# multithreaded and needs to be able to handle the case where more than one parallel
148# process may require the user's attention. The default is iterate over the available
149# terminal types to find one that works.
150#
151# Examples of the occasions this may happen are when resolving patches which cannot
152# be applied, to use the devshell or the kernel menuconfig
153#
154# Supported values are auto, gnome, xfce, rxvt, screen, konsole (KDE 3.x only), none
155# Note: currently, Konsole support only works for KDE 3.x due to the way
156# newer Konsole versions behave
157#OE_TERMINAL = "auto"
158# By default disable interactive patch resolution (tasks will just fail instead):
159PATCHRESOLVE = "noop"
160
161#
162# Disk Space Monitoring during the build
163#
164# Monitor the disk space during the build. If there is less that 1GB of space or less
165# than 100K inodes in any key build location (TMPDIR, DL_DIR, SSTATE_DIR), gracefully
166# shutdown the build. If there is less that 100MB or 1K inodes, perform a hard abort
167# of the build. The reason for this is that running completely out of space can corrupt
168# files and damages the build in ways which may not be easily recoverable.
169# It's necesary to monitor /tmp, if there is no space left the build will fail
170# with very exotic errors.
171BB_DISKMON_DIRS = "\
172 STOPTASKS,${TMPDIR},1G,100K \
173 STOPTASKS,${DL_DIR},1G,100K \
174 STOPTASKS,${SSTATE_DIR},1G,100K \
175 STOPTASKS,/tmp,100M,100K \
176 ABORT,${TMPDIR},100M,1K \
177 ABORT,${DL_DIR},100M,1K \
178 ABORT,${SSTATE_DIR},100M,1K \
179 ABORT,/tmp,10M,1K"
180
181#
182# Shared-state files from other locations
183#
184# As mentioned above, shared state files are prebuilt cache data objects which can
185# used to accelerate build time. This variable can be used to configure the system
186# to search other mirror locations for these objects before it builds the data itself.
187#
188# This can be a filesystem directory, or a remote url such as http or ftp. These
189# would contain the sstate-cache results from previous builds (possibly from other
190# machines). This variable works like fetcher MIRRORS/PREMIRRORS and points to the
191# cache locations to check for the shared objects.
192# NOTE: if the mirror uses the same structure as SSTATE_DIR, you need to add PATH
193# at the end as shown in the examples below. This will be substituted with the
194# correct path within the directory structure.
195#SSTATE_MIRRORS ?= "\
196#file://.* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \
197#file://.* file:///some/local/dir/sstate/PATH"
198
199XILINX_VER_MAIN = "2021.2"
200
201# Uncomment below lines to provide path for custom xsct trim
202# This is required for building Versal based devices, please fetch the
203# xsct-trim from Xilinx lounge area
204#
205#EXTERNAL_XSCT_TARBALL = "/proj/yocto/xsct-trim/2021.2_xsct_daily_latest"
206#VALIDATE_XSCT_CHECKSUM = '0'
207
208# XILINX_VIVADO_DESIGN_SUIT should point to the Vivado installation directly if you are using xilinx-mcs recipe in meta-xilinx-tools
209#XILINX_VIVADO_DESIGN_SUIT = "/proj/xbuilds/2018.3_daily_latest/installs/lin64/Vivado/2018.3"
210
211# INHERIT += "externalsrc"
212# PREFERRED_PROVIDER_virtual/kernel = "linux-xlnx-dev"
213# EXTERNALSRC:pn-linux-xlnx-dev = "${BASE}/sources/linux"
214# RM_WORK_EXCLUDE += "linux-xlnx-dev"
215
216# PREFERRED_PROVIDER_virtual/bootloader = "u-boot-xlnx-dev"
217# EXTERNALSRC:pn-u-boot-xlnx-dev = "${BASE}/sources/u-boot"
218# RM_WORK_EXCLUDE += "u-boot-xlnx-dev"
219
220#Add below lines to use runqemu for ZU+ machines
221PMU_FIRMWARE_DEPLOY_DIR ??= "${DEPLOY_DIR_IMAGE}"
222PMU_FIRMWARE_IMAGE_NAME ??= "pmu-firmware-${MACHINE}"
223
224# CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to
225# track the version of this file when it was generated. This can safely be ignored if
226# this doesn't mean anything to you.
227CONF_VERSION = "1"
228
229#Enable the below line to use pmu-rom.elf from a specific path
230#PMU_ROM = "/proj/yocto/pmu-rom/pmu-rom.elf"
diff --git a/meta-xilinx-bsp/conf/machine/include/README b/meta-xilinx-bsp/conf/machine/include/README
deleted file mode 100644
index 89a25faf..00000000
--- a/meta-xilinx-bsp/conf/machine/include/README
+++ /dev/null
@@ -1,34 +0,0 @@
1The files in this directory make up the infrastructure that defines
2a Xilinx FPGA based system.
3
4A machine.conf is expected to require the soc-<soc>.inc or
5soc-tune-include.inc file, followed by machine-xilinx-default.inc.
6Additionally, machine-xilinx-qemu.inc should be required if the
7machine supports QEMU. Each of the 'generic' machines include
8these files.
9
10Doing the above, will ensure that someone can use the machine.conf
11in a multiconf setting by simply adjusting DEFAULTTUNE and/or
12other basic parameters.
13
14soc-tune-include.inc - Load the correct tune file based on DEFAULTTUNE
15
16xilinx-microblaze.inc - Microblaze architecture settings, loaded by
17 soc-tune-include.inc
18
19soc-versal.inc - Set the defaults for Versal, includes soc-tune-include
20
21soc-zynq.inc - Set the defaults for Zynq, includes soc-tune-include
22
23soc-zynqmp.inc - Set the defaults for ZynqMP, includes soc-tune-include
24
25machine-xilinx-default - Set Xilinx FPGA wide defaults, all machines
26 should require this file. It defines correct
27 PREFERRED_PROVIDER for various components, as well as
28 other settings.
29
30machine-xilinx-qemu - Settings required for qemu-xilinx support.
31
32xilinx-board.inc - enabled BOARD and BOARD_VARIANT. This allows you to
33 use only generic machines, and simply set which BOARD
34 and optionally BOARD_VARIANT in the local.conf.
diff --git a/meta-xilinx-bsp/conf/machine/include/board/ultra96.inc b/meta-xilinx-bsp/conf/machine/include/board/ultra96.inc
index d028336a..0ff5e3d5 100644
--- a/meta-xilinx-bsp/conf/machine/include/board/ultra96.inc
+++ b/meta-xilinx-bsp/conf/machine/include/board/ultra96.inc
@@ -3,5 +3,5 @@ PACKAGE_ARCH:pn-linux-xlnx:ultra96 = "${BOARDVARIANT_ARCH}"
3KERNEL_DEVICETREE:ultra96 = "xilinx/zynqmp-zcu100-revC.dtb" 3KERNEL_DEVICETREE:ultra96 = "xilinx/zynqmp-zcu100-revC.dtb"
4 4
5# Enable bluetooth and wifi module 5# Enable bluetooth and wifi module
6MACHINE_ESSENTIAL_EXTRA_RDEPENDS:append:ultra96 = " linux-firmware-wl18xx linux-firmware-ti-bt-wl180x" 6#MACHINE_ESSENTIAL_EXTRA_RDEPENDS:append:ultra96 = " linux-firmware-wl18xx linux-firmware-ti-bt-wl181x"
7 7
diff --git a/meta-xilinx-bsp/conf/machine/include/machine-xilinx-default.inc b/meta-xilinx-bsp/conf/machine/include/machine-xilinx-default.inc
deleted file mode 100644
index d8b1e2d9..00000000
--- a/meta-xilinx-bsp/conf/machine/include/machine-xilinx-default.inc
+++ /dev/null
@@ -1,71 +0,0 @@
1# Default Xilinx BSP Machine settings
2
3MACHINE_FEATURES_BACKFILL_CONSIDERED += "rtc"
4
5# File System Configuration
6IMAGE_FSTYPES ?= "tar.gz cpio cpio.gz.u-boot"
7
8# Kernel Configuration
9PREFERRED_PROVIDER_virtual/kernel ??= "linux-xlnx"
10
11# U-Boot Configuration
12PREFERRED_PROVIDER_virtual/bootloader ??= "u-boot-xlnx"
13PREFERRED_PROVIDER_virtual/boot-bin ??= "${PREFERRED_PROVIDER_virtual/bootloader}"
14
15do_image_wic[depends] += "${@' '.join('%s:do_deploy' % r for r in (d.getVar('WIC_DEPENDS') or "").split())}"
16
17UBOOT_SUFFIX ?= "img"
18UBOOT_SUFFIX:microblaze ?= "bin"
19
20UBOOT_BINARY ?= "u-boot.${UBOOT_SUFFIX}"
21UBOOT_ELF ?= "u-boot"
22UBOOT_ELF:aarch64 ?= "u-boot.elf"
23
24#Hardware accelaration
25PREFERRED_PROVIDER_virtual/libgles1:mali400 = "libmali-xlnx"
26PREFERRED_PROVIDER_virtual/libgles2:mali400 = "libmali-xlnx"
27PREFERRED_PROVIDER_virtual/egl:mali400 = "libmali-xlnx"
28PREFERRED_PROVIDER_virtual/libgl:mali400 = "mesa-gl"
29PREFERRED_PROVIDER_virtual/mesa:mali400 = "mesa-gl"
30
31XSERVER ?= " \
32 xserver-xorg \
33 xf86-input-evdev \
34 xf86-input-mouse \
35 xf86-input-keyboard \
36 xf86-video-fbdev \
37 ${XSERVER_EXT} \
38 "
39
40IMAGE_BOOT_FILES ?= "${@get_default_image_boot_files(d)}"
41
42def get_default_image_boot_files(d):
43 files = []
44
45 # kernel images
46 kerneltypes = set((d.getVar("KERNEL_IMAGETYPE") or "").split())
47 kerneltypes |= set((d.getVar("KERNEL_IMAGETYPES") or "").split())
48 for i in kerneltypes:
49 files.append(i)
50
51 # u-boot image
52 if d.getVar("UBOOT_BINARY"):
53 files.append(d.getVar("UBOOT_BINARY"))
54
55 # device trees (device-tree only), these are first as they are likely desired over the kernel ones
56 if "device-tree" in (d.getVar("MACHINE_ESSENTIAL_EXTRA_RDEPENDS") or ""):
57 files.append("devicetree/*.dtb")
58
59
60 # device trees (kernel only)
61 if d.getVar("KERNEL_DEVICETREE"):
62 dtbs = d.getVar("KERNEL_DEVICETREE").split(" ")
63 dtbs = [os.path.basename(d) for d in dtbs]
64 for dtb in dtbs:
65 files.append(dtb)
66
67 return " ".join(files)
68
69XSERVER_EXT ?= ""
70
71FPGA_MNGR_RECONFIG_ENABLE ?= "1"
diff --git a/meta-xilinx-bsp/conf/machine/include/machine-xilinx-qemu.inc b/meta-xilinx-bsp/conf/machine/include/machine-xilinx-qemu.inc
deleted file mode 100644
index c2093ca6..00000000
--- a/meta-xilinx-bsp/conf/machine/include/machine-xilinx-qemu.inc
+++ /dev/null
@@ -1,55 +0,0 @@
1# This include is used to setup default QEMU and qemuboot config for meta-xilinx
2# machines.
3
4# Use the xilinx specific version for these users
5IMAGE_CLASSES += "qemuboot-xilinx"
6
7# depend on qemu-helper-native, which will depend on QEMU
8EXTRA_IMAGEDEPENDS += "qemu-helper-native"
9
10PREFERRED_PROVIDER_qemu-helper-native = "qemu-xilinx-helper-native"
11PREFERRED_PROVIDER_qemu = "qemu-xilinx"
12PREFERRED_PROVIDER_qemu-native = "qemu-xilinx-native"
13PREFERRED_PROVIDER_nativesdk-qemu = "nativesdk-qemu-xilinx"
14
15def qemu_default_dtb(d):
16 if d.getVar("IMAGE_BOOT_FILES", True):
17 dtbs = d.getVar("IMAGE_BOOT_FILES", True).split(" ")
18 # IMAGE_BOOT_FILES has extra renaming info in the format '<source>;<target>'
19 # Note: Wildcard sources work here only because runqemu expands them at run time
20 dtbs = [f.split(";")[0] for f in dtbs]
21 dtbs = [f for f in dtbs if f.endswith(".dtb")]
22 if len(dtbs) != 0:
23 return dtbs[0]
24 return ""
25
26def qemu_default_serial(d):
27 if d.getVar("SERIAL_CONSOLES", True):
28 first_console = d.getVar("SERIAL_CONSOLES", True).split(" ")[0]
29 speed, console = first_console.split(";", 1)
30 # zynqmp uses earlycon and stdout (in dtb)
31 if "zynqmp" in d.getVar("MACHINEOVERRIDES", True).split(":"):
32 return ""
33 return "console=%s,%s earlyprintk" % (console, speed)
34 return ""
35
36def qemu_target_binary(d):
37 ta = d.getVar("TARGET_ARCH", True)
38 if ta == "microblazeeb":
39 ta = "microblaze"
40 elif ta == "arm":
41 ta = "aarch64"
42 return "qemu-system-%s" % ta
43
44def qemu_zynqmp_unhalt(d, multiarch):
45 if multiarch:
46 return "-global xlnx,zynqmp-boot.cpu-num=0 -global xlnx,zynqmp-boot.use-pmufw=true"
47 return "-device loader,addr=0xfd1a0104,data=0x8000000e,data-len=4 -device loader,addr=0xfd1a0104,data=0x8000000e,data-len=4"
48
49# For qemuboot, default setup across all machines in meta-xilinx
50QB_SYSTEM_NAME:aarch64 ?= "${@qemu_target_binary(d)}-multiarch"
51QB_SYSTEM_NAME ?= "${@qemu_target_binary(d)}"
52QB_DEFAULT_FSTYPE ?= "cpio"
53QB_DTB ?= "${@qemu_default_dtb(d)}"
54QB_KERNEL_CMDLINE_APPEND ?= "${@qemu_default_serial(d)}"
55
diff --git a/meta-xilinx-bsp/conf/machine/include/soc-tune-include.inc b/meta-xilinx-bsp/conf/machine/include/soc-tune-include.inc
deleted file mode 100644
index 539879d4..00000000
--- a/meta-xilinx-bsp/conf/machine/include/soc-tune-include.inc
+++ /dev/null
@@ -1,16 +0,0 @@
1DEFAULTTUNE ??= "armv8a"
2
3# Unfortunately various tunefiles don't include each other, so create
4# a list of things to require based on the DEFAULTTUNE setting.
5TUNEFILE[cortexr5] = "conf/machine/include/arm/armv7r/tune-cortexr5.inc"
6TUNEFILE[cortexa9thf-neon] = "conf/machine/include/arm/armv7a/tune-cortexa9.inc"
7TUNEFILE[armv8a] = "conf/machine/include/arm/arch-armv8a.inc"
8TUNEFILE[cortexa53] = "conf/machine/include/arm/armv8a/tune-cortexa53.inc"
9TUNEFILE[cortexa72] = "conf/machine/include/arm/armv8a/tune-cortexa72.inc"
10TUNEFILE[cortexa72-cortexa53] = "conf/machine/include/arm/armv8a/tune-cortexa72-cortexa53.inc"
11TUNEFILE[microblaze] = "conf/machine/include/xilinx-microblaze.inc"
12
13# Default to arch-armv8a.inc
14TUNEFILE = "${@ d.getVarFlag('TUNEFILE', d.getVar('DEFAULTTUNE')) or 'conf/machine/include/arm/arch-armv8a.inc'}"
15
16require ${TUNEFILE}
diff --git a/meta-xilinx-bsp/conf/machine/include/soc-versal.inc b/meta-xilinx-bsp/conf/machine/include/soc-versal.inc
deleted file mode 100644
index f2a033ad..00000000
--- a/meta-xilinx-bsp/conf/machine/include/soc-versal.inc
+++ /dev/null
@@ -1,35 +0,0 @@
1DEFAULTTUNE ?= "cortexa72-cortexa53"
2SOC_FAMILY ?= "versal"
3
4# Available SOC_VARIANT's for versal:
5# "prime" - Versal deafult Prime Devices
6# "premium" - Versal Premium Devices
7# "hbm" - Versal HMB Devices
8# "ai-core" - Versal AI-core Devices
9# "ai-edge" - Versal AI-Edge Devices
10
11SOC_VARIANT ?= "prime"
12
13require xilinx-soc-family.inc
14require soc-tune-include.inc
15
16# Linux Configuration
17KERNEL_IMAGETYPE ?= "Image"
18
19WIC_DEPENDS ?= "virtual/kernel virtual/bootloader virtual/boot-bin virtual/arm-trusted-firmware"
20
21UBOOT_ELF ?= "u-boot.elf"
22
23# Default, if multiconfig is off, call plm/psm-firmware directly, otherwise call the versal-fw multiconfig version
24# The Linux compatible plm/psm-firmware though requires meta-xilinx-tools
25PLM_DEPENDS ?= "${@bb.utils.contains('BBMULTICONFIG', 'versal-fw', '', 'plm-firmware:do_deploy', d)}"
26PLM_MCDEPENDS ?= "${@bb.utils.contains('BBMULTICONFIG', 'versal-fw', 'mc::versal-fw:plm-firmware:do_deploy', '', d)}"
27PLM_DEPLOY_DIR ?= "${@bb.utils.contains('BBMULTICONFIG', 'versal-fw', '${TOPDIR}/tmp-microblaze-versal-fw/deploy/images/${MACHINE}', '${DEPLOY_DIR_IMAGE}', d)}"
28PLM_DEPLOY_DIR[vardepsexclude] += "TOPDIR"
29PLM_IMAGE_NAME ?= "${@bb.utils.contains('BBMULTICONFIG', 'versal-fw', 'plm-versal-mb', 'plm-${MACHINE}', d)}"
30
31PSM_DEPENDS ?= "${@bb.utils.contains('BBMULTICONFIG', 'versal-fw', '', 'psm-firmware:do_deploy', d)}"
32PSM_MCDEPENDS ?= "${@bb.utils.contains('BBMULTICONFIG', 'versal-fw', 'mc::versal-fw:psm-firmware:do_deploy', '', d)}"
33PSM_FIRMWARE_DEPLOY_DIR ?= "${@bb.utils.contains('BBMULTICONFIG', 'versal-fw', '${TOPDIR}/tmp-microblaze-versal-fw/deploy/images/${MACHINE}', '${DEPLOY_DIR_IMAGE}', d)}"
34PSM_DEPLOY_DIR[vardepsexclude] += "TOPDIR"
35PSM_FIRMWARE_IMAGE_NAME ?= "${@bb.utils.contains('BBMULTICONFIG', 'versal-fw', 'psm-firmware-versal-mb', 'psm-firmware-${MACHINE}', d)}"
diff --git a/meta-xilinx-bsp/conf/machine/include/soc-zynq.inc b/meta-xilinx-bsp/conf/machine/include/soc-zynq.inc
deleted file mode 100644
index 88d48a92..00000000
--- a/meta-xilinx-bsp/conf/machine/include/soc-zynq.inc
+++ /dev/null
@@ -1,32 +0,0 @@
1DEFAULTTUNE ?= "cortexa9thf-neon"
2SOC_FAMILY ?= "zynq"
3
4# Available SOC_VARIANT's for zynq:
5# 7zs - Zynq-7000 Single A9 Core
6# 7z - Zynq-7000 Dual A9 Core
7
8SOC_VARIANT ?= "7z"
9
10require xilinx-soc-family.inc
11require soc-tune-include.inc
12
13# Linux Configuration
14KERNEL_IMAGETYPE ?= "uImage"
15KERNEL_IMAGETYPES += "zImage"
16
17# Set default load address.
18# Override with KERNEL_EXTRA_ARGS_<board> += "..." in machine file if required
19KERNEL_EXTRA_ARGS:zynq += "UIMAGE_LOADADDR=0x8000"
20
21# WIC Specific dependencies
22WIC_DEPENDS ?= "virtual/kernel virtual/bootloader virtual/boot-bin"
23
24UBOOT_ELF ?= "u-boot.elf"
25
26# Default, if multiconfig is off, the fsbl is in the regular deploydir, otherwise
27# it is located under a multiconfig specific deploydir
28FSBL_DEPENDS ?= "${@bb.utils.contains('BBMULTICONFIG', 'fsbl-fw', '', 'fsbl-firmware:do_deploy', d)}"
29FSBL_MCDEPENDS ?= "${@bb.utils.contains('BBMULTICONFIG', 'fsbl-fw', 'mc::fsbl-fw:fsbl-firmware:do_deploy', '', d)}"
30FSBL_DEPLOY_DIR ?= "${@bb.utils.contains('BBMULTICONFIG', 'fsbl-fw', '${TOPDIR}/tmp-fsbl-fw/deploy/images/${MACHINE}', '${DEPLOY_DIR_IMAGE}', d)}"
31FSBL_DEPLOY_DIR[vardepsexclude] += "TOPDIR"
32FSBL_IMAGE_NAME ?= "fsbl-${MACHINE}"
diff --git a/meta-xilinx-bsp/conf/machine/include/soc-zynqmp.inc b/meta-xilinx-bsp/conf/machine/include/soc-zynqmp.inc
deleted file mode 100644
index e32fd617..00000000
--- a/meta-xilinx-bsp/conf/machine/include/soc-zynqmp.inc
+++ /dev/null
@@ -1,51 +0,0 @@
1DEFAULTTUNE ?= "cortexa72-cortexa53"
2SOC_FAMILY ?= "zynqmp"
3
4# Available SOC_VARIANT's for zynqmp:
5# "cg" - Zynq UltraScale+ CG Devices
6# "eg" - Zynq UltraScale+ EG Devices
7# "ev" - Zynq UltraScale+ EV Devices
8# "dr" - Zynq UltraScale+ DR Devices
9
10SOC_VARIANT ?= "eg"
11
12require xilinx-soc-family.inc
13
14GRAPHICSOVERRIDES = ""
15GRAPHICSOVERRIDES:zynqmp-eg = "mali400:"
16GRAPHICSOVERRIDES:zynqmp-ev = "mali400:vcu:"
17
18MACHINEOVERRIDES =. "${GRAPHICSOVERRIDES}"
19
20require soc-tune-include.inc
21
22# Linux Configuration
23KERNEL_IMAGETYPE ?= "Image"
24
25# Support multilib on zynqmp
26DEFAULTTUNE:virtclass-multilib-lib32 ?= "armv7vethf-neon-vfpv4"
27
28WIC_DEPENDS ?= "virtual/kernel virtual/bootloader virtual/boot-bin virtual/arm-trusted-firmware"
29
30UBOOT_SUFFIX ?= "bin"
31
32XSERVER_EXT:zynqmp ?= "xf86-video-armsoc"
33
34# Default PMU ROM
35PMU_ROM ?= "${DEPLOY_DIR_IMAGE}/pmu-rom.elf"
36
37# Default, if multiconfig is off, call pmu-firmware directly, otherwise call the zynqmp-pmufw multiconfig version
38# The Linux compatible pmu-firmware though requires meta-xilinx-tools
39PMU_DEPENDS ?= "${@bb.utils.contains('BBMULTICONFIG', 'zynqmp-pmufw', '', 'pmu-firmware:do_deploy', d)}"
40PMU_MCDEPENDS ?= "${@bb.utils.contains('BBMULTICONFIG', 'zynqmp-pmufw', 'mc::zynqmp-pmufw:pmu-firmware:do_deploy', '', d)}"
41PMU_FIRMWARE_DEPLOY_DIR ?= "${@bb.utils.contains('BBMULTICONFIG', 'zynqmp-pmufw', '${TOPDIR}/tmp-microblaze-zynqmp-pmufw/deploy/images/${MACHINE}', '${DEPLOY_DIR_IMAGE}', d)}"
42PMU_FIRMWARE_DEPLOY_DIR[vardepsexclude] += "TOPDIR"
43PMU_FIRMWARE_IMAGE_NAME ?= "${@bb.utils.contains('BBMULTICONFIG', 'zynqmp-pmufw', 'pmu-firmware-zynqmp-pmu', 'pmu-firmware-${MACHINE}', d)}"
44
45# Default, if multiconfig is off, the fsbl is in the regular deploydir, otherwise
46# it is located under a multiconfig specific deploydir
47FSBL_DEPENDS ?= "${@bb.utils.contains('BBMULTICONFIG', 'fsbl-fw', '', 'fsbl-firmware:do_deploy', d)}"
48FSBL_MCDEPENDS ?= "${@bb.utils.contains('BBMULTICONFIG', 'fsbl-fw', 'mc::fsbl-fw:fsbl-firmware:do_deploy', '', d)}"
49FSBL_DEPLOY_DIR ?= "${@bb.utils.contains('BBMULTICONFIG', 'fsbl-fw', '${TOPDIR}/tmp-fsbl-fw/deploy/images/${MACHINE}', '${DEPLOY_DIR_IMAGE}', d)}"
50FSBL_DEPLOY_DIR[vardepsexclude] += "TOPDIR"
51FSBL_IMAGE_NAME ?= "fsbl-${MACHINE}"
diff --git a/meta-xilinx-bsp/conf/machine/include/xilinx-board.inc b/meta-xilinx-bsp/conf/machine/include/xilinx-board.inc
deleted file mode 100644
index 18b04742..00000000
--- a/meta-xilinx-bsp/conf/machine/include/xilinx-board.inc
+++ /dev/null
@@ -1,12 +0,0 @@
1BOARD ??= ""
2BOARD_VARIANT ??= ""
3
4MACHINEOVERRIDES .= "${@['', ':${BOARD}']['${BOARD}' != '']}"
5MACHINEOVERRIDES .= "${@['', ':${BOARD}-${BOARD_VARIANT}']['${BOARD_VARIANT}' != '']}"
6
7
8BOARD_ARCH ?= "${@['${BOARD}', '${MACHINE_ARCH}'][d.getVar('BOARD')=='']}"
9BOARDVARIANT_ARCH ?= "${@['${BOARD}-${BOARD_VARIANT}','${BOARD_ARCH}'][d.getVar('BOARD_VARIANT')=='']}"
10
11PACKAGE_EXTRA_ARCHS:append = "${@['', ' ${BOARD_ARCH}'][d.getVar('BOARDVARIANT_ARCH') != d.getVar('MACHINE_ARCH')]}"
12PACKAGE_EXTRA_ARCHS:append = "${@['', ' ${BOARDVARIANT_ARCH}'][d.getVar('BOARDVARIANT_ARCH') != d.getVar('BOARD_ARCH')]}"
diff --git a/meta-xilinx-bsp/conf/machine/include/xilinx-microblaze.inc b/meta-xilinx-bsp/conf/machine/include/xilinx-microblaze.inc
deleted file mode 100644
index 76d77cd1..00000000
--- a/meta-xilinx-bsp/conf/machine/include/xilinx-microblaze.inc
+++ /dev/null
@@ -1,17 +0,0 @@
1# To avoid the require overriding previous defaults we use the override to make this the default
2TUNE_FEATURES_save := "${TUNE_FEATURES:tune-microblaze}"
3
4require conf/machine/include/microblaze/tune-microblaze.inc
5
6# Reset the default value back to what it was previously set to...
7TUNE_FEATURES:tune-microblaze := "${TUNE_FEATURES_save}"
8
9# Various microblaze architecture defaults
10
11# microblaze does not get on with pie for reasons not looked into as yet
12GCCPIE:microblaze = ""
13GLIBCPIE:microblaze = ""
14SECURITY_CFLAGS:microblaze = ""
15SECURITY_LDFLAGS:microblaze = ""
16# Microblaze does not support gnu hash style
17LINKER_HASH_STYLE:microblaze = "sysv"
diff --git a/meta-xilinx-bsp/conf/machine/include/xilinx-soc-family.inc b/meta-xilinx-bsp/conf/machine/include/xilinx-soc-family.inc
deleted file mode 100644
index dd54f5c6..00000000
--- a/meta-xilinx-bsp/conf/machine/include/xilinx-soc-family.inc
+++ /dev/null
@@ -1,10 +0,0 @@
1SOC_VARIANT ??= ""
2MACHINEOVERRIDES =. "${@['', '${SOC_FAMILY}-${SOC_VARIANT}:']['${SOC_VARIANT}' != '']}"
3
4require conf/machine/include/soc-family.inc
5
6SOC_FAMILY_ARCH ?= "${SOC_FAMILY}"
7SOC_VARIANT_ARCH ?= "${@['${SOC_FAMILY}-${SOC_VARIANT}','${SOC_FAMILY}'][d.getVar('SOC_VARIANT')=='']}"
8
9PACKAGE_EXTRA_ARCHS:append = " ${SOC_FAMILY_ARCH}"
10PACKAGE_EXTRA_ARCHS:append = "${@['', ' ${SOC_VARIANT_ARCH}'][d.getVar('SOC_VARIANT_ARCH') != d.getVar('SOC_FAMILY_ARCH')]}"
diff --git a/meta-xilinx-bsp/conf/machine/microblaze-generic.conf b/meta-xilinx-bsp/conf/machine/microblaze-generic.conf
deleted file mode 100644
index 6dfa9997..00000000
--- a/meta-xilinx-bsp/conf/machine/microblaze-generic.conf
+++ /dev/null
@@ -1,32 +0,0 @@
1#@TYPE: Machine
2#@NAME: microblaze-generic
3#@DESCRIPTION: Generic microblaze defaults to little-endian v11.0 barrel-shift pattern-compare reorder divide-hard multiple-high support
4
5# Set the default for a modern full feature microblaze...
6TUNE_FEATURES:tune-microblaze ?= "microblaze v11.0 barrel-shift pattern-compare reorder divide-hard multiply-high"
7DEFAULTTUNE ?= "microblaze"
8
9require conf/machine/include/soc-tune-include.inc
10require conf/machine/include/machine-xilinx-default.inc
11require conf/machine/include/machine-xilinx-qemu.inc
12require conf/machine/include/xilinx-board.inc
13
14# The default MACHINE_ARCH is dynmic for microblaze, since the architecture is not fixed
15# Based on core bitbake.conf
16DEF_MACHINE_ARCH = "${@[d.getVar('TUNE_PKGARCH'), d.getVar('MACHINE')][bool(d.getVar('MACHINE'))].replace('-', '_')}"
17# Enable a dynamic machine_arch
18MB_MACHINE_ARCH = "${@[d.getVar('TUNE_PKGARCH'), d.getVar('TUNE_PKGARCH') + '-generic'][bool(d.getVar('MACHINE'))].replace('-', '_')}"
19
20MACHINE_ARCH = "${@['${MB_MACHINE_ARCH}', '${DEF_MACHINE_ARCH}']['microblaze-generic' != "${MACHINE}"]}"
21
22MACHINE_FEATURES = ""
23
24KERNEL_IMAGETYPE = "linux.bin.ub"
25KERNEL_IMAGETYPES = ""
26
27SERIAL_CONSOLES ?= "115200;ttyS0"
28
29EXTRA_IMAGEDEPENDS += "libyaml-native python3-cython-native python3-pyyaml-native"
30
31UBOOT_MACHINE ?= "microblaze-generic_defconfig"
32UBOOT_INITIAL_ENV = ""
diff --git a/meta-xilinx-bsp/conf/machine/qemu-zynq7.conf b/meta-xilinx-bsp/conf/machine/qemu-zynq7.conf
index 5f25600f..8697293d 100644
--- a/meta-xilinx-bsp/conf/machine/qemu-zynq7.conf
+++ b/meta-xilinx-bsp/conf/machine/qemu-zynq7.conf
@@ -20,12 +20,12 @@ FILESOVERRIDES:append:pn-init-ifupdown = ":qemuarm"
20 20
21QB_MEM = "-m 1024" 21QB_MEM = "-m 1024"
22QB_NETWORK_DEVICE = "-net nic,netdev=eth0 -netdev user,id=eth0,tftp=/tftpboot -net nic" 22QB_NETWORK_DEVICE = "-net nic,netdev=eth0 -netdev user,id=eth0,tftp=/tftpboot -net nic"
23QB_DEFAULT_KERNEL_qemuboot-xilinx = "zImage" 23QB_DEFAULT_KERNEL:qemuboot-xilinx = "zImage"
24 24
25QB_SYSTEM_NAME ?= "${@qemu_target_binary(d)}" 25QB_SYSTEM_NAME ?= "${@qemu_target_binary(d)}"
26QB_DEFAULT_FSTYPE = "cpio.gz.u-boot" 26QB_DEFAULT_FSTYPE = "cpio.gz.u-boot"
27QB_DTB = "system.dtb" 27QB_DTB = "system.dtb"
28QB_ROOTFS_OPT_qemuboot-xilinx = " -drive if=sd,index=1,file=@ROOTFS@,format=raw" 28QB_ROOTFS_OPT:qemuboot-xilinx = " -drive if=sd,index=1,file=@ROOTFS@,format=raw"
29 29
30# Replicate BootROM like behaviour, having loaded SPL and PMU(ROM+FW) 30# Replicate BootROM like behaviour, having loaded SPL and PMU(ROM+FW)
31QB_OPT_APPEND = " \ 31QB_OPT_APPEND = " \
diff --git a/meta-xilinx-bsp/conf/machine/vc-p-a2197-00-versal.conf b/meta-xilinx-bsp/conf/machine/vc-p-a2197-00-versal.conf
index 558cc85e..8603098e 100644
--- a/meta-xilinx-bsp/conf/machine/vc-p-a2197-00-versal.conf
+++ b/meta-xilinx-bsp/conf/machine/vc-p-a2197-00-versal.conf
@@ -43,14 +43,14 @@ QB_NETWORK_DEVICE = ""
43QB_KERNEL_CMDLINE_APPEND ?= "" 43QB_KERNEL_CMDLINE_APPEND ?= ""
44QB_NET = "none" 44QB_NET = "none"
45 45
46QB_DEFAULT_FSTYPE_qemuboot-xilinx = "wic.qemu-sd" 46QB_DEFAULT_FSTYPE:qemuboot-xilinx = "wic.qemu-sd"
47QB_OPT_APPEND:append_qemuboot-xilinx = " -boot mode=5" 47QB_OPT_APPEND:append:qemuboot-xilinx = " -boot mode=5"
48QB_ROOTFS_OPT_qemuboot-xilinx = " -drive if=sd,index=1,file=@ROOTFS@,format=raw" 48QB_ROOTFS_OPT:qemuboot-xilinx = " -drive if=sd,index=1,file=@ROOTFS@,format=raw"
49 49
50# Use booti 80000 6000000 4000000 to launch 50# Use booti 80000 6000000 4000000 to launch
51QB_OPT_APPEND ?= " -serial null -serial null -serial mon:stdio -display none" 51QB_OPT_APPEND ?= " -serial null -serial null -serial mon:stdio -display none"
52 52
53QB_OPT_APPEND:append_qemuboot-xilinx = " \ 53QB_OPT_APPEND:append:qemuboot-xilinx = " \
54 -hw-dtb ${DEPLOY_DIR_IMAGE}/qemu-hw-devicetrees/multiarch/board-versal-ps-vc-p-a2197-00.dtb \ 54 -hw-dtb ${DEPLOY_DIR_IMAGE}/qemu-hw-devicetrees/multiarch/board-versal-ps-vc-p-a2197-00.dtb \
55 -display none \ 55 -display none \
56 -net nic -net user,tftp=${DEPLOY_DIR_IMAGE} \ 56 -net nic -net user,tftp=${DEPLOY_DIR_IMAGE} \
@@ -68,5 +68,5 @@ QB_PLM_OPT = " \
68 -hw-dtb ${DEPLOY_DIR_IMAGE}/qemu-hw-devicetrees/multiarch/board-versal-pmc-vc-p-a2197-00.dtb \ 68 -hw-dtb ${DEPLOY_DIR_IMAGE}/qemu-hw-devicetrees/multiarch/board-versal-pmc-vc-p-a2197-00.dtb \
69 -display none \ 69 -display none \
70 " 70 "
71QB_OPT_APPEND:append_qemuboot-xilinx = " -plm-args '${QB_PLM_OPT}'" 71QB_OPT_APPEND:append:qemuboot-xilinx = " -plm-args '${QB_PLM_OPT}'"
72 72
diff --git a/meta-xilinx-bsp/conf/machine/vck190-versal.conf b/meta-xilinx-bsp/conf/machine/vck190-versal.conf
index 62c9bc04..054bff88 100644
--- a/meta-xilinx-bsp/conf/machine/vck190-versal.conf
+++ b/meta-xilinx-bsp/conf/machine/vck190-versal.conf
@@ -44,14 +44,14 @@ QB_NETWORK_DEVICE = ""
44QB_KERNEL_CMDLINE_APPEND ?= "" 44QB_KERNEL_CMDLINE_APPEND ?= ""
45QB_NET = "none" 45QB_NET = "none"
46 46
47QB_DEFAULT_FSTYPE_qemuboot-xilinx = "wic.qemu-sd" 47QB_DEFAULT_FSTYPE:qemuboot-xilinx = "wic.qemu-sd"
48QB_OPT_APPEND:append_qemuboot-xilinx = " -boot mode=5" 48QB_OPT_APPEND:append:qemuboot-xilinx = " -boot mode=5"
49QB_ROOTFS_OPT_qemuboot-xilinx = " -drive if=sd,index=1,file=@ROOTFS@,format=raw" 49QB_ROOTFS_OPT:qemuboot-xilinx = " -drive if=sd,index=1,file=@ROOTFS@,format=raw"
50 50
51# Use booti 80000 6000000 4000000 to launch 51# Use booti 80000 6000000 4000000 to launch
52QB_OPT_APPEND ?= " -serial null -serial null -serial mon:stdio -display none" 52QB_OPT_APPEND ?= " -serial null -serial null -serial mon:stdio -display none"
53 53
54QB_OPT_APPEND:append_qemuboot-xilinx = " \ 54QB_OPT_APPEND:append:qemuboot-xilinx = " \
55 -hw-dtb ${DEPLOY_DIR_IMAGE}/qemu-hw-devicetrees/multiarch/board-versal-ps-vc-p-a2197-00.dtb \ 55 -hw-dtb ${DEPLOY_DIR_IMAGE}/qemu-hw-devicetrees/multiarch/board-versal-ps-vc-p-a2197-00.dtb \
56 -display none \ 56 -display none \
57 -net nic -net user,tftp=${DEPLOY_DIR_IMAGE} \ 57 -net nic -net user,tftp=${DEPLOY_DIR_IMAGE} \
@@ -70,4 +70,4 @@ QB_PLM_OPT = " \
70 -hw-dtb ${DEPLOY_DIR_IMAGE}/qemu-hw-devicetrees/multiarch/board-versal-pmc-vc-p-a2197-00.dtb \ 70 -hw-dtb ${DEPLOY_DIR_IMAGE}/qemu-hw-devicetrees/multiarch/board-versal-pmc-vc-p-a2197-00.dtb \
71 -display none \ 71 -display none \
72 " 72 "
73QB_OPT_APPEND:append_qemuboot-xilinx = " -plm-args '${QB_PLM_OPT}'" 73QB_OPT_APPEND:append:qemuboot-xilinx = " -plm-args '${QB_PLM_OPT}'"
diff --git a/meta-xilinx-bsp/conf/machine/versal-generic.conf b/meta-xilinx-bsp/conf/machine/versal-generic.conf
deleted file mode 100644
index 99dc140d..00000000
--- a/meta-xilinx-bsp/conf/machine/versal-generic.conf
+++ /dev/null
@@ -1,86 +0,0 @@
1#@TYPE: Machine
2#@NAME: Generic versal
3#@DESCRIPTION: versal devices
4
5require conf/machine/include/soc-versal.inc
6require conf/machine/include/machine-xilinx-default.inc
7require conf/machine/include/machine-xilinx-qemu.inc
8require conf/machine/include/xilinx-board.inc
9
10MACHINE_FEATURES += "rtc ext2 ext3 vfat usbhost"
11
12EXTRA_IMAGEDEPENDS += "libyaml-native python3-cython-native python3-pyyaml-native"
13
14UBOOT_MACHINE ?= "xilinx_versal_virt_defconfig"
15
16SERIAL_CONSOLES ?= "115200;ttyAMA0"
17
18MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "device-tree"
19
20HDF_MACHINE = "vck190-versal"
21
22# Default SD image build onfiguration, use qemu-sd to pad
23IMAGE_CLASSES += "image-types-xilinx-qemu"
24IMAGE_FSTYPES += "wic.qemu-sd"
25WKS_FILES ?= "sdimage-bootpart.wks"
26
27EXTRA_IMAGEDEPENDS += " \
28 arm-trusted-firmware \
29 virtual/boot-bin \
30 virtual/bootloader \
31 virtual/psm-firmware \
32 virtual/plm \
33 u-boot-zynq-scr \
34 qemu-devicetrees \
35 virtual/cdo \
36"
37
38IMAGE_BOOT_FILES += " \
39 boot.bin \
40 ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/dtb', 'device-tree', 'system.dtb', '', d)} \
41 Image \
42 boot.scr \
43"
44
45
46# This machine has a QEMU model, runqemu setup:
47QB_MEM = "-m 8G"
48QB_DEFAULT_KERNEL = "none"
49QB_NETWORK_DEVICE = ""
50QB_KERNEL_CMDLINE_APPEND ?= ""
51QB_NET = "none"
52
53QB_DEFAULT_FSTYPE_qemuboot-xilinx = "wic.qemu-sd"
54QB_OPT_APPEND:append_qemuboot-xilinx = " -boot mode=5"
55QB_ROOTFS_OPT_qemuboot-xilinx = " -drive if=sd,index=1,file=@ROOTFS@,format=raw"
56
57# Use booti 80000 6000000 4000000 to launch
58QB_OPT_APPEND ?= " -serial null -serial null -serial mon:stdio -display none"
59
60QEMU_HW_DTB_PATH = "${DEPLOY_DIR_IMAGE}/qemu-hw-devicetrees/multiarch"
61QEMU_HW_DTB_PS ?="${QEMU_HW_DTB_PATH}/board-versal-ps-vck190.dtb"
62QEMU_HW_DTB_PMC ?="${QEMU_HW_DTB_PATH}/board-versal-pmc-vc-p-a2197-00.dtb"
63
64QEMU_HW_DTB_PS_vp1202-versal = "${QEMU_HW_DTB_PATH}/board-versal-vp1202-ps-virt.dtb"
65QEMU_HW_DTB_PMC_vp1202-versal = "${QEMU_HW_DTB_PATH}/board-versal-vp1202-pmc-virt.dtb"
66
67QB_OPT_APPEND:append_qemuboot-xilinx = " \
68 -hw-dtb ${QEMU_HW_DTB_PS} \
69 -display none \
70 -net nic -net user,tftp=${DEPLOY_DIR_IMAGE} \
71 "
72
73# PLM instance args
74QB_PLM_OPT = " \
75 -M microblaze-fdt \
76 -device loader,file=${DEPLOY_DIR_IMAGE}/BOOT-${MACHINE}_bh.bin,addr=0xF201E000,force-raw \
77 -device loader,addr=0xf0000000,data=0xba020004,data-len=4 \
78 -device loader,addr=0xf0000004,data=0xb800fffc,data-len=4 \
79 -device loader,file=${DEPLOY_DIR_IMAGE}/pmc_cdo.bin,addr=0xf2000000,force-raw \
80 -device loader,file=${DEPLOY_DIR_IMAGE}/plm-${MACHINE}.elf,cpu-num=1 \
81 -device loader,addr=0xF1110624,data=0x0,data-len=4 \
82 -device loader,addr=0xF1110620,data=0x1,data-len=4 \
83 -hw-dtb ${QEMU_HW_DTB_PMC} \
84 -display none \
85 "
86QB_OPT_APPEND:append_qemuboot-xilinx = " -plm-args '${QB_PLM_OPT}'"
diff --git a/meta-xilinx-bsp/conf/machine/vmk180-versal.conf b/meta-xilinx-bsp/conf/machine/vmk180-versal.conf
index 39801e22..1996a36e 100644
--- a/meta-xilinx-bsp/conf/machine/vmk180-versal.conf
+++ b/meta-xilinx-bsp/conf/machine/vmk180-versal.conf
@@ -41,14 +41,14 @@ QB_NETWORK_DEVICE = ""
41QB_KERNEL_CMDLINE_APPEND ?= "" 41QB_KERNEL_CMDLINE_APPEND ?= ""
42QB_NET = "none" 42QB_NET = "none"
43 43
44QB_DEFAULT_FSTYPE_qemuboot-xilinx = "wic.qemu-sd" 44QB_DEFAULT_FSTYPE:qemuboot-xilinx = "wic.qemu-sd"
45QB_OPT_APPEND:append_qemuboot-xilinx = " -boot mode=5" 45QB_OPT_APPEND:append:qemuboot-xilinx = " -boot mode=5"
46QB_ROOTFS_OPT_qemuboot-xilinx = " -drive if=sd,index=1,file=@ROOTFS@,format=raw" 46QB_ROOTFS_OPT:qemuboot-xilinx = " -drive if=sd,index=1,file=@ROOTFS@,format=raw"
47 47
48# Use booti 80000 6000000 4000000 to launch 48# Use booti 80000 6000000 4000000 to launch
49QB_OPT_APPEND ?= " -serial null -serial null -serial mon:stdio -display none" 49QB_OPT_APPEND ?= " -serial null -serial null -serial mon:stdio -display none"
50 50
51QB_OPT_APPEND:append_qemuboot-xilinx = " \ 51QB_OPT_APPEND:append:qemuboot-xilinx = " \
52 -hw-dtb ${DEPLOY_DIR_IMAGE}/qemu-hw-devicetrees/multiarch/board-versal-ps-vc-p-a2197-00.dtb \ 52 -hw-dtb ${DEPLOY_DIR_IMAGE}/qemu-hw-devicetrees/multiarch/board-versal-ps-vc-p-a2197-00.dtb \
53 -display none \ 53 -display none \
54 -net nic -net user,tftp=${DEPLOY_DIR_IMAGE} \ 54 -net nic -net user,tftp=${DEPLOY_DIR_IMAGE} \
@@ -67,4 +67,4 @@ QB_PLM_OPT = " \
67 -hw-dtb ${DEPLOY_DIR_IMAGE}/qemu-hw-devicetrees/multiarch/board-versal-pmc-vc-p-a2197-00.dtb \ 67 -hw-dtb ${DEPLOY_DIR_IMAGE}/qemu-hw-devicetrees/multiarch/board-versal-pmc-vc-p-a2197-00.dtb \
68 -display none \ 68 -display none \
69 " 69 "
70QB_OPT_APPEND:append_qemuboot-xilinx = " -plm-args '${QB_PLM_OPT}'" 70QB_OPT_APPEND:append:qemuboot-xilinx = " -plm-args '${QB_PLM_OPT}'"
diff --git a/meta-xilinx-bsp/conf/machine/zc702-zynq7.conf b/meta-xilinx-bsp/conf/machine/zc702-zynq7.conf
index 82d47cb4..224365fa 100644
--- a/meta-xilinx-bsp/conf/machine/zc702-zynq7.conf
+++ b/meta-xilinx-bsp/conf/machine/zc702-zynq7.conf
@@ -38,12 +38,12 @@ IMAGE_BOOT_FILES += " \
38 38
39QB_MEM = "-m 1024" 39QB_MEM = "-m 1024"
40QB_NETWORK_DEVICE = "-net nic,netdev=eth0 -netdev user,id=eth0,tftp=/tftpboot -net nic" 40QB_NETWORK_DEVICE = "-net nic,netdev=eth0 -netdev user,id=eth0,tftp=/tftpboot -net nic"
41QB_DEFAULT_KERNEL_qemuboot-xilinx = "zImage" 41QB_DEFAULT_KERNEL:qemuboot-xilinx = "zImage"
42 42
43QB_SYSTEM_NAME ?= "${@qemu_target_binary(d)}" 43QB_SYSTEM_NAME ?= "${@qemu_target_binary(d)}"
44QB_DEFAULT_FSTYPE = "cpio.gz.u-boot" 44QB_DEFAULT_FSTYPE = "cpio.gz.u-boot"
45QB_DTB = "system.dtb" 45QB_DTB = "system.dtb"
46QB_ROOTFS_OPT_qemuboot-xilinx = " -drive if=sd,index=1,file=@ROOTFS@,format=raw" 46QB_ROOTFS_OPT:qemuboot-xilinx = " -drive if=sd,index=1,file=@ROOTFS@,format=raw"
47 47
48# Replicate BootROM like behaviour, having loaded SPL and PMU(ROM+FW) 48# Replicate BootROM like behaviour, having loaded SPL and PMU(ROM+FW)
49QB_OPT_APPEND = " \ 49QB_OPT_APPEND = " \
diff --git a/meta-xilinx-bsp/conf/machine/zc706-zynq7.conf b/meta-xilinx-bsp/conf/machine/zc706-zynq7.conf
index b5268689..3a182217 100644
--- a/meta-xilinx-bsp/conf/machine/zc706-zynq7.conf
+++ b/meta-xilinx-bsp/conf/machine/zc706-zynq7.conf
@@ -38,12 +38,12 @@ IMAGE_BOOT_FILES += " \
38 38
39QB_MEM = "-m 1024" 39QB_MEM = "-m 1024"
40QB_NETWORK_DEVICE = "-net nic,netdev=eth0 -netdev user,id=eth0,tftp=/tftpboot -net nic" 40QB_NETWORK_DEVICE = "-net nic,netdev=eth0 -netdev user,id=eth0,tftp=/tftpboot -net nic"
41QB_DEFAULT_KERNEL_qemuboot-xilinx = "zImage" 41QB_DEFAULT_KERNEL:qemuboot-xilinx = "zImage"
42 42
43QB_SYSTEM_NAME ?= "${@qemu_target_binary(d)}" 43QB_SYSTEM_NAME ?= "${@qemu_target_binary(d)}"
44QB_DEFAULT_FSTYPE = "cpio.gz.u-boot" 44QB_DEFAULT_FSTYPE = "cpio.gz.u-boot"
45QB_DTB = "system.dtb" 45QB_DTB = "system.dtb"
46QB_ROOTFS_OPT_qemuboot-xilinx = " -drive if=sd,index=1,file=@ROOTFS@,format=raw" 46QB_ROOTFS_OPT:qemuboot-xilinx = " -drive if=sd,index=1,file=@ROOTFS@,format=raw"
47 47
48# Replicate BootROM like behaviour, having loaded SPL and PMU(ROM+FW) 48# Replicate BootROM like behaviour, having loaded SPL and PMU(ROM+FW)
49QB_OPT_APPEND = " \ 49QB_OPT_APPEND = " \
diff --git a/meta-xilinx-bsp/conf/machine/zcu102-zynqmp.conf b/meta-xilinx-bsp/conf/machine/zcu102-zynqmp.conf
index 57570531..89c997f1 100644
--- a/meta-xilinx-bsp/conf/machine/zcu102-zynqmp.conf
+++ b/meta-xilinx-bsp/conf/machine/zcu102-zynqmp.conf
@@ -42,7 +42,7 @@ QB_OPT_APPEND ?= "-nographic -serial mon:stdio -serial null"
42QB_NETWORK_DEVICE = "-net nic -net nic -net nic -net nic,netdev=net0,macaddr=@MAC@" 42QB_NETWORK_DEVICE = "-net nic -net nic -net nic -net nic,netdev=net0,macaddr=@MAC@"
43 43
44# Replicate BootROM like behaviour, having loaded SPL and PMU(ROM+FW) 44# Replicate BootROM like behaviour, having loaded SPL and PMU(ROM+FW)
45QB_OPT_APPEND:append_qemuboot-xilinx = " \ 45QB_OPT_APPEND:append:qemuboot-xilinx = " \
46 -hw-dtb ${DEPLOY_DIR_IMAGE}/qemu-hw-devicetrees/multiarch/zcu102-arm.dtb \ 46 -hw-dtb ${DEPLOY_DIR_IMAGE}/qemu-hw-devicetrees/multiarch/zcu102-arm.dtb \
47 ${@qemu_zynqmp_unhalt(d, True)} \ 47 ${@qemu_zynqmp_unhalt(d, True)} \
48 -device loader,file=${DEPLOY_DIR_IMAGE}/arm-trusted-firmware.elf,cpu-num=0 \ 48 -device loader,file=${DEPLOY_DIR_IMAGE}/arm-trusted-firmware.elf,cpu-num=0 \
@@ -51,9 +51,9 @@ QB_OPT_APPEND:append_qemuboot-xilinx = " \
51 " 51 "
52 52
53# Attach the rootfs disk image to the second SD interface of QEMU (which is SD0) 53# Attach the rootfs disk image to the second SD interface of QEMU (which is SD0)
54QB_DEFAULT_FSTYPE_qemuboot-xilinx = "wic.qemu-sd" 54QB_DEFAULT_FSTYPE:qemuboot-xilinx = "wic.qemu-sd"
55QB_OPT_APPEND:append_qemuboot-xilinx = " -boot mode=5" 55QB_OPT_APPEND:append:qemuboot-xilinx = " -boot mode=5"
56QB_ROOTFS_OPT_qemuboot-xilinx = " -drive if=sd,index=1,file=@ROOTFS@,format=raw" 56QB_ROOTFS_OPT:qemuboot-xilinx = " -drive if=sd,index=1,file=@ROOTFS@,format=raw"
57 57
58QB_PMU_OPT = " \ 58QB_PMU_OPT = " \
59 -M microblaze-fdt \ 59 -M microblaze-fdt \
@@ -64,6 +64,6 @@ QB_PMU_OPT = " \
64 -device loader,addr=0xfd1a0074,data=0x1011003,data-len=4 \ 64 -device loader,addr=0xfd1a0074,data=0x1011003,data-len=4 \
65 -device loader,addr=0xfd1a007C,data=0x1010f03,data-len=4 \ 65 -device loader,addr=0xfd1a007C,data=0x1010f03,data-len=4 \
66 " 66 "
67QB_OPT_APPEND:append_qemuboot-xilinx = " -pmu-args '${QB_PMU_OPT}'" 67QB_OPT_APPEND:append:qemuboot-xilinx = " -pmu-args '${QB_PMU_OPT}'"
68 68
69do_write_qemuboot_conf[depends] += "u-boot-zynq-uenv:do_deploy" 69do_write_qemuboot_conf[depends] += "u-boot-zynq-uenv:do_deploy"
diff --git a/meta-xilinx-bsp/conf/machine/zynq-generic.conf b/meta-xilinx-bsp/conf/machine/zynq-generic.conf
deleted file mode 100644
index fc32906e..00000000
--- a/meta-xilinx-bsp/conf/machine/zynq-generic.conf
+++ /dev/null
@@ -1,41 +0,0 @@
1#@TYPE: Machine
2#@NAME: Generic Zynq
3#@DESCRIPTION: Generic Zynq Device
4
5require conf/machine/include/soc-zynq.inc
6require conf/machine/include/machine-xilinx-default.inc
7require conf/machine/include/machine-xilinx-qemu.inc
8require conf/machine/include/xilinx-board.inc
9
10MACHINE_FEATURES += "rtc ext2 ext3 vfat usbhost usbgadget"
11
12EXTRA_IMAGEDEPENDS += "libyaml-native python3-cython-native python3-pyyaml-native"
13
14UBOOT_MACHINE ?= "xilinx_zynq_virt_defconfig"
15
16SERIAL_CONSOLES ?= "115200;ttyPS0"
17
18MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "device-tree"
19
20HDF_MACHINE = "zc702-zynq7"
21
22QB_MEM = "-m 1024"
23QB_NETWORK_DEVICE = "-net nic,netdev=eth0 -netdev user,id=eth0,tftp=/tftpboot -net nic"
24QB_DEFAULT_KERNEL_qemuboot-xilinx = "zImage"
25
26QB_SYSTEM_NAME ?= "${@qemu_target_binary(d)}"
27QB_DEFAULT_FSTYPE = "cpio.gz.u-boot"
28QB_DTB = "system.dtb"
29QB_ROOTFS_OPT_qemuboot-xilinx = " -drive if=sd,index=1,file=@ROOTFS@,format=raw"
30
31# Replicate BootROM like behaviour, having loaded SPL and PMU(ROM+FW)
32QB_OPT_APPEND = " \
33 -nographic -serial null -serial mon:stdio \
34 -initrd ${DEPLOY_DIR_IMAGE}/@ROOTFS@ \
35 -gdb tcp::9000 \
36 -device loader,addr=0xf8000008,data=0xDF0D,data-len=4 \
37 -device loader,addr=0xf8000140,data=0x00500801,data-len=4 \
38 -device loader,addr=0xf800012c,data=0x1ed044d,data-len=4 \
39 -device loader,addr=0xf8000108,data=0x0001e008,data-len=4 \
40 -device loader,addr=0xF8000910,data=0xF,data-len=0x4 \
41 "
diff --git a/meta-xilinx-bsp/conf/machine/zynqmp-generic.conf b/meta-xilinx-bsp/conf/machine/zynqmp-generic.conf
deleted file mode 100644
index c5d5259a..00000000
--- a/meta-xilinx-bsp/conf/machine/zynqmp-generic.conf
+++ /dev/null
@@ -1,85 +0,0 @@
1#@TYPE: Machine
2#@NAME: Generic zynqmp
3#@DESCRIPTION: zynqmp devices
4
5# CG is the lowest common demoninator, so use this by default
6SOC_VARIANT ?= "cg"
7
8require conf/machine/include/soc-zynqmp.inc
9require conf/machine/include/machine-xilinx-default.inc
10require conf/machine/include/machine-xilinx-qemu.inc
11require conf/machine/include/xilinx-board.inc
12
13# Machine features must result in a superset
14# Basic features:
15MACHINE_FEATURES += "rtc ext2 ext3 vfat usbhost"
16# Ultra96 features:
17MACHINE_FEATURES += " usbgadget wifi bluetooth"
18
19EXTRA_IMAGEDEPENDS += "libyaml-native python3-cython-native python3-pyyaml-native"
20
21UBOOT_MACHINE ?= "xilinx_zynqmp_virt_defconfig"
22SPL_BINARY ?= "spl/boot.bin"
23
24# Default SD image build onfiguration, use qemu-sd to pad
25IMAGE_CLASSES += "image-types-xilinx-qemu"
26IMAGE_FSTYPES += "wic.qemu-sd"
27WKS_FILES ?= "sdimage-bootpart.wks"
28
29SERIAL_CONSOLES ?= "115200;ttyPS0"
30
31MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "device-tree"
32
33# We need a generic one that works with QEMU...
34HDF_MACHINE = "zcu102-zynqmp"
35
36EXTRA_IMAGEDEPENDS += " \
37 u-boot-zynq-uenv \
38 arm-trusted-firmware \
39 qemu-devicetrees \
40 virtual/boot-bin \
41 virtual/bootloader \
42 u-boot-zynq-scr \
43 "
44
45IMAGE_BOOT_FILES += " \
46 uEnv.txt \
47 atf-uboot.ub \
48 ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/dtb', 'device-tree', 'system.dtb', '', d)} \
49 boot.scr \
50 "
51
52# This machine has a QEMU model, runqemu setup:
53QB_MEM = "-m 4096"
54QB_OPT_APPEND ?= "-nographic -serial mon:stdio -serial null"
55QB_NETWORK_DEVICE = "-net nic -net nic -net nic -net nic,netdev=net0,macaddr=@MAC@"
56
57# Replicate BootROM like behaviour, having loaded SPL and PMU(ROM+FW)
58QB_OPT_APPEND:append_qemuboot-xilinx = " \
59 -hw-dtb ${DEPLOY_DIR_IMAGE}/qemu-hw-devicetrees/multiarch/zcu102-arm.dtb \
60 ${@qemu_zynqmp_unhalt(d, True)} \
61 -device loader,file=${DEPLOY_DIR_IMAGE}/arm-trusted-firmware.elf,cpu-num=0 \
62 -device loader,file=${DEPLOY_DIR_IMAGE}/u-boot.elf \
63 -device loader,file=${DEPLOY_DIR_IMAGE}/system.dtb,addr=0x100000 \
64 "
65
66# Attach the rootfs disk image to the second SD interface of QEMU (which is SD0)
67QB_DEFAULT_FSTYPE_qemuboot-xilinx = "wic.qemu-sd"
68QB_OPT_APPEND:append_qemuboot-xilinx = " -boot mode=5"
69QB_ROOTFS_OPT_qemuboot-xilinx = " -drive if=sd,index=1,file=@ROOTFS@,format=raw"
70
71QB_PMU_OPT = " \
72 -M microblaze-fdt \
73 -display none \
74 -hw-dtb ${DEPLOY_DIR_IMAGE}/qemu-hw-devicetrees/multiarch/zynqmp-pmu.dtb \
75 -kernel ${PMU_ROM} \
76 -device loader,file=${PMU_FIRMWARE_DEPLOY_DIR}/${PMU_FIRMWARE_IMAGE_NAME}.elf \
77 -device loader,addr=0xfd1a0074,data=0x1011003,data-len=4 \
78 -device loader,addr=0xfd1a007C,data=0x1010f03,data-len=4 \
79 "
80QB_OPT_APPEND:append_qemuboot-xilinx = " -pmu-args '${QB_PMU_OPT}'"
81
82do_write_qemuboot_conf[depends] += "u-boot-zynq-uenv:do_deploy"
83
84# Board specific overrides
85require conf/machine/include/board/ultra96.inc