Andrew Geissler | 84ad7c5 | 2020-06-27 00:00:16 -0500 | [diff] [blame] | 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" |