Skip to content
 
 

Repository files navigation

Unified Remote System Update (uniLibRSU)

This repo contains the Unified remote system update which is made platform independent. The code base is taken from intel-rsu and is reworked to make it platform agnostic. For more information please checkout : https://www.intel.com/content/www/us/en/docs/programmable/683184/22-4/overview-s10-fm-dm.html

Remote System Update (RSU)

Remote system update feature allows you to update the FPGA image and reconfigure Agilex devices remotely on field with fallback mechanism support.

Pre-requisite

  1. gcc/9.3.0 (for unit-test)
  2. cmake/3.24.0 (build configuration tool)
  3. arm_gnu/linaro/aarch64/9.2 (for linux aarch64 platform)
  4. lcov/1.15 (optional)
  5. doxygen/1.8.16 (optional)
  6. ninja or make (build tool)
  7. quartus (for generating collaterals for unit test)

Unit-Test

We are using google unit test framework to unit test unified libRSU.

cmake -S . -B build -DUNIT_TEST=ON -G"Ninja" && cmake --build build && ctest --test-dir build

Coverage report

Coverage is enabled through CMake options: -DCOVERAGE=ON It uses gcov and lcov to genarate the coverage report. For running unit-test with coverage and generate coverage report.

cmake -S . -B build -DUNIT_TEST=ON -G"Ninja" -DCOVERAGE=ON && cmake --build build --target coverage && ctest --test-dir build && cmake --build build --target coverage-report

Cross compile for linux agilex platform

cmake -S . -B build -G"Ninja" -DPLATFORM=linux-aarch64 && cmake --build build

linux-example/rsu_client.c is a sample application that utilizes the unified LibRSU shared library to execute RSU operations. User needs to copy both build/bin/rsu_client and build/lib/libuniLibRSU.so.* to the target machine for execution.

To generate debug build you need to add -DCMAKE_BUILD_TYPE=Debug during CMake configuration step.

Building with zephyr

Altera-opensource Zephyr RTOS is already integarted with uniLibRSU the build utility will get the required version of unified librsu from altera-opensource by performing west update.

Generating documentation

Doxygen is used to generate the documentation. Documentation can be generated by using -DBUILD_DOC=ON in CMake build command.

Example: cmake -S . -B build -DBUILD_DOC=ON -G"Ninja" && cmake --build build

About

A cross-platform library to exercise remote system update feature for agilex series of devices on different OS platforms.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages