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.

Organization

Student

Swaraj Hota

Mentors

  • Herbert Poetzl
close

2020