Skip to content
Snippets Groups Projects
Select Git revision
  • f019266a9f77ec856549be1dfb3d2f26e44a231e
  • main default protected
  • pck_cnt
  • upgrade_yocto
  • dev
5 results

fofb-yocto

  • Clone with SSH
  • Clone with HTTPS
  • Aude Grabas's avatar
    Aude Grabas authored
    Erroneous absolute path added for TMP_DIR and SSTATE_DIR
    
    This reverts commit 1bb0baa4.
    f019266a
    History

    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.

    Topology

    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).

    Platform

    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

    System requirements

    To be completed

    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

    Building

    To setup the environment, use the setupsdk script. This will automatically cd in build_damc_fofb directory

    source setupsdk build_damc_fofb

    Start the build for the image

    bitbake zup-image-soleil-fofb

    Preparing SD image and filesystem

    The system fit in a 8GB SD card. The script makesd/prepare-sd.sh can partition, format and copy files to the SD card. The script makesd/bring_files.sh needs to be adjusted but list the files required to be shipped in the SD card.