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:
controlandstatus - 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,errororoff). Defaults toinfo
§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:
- Initializes logging via
env_logger(controlled byRUST_LOG) - Registers all available platform implementations
- Creates DBus interface instances (
StatusInterfaceandControlInterface) - Connects to the system DBus and advertises the service name
- 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.