Platform Overview¶
XRT exports a common stack across PCIe based platforms and MPSoC based platforms. From user perspective there is very little porting effort when migrating an application from one class of platform to another.
PCIe Based Platforms¶
- VCU1525
- U200
- U250
- U280
- AWS F1
PCIe based platforms are supported on x86_64, PPC64LE and AARCH64 host architectures. The shell (previously known as DSA) has two physical functions: mgmt pf and user pf.
MGMT PF¶
XRT Linux kernel driver xclmgmt binds to mgmt pf. The driver is organized into subdevices and handles the following functionality:
- ICAP programming
- CLock scaling
- Loading firmware container, dsabin (RL Shell for 2 RP solution, embedded Microblaze firmware: ERT, XMC)
- In-band sensors: Temp, Voltage, Power, etc
- AXI Firewall management
- Access to flash programmer
- Device reset and rescan
- Hardware mailbox
- Interrupt handling for AXI Firewall and Mailbox
- Device DNA discovery and validation
- ECC handling
USER PF¶
XRT Linux kernel driver xocl binds to user pf. The driver is organized into subdevices and handles the following functionality:
- Device memory topology discovery and memory management
- Device memory management as abstracted buffer objects
- XDMA memory mapped PCIe DMA engine programming
- QDMA streaming DMA engine programming
- Multi-process aware context management
- Standardized compute unit execution management (optionally with help of ERT) for client processes
- Interrupt handling for DMA, Compute unit completion and Mailbox
- Buffer object migration between device and host as DMA operation
- Queue creation/deletion read/write operation for sreaming DMA operation
- AIO support for the streaming queues
- Buffer import and export via DMA-BUF
- PCIe peer-to-peer buffer mapping and sharing
Zynq Ultrascale+ MPSoC Based Embedded Platforms¶
- ZCU19
- ZCU102
- ZCU104
- ZCU106
MPSoC based platforms are supported with PetaLinux base stack. XRT Linux kernel driver zocl does the heavy lifting for the embedded platform. It handles the following functionality
- CMA buffer management
- SMMU programming for SVM platforms
- Standardized compute unit execution management on behalf of client processes
- xclbin download for platforms with Partial Reconfiguration support
- Buffer import and export via DMA-BUF
- Interrupt handling for compute unit completion