#@TYPE: Machine #@NAME: system-zcu102 #@DESCRIPTION: Machine supporting the architectures in the ZCU102 evaluation board. # This machine sets up a build for a heterogeneous architecture board. # In this specific case, this refers to a zcu102-zynqmp board, which # should build artifacts for the hard microblaze architecture, and the # cortex-a53. # This is meant to be used as a base case and adapting it to # other boards should be fairly simple. # To build a full system, simply invoke the command: # $ bitbake # which is analogous to # $ bitbake mc:: # Where image can be core-image-minimal for example # If a user wants to build a package for a certain architecture # a similar command can be invoked, just changing the parameter # between : and : to the desired multiconfig from one of the # declared values below. # For example, to build the xilstandalone library for the microblaze: # $ bitbake mc:pmumc:xilstandalone # or to build fsbl for cortexa53: # $ bitbake mc:fsblmc:zyqmp-fsbl # These artifacts are the pmu firmware along with the fsbl and the # Linux OS respectively # Keep in mind that there would still be a wiring required to merge # the artifacts from their respective deploy directories using bootgen. BBMULTICONFIG = "fsblmc pmumc" # The following should be changed to the machine which corresponds to # the architecture of a specific device, in this case cortexa53 # But there are several hard coded expected values from several # repos, e.g. linux-xlnx which expects a defconfig depending on # the machine that is being used, as a TEMPORARY solution and # to prove how multiconfig can be used to build a full system # with heterogeneous architectures we'll use MACHINE=zcu102-zynqmp. # The downside is that this stills needs xsct and would technically # build two pmu firmwrares and two fsbls, one coming from our # multiconfig and one that uses xsct respectively, once the values # mentioned above are fixed, this should work properly with: # MACHINE = "cortexa53-zynqmp" MACHINE = "zcu102-zynqmp" require conf/machine/${MACHINE}.conf # Use the same format for TMPDIR as in the other multiconfigs so its less confusing. TMPDIR = "${TOPDIR}/tmp-${MACHINE}-${TCLIBC}" # Create dependencies for Linux only, other multiconfig applications, # can be built separately, e.g. bitbake mc:pmumc:pmufw # in this case, linux cannot, also worth mentioning that these should # eventually be set on a recipe level and would probably be useful to # create a chain of dependencies: pmufw<-fsbl<-Linux do_image[mcdepends] += "multiconfig::fsblmc:zynqmp-fsbl:do_deploy" do_image[mcdepends] += "multiconfig::pmumc:pmufw:do_deploy"