summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>2020-02-13 15:42:49 -0800
committerMark Hatle <mark.hatle@xilinx.com>2020-02-27 08:33:25 -0800
commitfbd4c044291288a5df0426db7ffcff3d075df5ef (patch)
treed7104e61ad08c03b066956be5ef9a7a7439fb13b
parent3ca3b040923de14d5c10c82fc626f5bd36fc9aa4 (diff)
downloadmeta-xilinx-fbd4c044291288a5df0426db7ffcff3d075df5ef.tar.gz
system-zcu102: Create heterogeneous machine configuration for ZCU102 evaluation board.
Using the MACHINE=system-zcu102 should allow users to build the required artifacts for the several architectures inside a ZCU102 board. This machine along with the declared multiconfigs set up the wiring to do so, building Linux, PMU firmware and FSBL on a single bitbake invokation: $ bitbake core-image-minimal Three different TMP directories will be used, these depend both on the architecture for which packages are being generated and the C library that was used for that configuration. This should be used as an example that can easily be adapted to other boards. Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
-rw-r--r--meta-xilinx-bsp/conf/machine/system-zcu102.conf61
-rw-r--r--meta-xilinx-bsp/conf/multiconfig/fsblmc.conf8
-rw-r--r--meta-xilinx-bsp/conf/multiconfig/pmumc.conf8
3 files changed, 77 insertions, 0 deletions
diff --git a/meta-xilinx-bsp/conf/machine/system-zcu102.conf b/meta-xilinx-bsp/conf/machine/system-zcu102.conf
new file mode 100644
index 00000000..5d3bbd28
--- /dev/null
+++ b/meta-xilinx-bsp/conf/machine/system-zcu102.conf
@@ -0,0 +1,61 @@
1#@TYPE: Machine
2#@NAME: system-zcu102
3#@DESCRIPTION: Machine supporting the architectures in the ZCU102 evaluation board.
4
5# This machine sets up a build for a heterogeneous architecture board.
6# In this specific case, this refers to a zcu102-zynqmp board, which
7# should build artifacts for the hard microblaze architecture, and the
8# cortex-a53.
9
10# This is meant to be used as a base case and adapting it to
11# other boards should be fairly simple.
12
13# To build a full system, simply invoke the command:
14# $ bitbake <image>
15# which is analogous to
16# $ bitbake mc::<image>
17# Where image can be core-image-minimal for example
18# If a user wants to build a package for a certain architecture
19# a similar command can be invoked, just changing the parameter
20# between : and : to the desired multiconfig from one of the
21# declared values below.
22# For example, to build the xilstandalone library for the microblaze:
23# $ bitbake mc:pmumc:xilstandalone
24# or to build fsbl for cortexa53:
25# $ bitbake mc:fsblmc:zyqmp-fsbl
26
27
28# These artifacts are the pmu firmware along with the fsbl and the
29# Linux OS respectively
30
31# Keep in mind that there would still be a wiring required to merge
32# the artifacts from their respective deploy directories using bootgen.
33BBMULTICONFIG = "fsblmc pmumc"
34
35# The following should be changed to the machine which corresponds to
36# the architecture of a specific device, in this case cortexa53
37# But there are several hard coded expected values from several
38# repos, e.g. linux-xlnx which expects a defconfig depending on
39# the machine that is being used, as a TEMPORARY solution and
40# to prove how multiconfig can be used to build a full system
41# with heterogeneous architectures we'll use MACHINE=zcu102-zynqmp.
42
43# The downside is that this stills needs xsct and would technically
44# build two pmu firmwrares and two fsbls, one coming from our
45# multiconfig and one that uses xsct respectively, once the values
46# mentioned above are fixed, this should work properly with:
47# MACHINE = "cortexa53-zynqmp"
48
49MACHINE = "zcu102-zynqmp"
50require conf/machine/${MACHINE}.conf
51
52# Use the same format for TMPDIR as in the other multiconfigs so its less confusing.
53TMPDIR = "${TOPDIR}/tmp-${MACHINE}-${TCLIBC}"
54
55# Create dependencies for Linux only, other multiconfig applications,
56# can be built separately, e.g. bitbake mc:pmumc:pmufw
57# in this case, linux cannot, also worth mentioning that these should
58# eventually be set on a recipe level and would probably be useful to
59# create a chain of dependencies: pmufw<-fsbl<-Linux
60do_image[mcdepends] += "multiconfig::fsblmc:zynqmp-fsbl:do_deploy"
61do_image[mcdepends] += "multiconfig::pmumc:pmufw:do_deploy" \ No newline at end of file
diff --git a/meta-xilinx-bsp/conf/multiconfig/fsblmc.conf b/meta-xilinx-bsp/conf/multiconfig/fsblmc.conf
new file mode 100644
index 00000000..87bb56a8
--- /dev/null
+++ b/meta-xilinx-bsp/conf/multiconfig/fsblmc.conf
@@ -0,0 +1,8 @@
1MACHINE = "cortexa53-zynqmp"
2DISTRO = "xilinx-standalone"
3TMPDIR = "${TOPDIR}/tmp-${MACHINE}-${TCLIBC}"
4
5# These should be temporary until the dtg repo has the correct design
6HDF_BASE ?= "file://"
7HDF_PATH ?= "${TOPDIR}/system.dsa"
8HDF_EXT ?= "dsa"
diff --git a/meta-xilinx-bsp/conf/multiconfig/pmumc.conf b/meta-xilinx-bsp/conf/multiconfig/pmumc.conf
new file mode 100644
index 00000000..756ea94a
--- /dev/null
+++ b/meta-xilinx-bsp/conf/multiconfig/pmumc.conf
@@ -0,0 +1,8 @@
1MACHINE = "microblaze-pmu"
2DISTRO = "xilinx-standalone"
3TMPDIR = "${TOPDIR}/tmp-${MACHINE}-${TCLIBC}"
4
5# These should be temporary until the dtg repo has the correct design
6HDF_BASE ?= "file://"
7HDF_PATH ?= "${TOPDIR}/system.dsa"
8HDF_EXT ?= "dsa"