The Software Structure of Cortex A5 DesignStart stack is as shown in Figure 1. At the base of the stack is Trusted Firmware -A, which provides the foundation for secure boot and standard power management interface using PSCI. Above this is a Mainline Linux kernel, this can be used to support a wide range of applications. We have chosen to deploy Poky-Tiny Openembedded Distro as the default filesystem in our reference stack as this brings us an easy to develop and deploy distribution.
Yocto is the tool we use to build root filesystems to deploy to the A5 DesignStart FastModel or FPGA image. The structure of the Yocto recipes can be seen in figure 2. If you are new to Yocto, there are plenty of resources available online. Check out the references section below that will bring you up to speed. The Making Changes section of this post will cover how you can modify the configuration of code that we have supplied to bootstrap your development on A5 DesignStart.
Assuming the code has already been built using the instructions mentioned in this guide, there is a well defined process for modifying code in pre-existing layers. More in-depth details of this process can be found here.
As an example, consider you wanted to add a driver or config change to your kernel, the Yocto defined process for doing this would be
devtool modify linux-arm
# Edit the code that is now available in /build-iota-tiny/workspaces/sources/linux-arm
# Once you are happy with the code, commit to the locally created git repository in /build-iota-tiny/workspaces/sources/linux-arm
# Create the patches that will be applied to your recipes, layerpath here refers to the location of the 'User created layer' path shown in the Yocoto Structure diagram above
devtool update-recipe -a <layerpath> linux-arm
This same process works when modifying supplied recipes for trusted-firmware-a and u-boot.
This post has given a very brief quick-start-guide to working with A5 DesignStart with Yocto. You should now be able to build and deploy a vanilla stack to a FastModel or FPGA. You should also now be able to customize the reference components to suit your need. All you need to do now is build your application ready to deploy on final silicon.
Read more here