Skip to main content

Crate fpgad

Crate fpgad 

Source
Expand description

FPGA daemon (fpgad) - System service for managing FPGA devices.

This is the main library for the fpgad daemon, which provides a DBus service for managing FPGA devices on Linux systems. The daemon:

  • Exposes two DBus interfaces: control and status
  • Manages FPGA bitstream loading through the Linux FPGA subsystem
  • Handles device tree overlay application and removal
  • Provides platform-specific FPGA management capabilities
  • Runs as a system service with appropriate privileges

§DBus Service

  • Service Name: com.canonical.fpgad
  • Status Interface: /com/canonical/fpgad/status - Read-only operations
  • Control Interface: /com/canonical/fpgad/control - Write operations

§Environment Variables

  • RUST_LOG - Controls logging level (trace, debug, info, warn, error or off). Defaults to info

§Architecture

The daemon uses a platform abstraction approach that allows different FPGA vendors and platforms to be supported through registered platform implementations. At startup, the daemon:

  1. Initializes logging via env_logger (controlled by RUST_LOG)
  2. Registers all available platform implementations
  3. Creates DBus interface instances (StatusInterface and ControlInterface)
  4. Connects to the system DBus and advertises the service name
  5. Serves DBus requests indefinitely until terminated

§Platform Support

  • Universal Platform: Generic FPGA support for standard Linux FPGA subsystem
  • Xilinx DFX Manager (optional, feature-gated): Xilinx-specific softener which uses dfx-mgr
  • Additional Platforms: Can be added via feature flags and custom implementations

See the platforms module for details on the platform abstraction system and softeners for more information on vendor-specific implementations.

Modules§

comm
Communication interfaces for the fpgad daemon.
config
Configuration constants for the fpgad daemon.
error
Error types for the fpgad daemon.
platforms
Platform Abstractions for FPGA Hardware Management
softeners
FPGAd Softeners
system_io
Error Wrapping File System I/O Helpers

Functions§

register_platforms
Register all available FPGA platform implementations.