FOFB Yocto Project Documentation
Description
This project is used to build the boot and root system of the FofbNodes systems.
The next figure gives a global idea of the Fofb Nodes integration to SOLEIL Fast Orbit Feedback. Beam Position Monitors (BPM) output the position data, and Power Supply Controller (PSC) drive the steering magnets to move the beam with the correction values.
Overview
The built system will sit in the PS (ARM) part of a Xilinx SoC. It is used to access (control/monitor) the FPGA processing blocs from the local OS or from SOLEIL’s control system (TANGO).
Details
The system is based on Xilinx PetaLinux, headless (no graphic environment).
Base layers for this are taken from OpenEmdedded and Xilinx repositories. https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841883/Yocto
Board and system specific layers are taken from both DESY MSK and DESY Techlab. ChimeraTK layer is brought in for the server application.
SOLEIL FofbNode applications and scripts, with the final image recipe are in SOLEIL layer. https://gitlab.synchrotron-soleil.fr/dg/fofb/meta-soleil-fofb
Unlike other project, the repo
tool is not used here.
Every layers are git submodules.
Generation
Building the system
Checking out the source code
git clone git@gitlab.synchrotron-soleil.fr:dg/fofb/fofb-yocto.git cd fofb-yocto git submodule update --init --recursive
Setup directories in local conf file
The sources contains a build_damc_fofb/conf/local.conf
that needs to be updated depending on the environment.
The download directory can be shared with other YOCTO projects.
# Shared DL_DIR DL_DIR = "/opt/DG/Yocto/downloads"
The SSTATE directory should be changed. It must not be shared with another YOCTO project.
# Shared SSTATE DIR SSTATE_DIR = "/put/some/path/"
The TMP directory should be changed. It receives all the outputs of the build. It cannot be a NFS mountpoint. It must not be shared with another YOCTO project.
# TMP is not on a NFS, so not on home TMPDIR = "/put/some/path/"
The following lines shall be set to accomodate the firmware project. Put the names of all the Firmware variants and a path where the .xsa
and .mapt
files can be fetched.
# PL VARIANTS HDF_BASE="file://" PL_VARIANTS_damc-fmc2zup = "FofbNode_CellNode FofbNode_CentralNode FofbNode_CellNode_test FofbNode_CentralNode_test" PL_VARIANTS_DIR = "/home/sources/diagnostics/broucquart/YOCTO_FOFB/build_damc_fofb/variants_hdf"
Linking variant files
The script build_damc_fofb/variants_hdf/install_link.py
can help to install automatically the links to the .xsa
and .mapt
files.
It is based on the tag and name. You need to edit the path that are hard coded at the begining of this script.
Then the links can be automatically switched to new version calling this script.
# For centralnode, test firmware, point to tag 2.1 # if there are tags 2.1.0 and 2.1.3 it will point to te latter ./build_damc_fofb/variants_hdf/install_link.py --test central 2.1
# For cellnode, standard firmware, point to tag 3 # if there are tags 3.1.0 and 3.4.3 it will point to te latter ./build_damc_fofb/variants_hdf/install_link.py cell 3