Using the SHEL Flow to create a Yocto Project machine configuration from a .xsa file
This page is intended to provide the high-level overview and a simple tutorial on how to use the SHEL flow to create a Linux image for AMD Adaptive SoC hardware.
End-to-end SHEL flow used in this tutorial.
Note
Lopper is used internally by
gen-machine-conf to transform the SDT Artifacts into the
Yocto machine configuration. It does not appear as a separate
step in this tutorial flow because gen-machine-conf invokes
it automatically.
SHEL Flow in a Few Steps
Run System Device Tree Generator (SDTGen) as instructed in its README file.
Set up a yocto environment that includes the xilinx meta layers. https://github.com/Xilinx/meta-xilinx/blob/master/README.building.md
Run
gen-machine-confon the resultant output. This generates a new Yocto “Machine” appropriate for your system.
$ gen-machine-conf parse-sdt --hw-description <path_to_sdtgen_output_directory> -c <conf-directory> -l <path-to-build-directory>/build/conf/local.conf --machine-name <your machine name>
Make sure you are using your new machine configuration in Yocto by prepending
MACHINE=<your machine name> to all yocto commands or a add MACHINE=<your
machine name> to your projects local.conf
$ MACHINE=<your machine name> bitbake edf-linux-disk-image
Emulate the build by combining the machine-specific and common qemuboot
artifacts into a single qemuboot.conf, then using it to launch
runqemu.
$ runqemu combined.qemuboot.conf nographic slirp
The required arguments and combined qemuboot.conf path depend on the
generated machine and board. For the complete QEMU boot flow, including
combining artifacts and generating the combined qemuboot.conf, see
QEMU Based Development.