blob: 5d3bbd286b76ac1a065c99ece061a2e134b02539 [file] [log] [blame]
Andrew Geissler84ad7c52020-06-27 00:00:16 -05001#@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"