Skip to content

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

License

Notifications You must be signed in to change notification settings

altera-opensource/librsu

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

License

Stars

Watchers

Forks

Packages

No packages published