FPG-201 · FPGA & Acceleration · Advanced
Linux Drivers for FPGA Accelerators — full syllabus
Making an accelerator usable from Linux: memory mapping, DMA, interrupts and a sane userspace interface.
Who this course is for
Engineers productizing FPGA accelerators under Linux — responsible for the kernel driver and the userspace contract that makes programmable logic usable by an application team.
Prerequisites
- Linux kernel module basics: a character driver you have written yourself
- C programming and comfort reading kernel source
- Basic FPGA/AXI familiarity; labs run on the ZCU104
Course outline
Day 1 — Registers and the user boundary
- The Zynq PS-PL boundary: what the A53 actually sees of your fabric
- Register maps and MMIO: ioremap, readl/writel and the barriers between
- Device tree for PL peripherals: compatible, reg, interrupts, clocks
- AXI4-Lite as the control plane, and what a bad register map costs
- Exposing control: ioctl vs sysfs vs mmap, and what each promises
Day 2 — DMA and data movement
- DMA design for accelerator data movement: coherent vs streaming buffers
- Ownership transitions and the cache maintenance that prevents stale data
- The dmaengine API; AXI DMA and scatter-gather operation
- Zero-copy buffer strategies: dma-buf and contiguous carve-outs
- Backpressure and flow control between producer logic and consumer software
Day 3 — Interrupts, reconfiguration and the API
- Interrupt handling: request_irq, threaded IRQs and completion signalling to userspace
- Signalling patterns that scale beyond one interrupt
- The FPGA manager framework: loading bitstreams from Linux
- Partial reconfiguration: when it pays and what the driver must coordinate
- Designing an API your application team will accept: versioning, error reporting, recovery
Hands-on labs
- Lab: Bring up a device-tree-described AXI-Lite peripheral; map its registers and verify reads and writes from a kernel driver
- Lab: Implement a DMA transfer path with correct cache ownership — then reproduce a stale-data bug by getting the barriers wrong
- Lab: Wire an interrupt from the PL to a threaded IRQ handler and signal a userspace waiter; measure the latency path
- Lab: Load a bitstream through the FPGA manager framework and handle the failure modes cleanly
- Lab: Critique a supplied accelerator userspace API and produce a better versioned design your application team would sign
Capstone project
Given a working PL accelerator block on the ZCU104 with a register map and a streaming interface, deliver the Linux side end to end: a device-tree binding, a kernel driver with MMIO control, DMA data movement with provable cache correctness, interrupt-driven completion, and a documented userspace API — demonstrated by an application streaming data at a measured sustained rate with an integrity check on every buffer.
What you leave with
- A working MMIO + DMA + IRQ driver pattern for FPGA accelerators
- Cache-ownership discipline: why stale DMA data happens and how to prove it cannot
- FPGA manager and partial-reconfiguration mechanics from Linux
- Device-tree binding habits for PL peripherals
- A userspace API design checklist an application team will actually accept
Upcoming dates
| Dates | Where | Seats | Early bird | Regular | |
|---|---|---|---|---|---|
| 22 Nov – 24 Nov 20263 full days | RiyadhIn person · KAFD Conference Centre | 6 of 14 | SAR 8,100until 23 Oct | ||
| 22 Nov – 24 Nov 20263 full days | Kuwait CityIn person · Al Hamra Tower | 11 of 14 | KWD 670until 23 Oct | ||
| 29 Nov – 1 Dec 20263 full days | MuscatIn person · Knowledge Oasis Muscat | 6 of 14 | OMR 830until 30 Oct | ||
| 6 Dec – 13 Dec 20266 half-days | Gulf bandLive online · 09:00–13:00 GMT+3 | 6 of 20 | US$1,580until 6 Nov | ||
| 7 Dec – 9 Dec 20263 full days | OttawaIn person · Kanata North Tech Park | 11 of 14 | CAD 2,930until 7 Nov | ||
| 7 Dec – 9 Dec 20263 full days | TorontoIn person · MaRS Discovery District | 6 of 14 | CAD 2,930until 7 Nov | ||
| 7 Dec – 14 Dec 20266 half-days | Europe bandLive online · 09:00–13:00 CET | 11 of 20 | US$1,580until 7 Nov | ||
| 14 Dec – 16 Dec 20263 full days | LondonIn person · Shoreditch Works | 11 of 14 | GBP 1,680until 14 Nov | ||
| 14 Dec – 21 Dec 20266 half-days | Americas bandLive online · 13:00–17:00 ET | 16 of 20 | US$1,580until 14 Nov | ||
| 21 Dec – 23 Dec 20263 full days | BerlinIn person · Factory Görlitzer Park | 6 of 14 | EUR 1,990until 21 Nov |
Book a seat, or bring this course to your team
Seats can be reserved online; private delivery runs on-site or live online, adapted to your stack.
Questions about fit or prerequisites? Email hello@kernelsystems.academy. To save this syllabus, print this page to PDF from your browser.