|
|
# FPGA Configuration Space Specification
|
|
|
|
|
|
This project is an effort to introduce a configuration space
|
|
|
specification for Wishbone peripherals that allows them to be
|
|
|
auto-probed by operating system drivers.
|
|
|
specification for
|
|
|
internal FPGA buses (interconnects, crossbars). Our initial target is
|
|
|
Wishbone,
|
|
|
but the specificationis generic.
|
|
|
|
|
|
The following are currently available in the project repository:
|
|
|
The aim is being able to enumerate the cores that are live in the
|
|
|
current
|
|
|
fpga binary, either from the host computer or from the internal
|
|
|
soft-core
|
|
|
CPU in the FPGA itself.
|
|
|
|
|
|
- Specification
|
|
|
- Wishbone Simulation
|
|
|
The current specification is already in use in some of our designs.
|
|
|
|
|
|
## Specification
|
|
|
|
|
|
The initial draft of the specification is available as a PDF in the
|
|
|
project repository. You can download the latest version
|
|
|
[here](https://www.ohwr.org/project/fpga-config-space/blob/master/sdwb.pdf).
|
|
|
The specification is available in PDF format,together with the header
|
|
|
file from [here](https://www.ohwr.org/project/fpga-config-space/wikis/Documents/SDB-specification-June-2012)
|
|
|
It has been built from the repository of this project, so you can get
|
|
|
the git tree instead and run Latex on it.
|
|
|
|
|
|
## Wishbone Simulation
|
|
|
## Code
|
|
|
|
|
|
The Wishbone simulation is a set of drivers that allow for the
|
|
|
simulation of the configuration space structures and allow for
|
|
|
understanding how the driver model will work. The simulation currently
|
|
|
consists of:
|
|
|
The implementation as VHDL is part of the respective projects
|
|
|
(currently, Etherbone and White Rabbit Core).
|
|
|
|
|
|
- **Wishbone Bus Driver** This creates a Linux Wishbone bus (can be
|
|
|
seen under */sys/bus/wb*).
|
|
|
- **Wishbone Peripheral Drivers** These fake Wishbone drivers simply
|
|
|
register to specific Wishbone ID's and print debug messages when
|
|
|
loaded.
|
|
|
- **Spec Board Driver** This is a fake PCI driver for the spec board
|
|
|
that takes a firmware file (representing the Wishbone address space)
|
|
|
and registers any Wishbone peripherals it finds.
|
|
|
|
|
|
You can find the code for the simulation
|
|
|
[here](https://www.ohwr.org/project/fpga-config-space/tree/master/simulation).
|
|
|
You can download binary versions of the drivers
|
|
|
[here](https://www.ohwr.org/project/fpga-config-space/uploads/d3da0ea576cb42194d9b1e375351108b/wbonesim.tgz) (not
|
|
|
recommended as it is kernel-version-specific and may be outdated with
|
|
|
respect to the repository).
|
|
|
|
|
|
## Links
|
|
|
|
|
|
[SDWB Specification
|
|
|
(PDF)](https://www.ohwr.org/854)
|
|
|
[Wishbone Simulation
|
|
|
(Source)](https://www.ohwr.org/project/fpga-config-space/tree/master/simulation)
|
|
|
Core for the Linux kernel (both as a bus driver and a file system
|
|
|
driver) is being written. In the repository
|
|
|
you find the initial work that has been done months ago as a proof of
|
|
|
concept.
|
|
|
|
|
|
## Status
|
|
|
|
... | ... | @@ -65,6 +51,10 @@ respect to the repository). |
|
|
<td>10-05-2011</td>
|
|
|
<td>Added code for wishbone simulator (source code available in Repository or Files section)</td>
|
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td>21-06-2012</td>
|
|
|
<td>After long discussions, the specification is published</td>
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
</table>
|
|
|
|