diff options
author | Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com> | 2020-02-13 15:42:49 -0800 |
---|---|---|
committer | Mark Hatle <mark.hatle@xilinx.com> | 2020-02-27 08:33:25 -0800 |
commit | fbd4c044291288a5df0426db7ffcff3d075df5ef (patch) | |
tree | d7104e61ad08c03b066956be5ef9a7a7439fb13b | |
parent | 3ca3b040923de14d5c10c82fc626f5bd36fc9aa4 (diff) | |
download | meta-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.conf | 61 | ||||
-rw-r--r-- | meta-xilinx-bsp/conf/multiconfig/fsblmc.conf | 8 | ||||
-rw-r--r-- | meta-xilinx-bsp/conf/multiconfig/pmumc.conf | 8 |
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. | ||
33 | BBMULTICONFIG = "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 | |||
49 | MACHINE = "zcu102-zynqmp" | ||
50 | require conf/machine/${MACHINE}.conf | ||
51 | |||
52 | # Use the same format for TMPDIR as in the other multiconfigs so its less confusing. | ||
53 | TMPDIR = "${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 | ||
60 | do_image[mcdepends] += "multiconfig::fsblmc:zynqmp-fsbl:do_deploy" | ||
61 | do_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 @@ | |||
1 | MACHINE = "cortexa53-zynqmp" | ||
2 | DISTRO = "xilinx-standalone" | ||
3 | TMPDIR = "${TOPDIR}/tmp-${MACHINE}-${TCLIBC}" | ||
4 | |||
5 | # These should be temporary until the dtg repo has the correct design | ||
6 | HDF_BASE ?= "file://" | ||
7 | HDF_PATH ?= "${TOPDIR}/system.dsa" | ||
8 | HDF_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 @@ | |||
1 | MACHINE = "microblaze-pmu" | ||
2 | DISTRO = "xilinx-standalone" | ||
3 | TMPDIR = "${TOPDIR}/tmp-${MACHINE}-${TCLIBC}" | ||
4 | |||
5 | # These should be temporary until the dtg repo has the correct design | ||
6 | HDF_BASE ?= "file://" | ||
7 | HDF_PATH ?= "${TOPDIR}/system.dsa" | ||
8 | HDF_EXT ?= "dsa" | ||