Project to build the Linux OS image for generic target systems, with minimal configuration.
This repository is a prototype LOKI project, a generic Embedded-Linux control system that can be adapted to run application-specific control software based on the odin-control framework.
This template allows for the creation of an application repository with the following features:
- LOKI Core image build, including
odin-controland dependencies - Custom Application-specific Yocto layer (optional)
- Custom firmware (optional)
This project uses versions of LOKI v2.0.3+, and Xilinx toolchain 2023-2.
#TODO
Clone the repository (using a tag if necessary):
git clone git@github.com:stfc-aeg/loki-embedded-application-template.gitYour repository will have a different name
Load the Xilinx 2023-2 toolchain. To do this as DSSG, run:
module load xilinx/2023-2
vivado_env
vitis_env
petalinux_envThe Makefile will check tool versions are correct as part of the build.
If you are just building the project, it is not necessary to run this step separately; it will simply save time by only creating the Vivado project for loki-firmware and then stopping.
make firmware-projectThis will create the loki-firmware/firmware/firmware.xpr project file, which can be opened in Vivado.
BEFORE YOU RUN THIS, make sure you have used ssh agent to load keys used for github clones. It will fail without prompt for a password.
makeNote
At this time, the FSBL / PMUFW is only being used as a prebuilt file, as the current LOKI 2023 toolchain is broken for Vitis.
On successive builds having modified only the control software, only the PetaLinux build should re-run.
The build files required for the board are in ./loki/os/petalinux-custom/images/linux/:
image.ubis the main Linux image. If there is an existing file, this can simply replace it to update the systemBOOT.BINis the customised U-Boot Bootloader, which is required but is unlikely to change unless the LOKI tag has been upatedboot.scris the U-Boot script, which is required but is unlikely to change unless the LOKI tag has been upated