Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add drv/{fpga-api, fpga-devices, fpga-server} #511

Merged
merged 6 commits into from
May 27, 2022
Merged

Add drv/{fpga-api, fpga-devices, fpga-server} #511

merged 6 commits into from
May 27, 2022

Conversation

arjenroodselaar
Copy link
Contributor

@arjenroodselaar arjenroodselaar commented Apr 22, 2022

This diff is a first pass for a somewhat generic FPGA driver and server which
allows other tasks in the system to manage actions such as loading bitstreams.
In addition the server task exposes a register interface abstraction for a SPI
peripheral running as part of the bitstream application.

These two combined interfaces if you will, allow a process such as a sequencer
to manage both the device and interact with application logic through a single
entry point.

The driver is generic enough that in addition to the ECP5 implementation found
in this diff, we can support the iCE40 and possibly future devices.

The intend is for the FPGA server to not use a separate SPI driver if not required
reduce system resources by absorbing the functionality needed to handle the
SPI peripheral. This work requires some refactoring to expose more of the SPI
server functionality as a library and this will be done in a follow-up.

Note that the ECP5 driver is split into a top and bottom implementation.
Currently only one bottom implementation is provided, but a second (involving
transparent use of a SPI mux and GPIO extend) is in the works.

Finally, Hiffy/Humility support for interacting with an FPGA will be provided in
a follow up diff.

@arjenroodselaar arjenroodselaar force-pushed the fpga branch 3 times, most recently from a58d5f2 to bfcae0a Compare May 17, 2022 17:49
This diff is a first pass for a somwhat generic FPGA driver and server which
allows other tasks in the system to manage actions such as loading bitstreams.
In addition the server task exposes a register interface abstraction for a SPI
peripheral running as part of the bitstream application.

These two  combined interfaces if you will, allow a process such as a sequencer
to manage both the device and interact with application logic through a single
entry point.
@arjenroodselaar arjenroodselaar merged commit c27cb6e into master May 27, 2022
@arjenroodselaar arjenroodselaar deleted the fpga branch May 27, 2022 23:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants