1 Project Summary

The aim of this project (task #T729) was to make a Linux Kernel Driver to program and debug the Lattice MachXO2 FPGAs present in AXIOM Beta. These FPGAs are used as routing fabrics to handle all the low speed GPIO communications that are required for plugin modules, shields and the center solder on area without sacrificing valuable Zynq GPIOs.

Two main goals of this project were:

  • To implement an ”upload“ interface to program the FPGAs
  • To implement a debug (JTAG) interface to interface OpenOCD


Previously, both the MachXO2 FPGAs were programmed with python scripts which didn’t allow easy update and development. The Linux Kernel Driver acts as a central entity to manage the FPGAs, provides a JTAG interface to any application like OpenOCD to make SVF replays possible, and essentially makes testing and debugging new code much easier.

Google Summer of Code 2020 project.

Mentored by: Herbert Poetzl (@Bertl)

Implemented by: Swaraj Hota (@bluez_)


2 Important Links