IoTEdge-SoC_FPGA: Azure IoT Edge Module for controlling an Intel® Cyclone® V SoC FPGA

Paul DeCarlo

Paul DeCarlo

Houston, Texas

7 1
  • 0 Collaborators

Enable cloud deployment of FPGA configurations via Raw Binary Files (.rbf) to remote devices. ...learn more

Project status: Published/In Market

HPC, Internet of Things

Intel Technologies
Intel FPGA

Code Samples [1]

Overview / Usage

Azure IoT Edge enables developers to deploy containerized modules to internet connected devices which allows for maintaining a desired state of running services through cloud-configured deployment configurations. This mechanism also offers the ability to securely update running modules at runtime on remote devices via changes to this configuration.

This IoT Edge module will allow the user to configure the FPGA portion of the Cyclone V SoC from Linux within an IoT Edge module, allowing for a robust deployment mechanism for shipping FPGA configurations to remote devices at scale.

This can allow for FPGA enabled devices to be dynamically reprogrammed in the field, without physical access. As such, we can now deliver hardware configurable updates over the air to enable a wide variety of never before seen use cases including fixing issues without need for a physical recall, updating configurations to be more performant or add new features, and allowing devices to be bootstrap with remotely delivered FPGA configurations on first run.

Methodology / Approach

This IoT Edge module leverages work from @nhasbun to configure the FPGA portion of the Cyclone V SoC from Linux within an Iot Edge module, allowing for a robust deployment mechanism for shipping FPGA configurations to remote devices at scale.

This is accomplished using direct register access to take control of the FPGA Manager device which is used by the HPS to configure the FPGA. A multi-stage Dockerfile builds this component using SoCEDS-18.1.0.625 and provides it to an IoT Edge module which maps /dev/mem from the host to allow for interaction with the FPGA from the containerized module.

For more information on how to reproduce and use this work in your own projects, see the accompanying link to the Github repo and video demonstration at the bottom of this article.

Technologies Used

Repository

https://github.com/toolboc/IoTEdge-SoC_FPGA

Comments (1)