Difference between revisions of "Linux Kernel Driver for Lattice MachXO2 programming/debugging"
Line 1: | Line 1: | ||
== Project Summary == | == 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 | Two main goals of this project were: | ||
* To implement a debug interface | * 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.''' | '''Google Summer of Code 2020 project.''' | ||
Line 19: | Line 21: | ||
* [https://github.com/Swaraj1998/axiom-beta-rfdev GSoC'20 Source Code] | * [https://github.com/Swaraj1998/axiom-beta-rfdev GSoC'20 Source Code] | ||
*[https://github.com/Swaraj1998/axiom-beta-rfdev/blob/master/GSoC2020_final_report.pdf GSoC'20 Final Report] | |||
* [https://drive.google.com/file/d/1XxUCo4E4EjMdfU9HKhAgaJ09wq88L1E8/view?usp=sharing GSoC'20 Phase-II Report] | |||
* [https://drive.google.com/file/d/1nBbAbasn-awyiGloveNo6Ot1sKVymnKA/view?usp=sharing GSoC'20 Phase-I Report] | * [https://drive.google.com/file/d/1nBbAbasn-awyiGloveNo6Ot1sKVymnKA/view?usp=sharing GSoC'20 Phase-I Report] |
Latest revision as of 17:47, 31 August 2020
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_)