|
|
|
# Spec software
|
|
|
|
|
|
|
|
There is little information here in the wiki, because I prefer
|
|
|
|
publishing information
|
|
|
|
within the software package. This ensures that you always have the
|
|
|
|
documentation that
|
|
|
|
refers to exactly the code you are running.
|
|
|
|
|
|
|
|
## Version 1
|
|
|
|
|
|
|
|
Version 1 of the package has never been tagged, but the installed
|
|
|
|
"fine-delay" cards rely
|
|
|
|
on the initial implementation of spec-sw. Such code had a completely
|
|
|
|
different split of
|
|
|
|
modules and a different policy to load gateware binaries. That version
|
|
|
|
is "*unofficially 1.0*",
|
|
|
|
and the latest commit with that setup is tagged
|
|
|
|
"`spec-sw--old-generation`"
|
|
|
|
|
|
|
|
## Version 2.0
|
|
|
|
|
|
|
|
Version 2.0 has been released on 2012-09-26. It is based on the *fmc
|
|
|
|
bus* idea: the *carrier*
|
|
|
|
kernel module (i.e., the SPEC driver in this case) registers a device in
|
|
|
|
the *fmc* bus. A *driver*
|
|
|
|
can declare it is willing to control that device; when that happens the
|
|
|
|
bus controller calles
|
|
|
|
its *probe* function.
|
|
|
|
|
|
|
|
The idea and implementation is described in the [fmc-bus
|
|
|
|
manual](https://www.ohwr.org/project/spec-sw/uploads/4bc1bbd92a3f4553dcde33e8e2eab4b1/fmc-bus-2012-09-16.pdf)
|
|
|
|
|
|
|
|
Documentation for the SPEC driver and sub-modules (version 2.0) is
|
|
|
|
[here](https://www.ohwr.org/project/spec-sw/uploads/0610d8a9cccf557d6a64bbea8f7ceade/spec-sw-2012-09-26-v2.0.pdf)
|
|
|
|
.
|
|
|
|
A dump of the text version of the manual is also in
|
|
|
|
[spec-sw-2.0-manual](spec-sw-2.0-manual) so search engines can look in
|
|
|
|
it.
|
|
|
|
|