The meta-spec layer
The Simple PCIe FMC Carrier (SPEC) can be deployed into a x86 or x86-64 Linux machine to be used as a White Rabbit interface card or a general purpose FMC carrier with gigabit transceiver support. The usual way to go while in development, relies in using a full-blown Linux distribution for compiling the software, loading the drivers... so the host acts as a workstation.
But the real point is that, in an actual on-the-field deployment, the SPEC host is not going to act as a workstation anymore, but as a purpose-specific embedded computer instead. In order to cope with this situation, is desirable to use an embedded Linux toolchain, so that we can generate/reproduce a full runtime image from the software sources at any time.
The meta-spec project contains a Yocto Project / OpenEmbedded meta layer providing the main functionalities (software, kernel modules, reconfigurable FPGA bitstream...) associated with the SPEC board. In this way, by adding the features in this layer to an x86 or x86-64 Yocto Project image, it's very easy to build production grade Linux runtimes with full out-of-the-box SPEC / White Rabbit support.
Features
The meta-spec layer provides different features obtained from different SPEC support projects. In this way, the following features / recipes provides all the component required to run the demos from the Getting Started with the SPEC, SPEC Software Support and White Rabbit Starting Kit projects.
recipes-software
This collection provides the required runtime components for executing the SPEC Software Support and White Rabbit Starting Kit demos.
Note:* The spec-sw version that is being used in this layer release is the 2014-02.
spec-sw
It provides all the kernel modules and userspace tools required included in the SPEC Software Support projects -- including the White Rabbit Network Interface Card.
The userspace tools binaries are deployed at /usr/bin/
:
/usr/bin/fmc-dio-eeprom.bin
/usr/bin/spec-cl
/usr/bin/specmem
/usr/bin/spec-fwloader
/usr/bin/spec-vuart
/usr/bin/wr-dio-agent
/usr/bin/wr-dio-pps
/usr/bin/wr-dio-cmd
/usr/bin/wr-dio-ruler
/usr/bin/stamp-frame
The FMC-Bus, SPEC, WR-NIC kernel modules are installed into extra
kernel modules and can be loaded by just using modprobe
:
extra/fmc.ko
extra/fmc-chardev.ko
extra/fmc-fakedev.ko
extra/fmc-trivial.ko
extra/fmc-write-eeprom.ko
extra/wr-nic.ko
extra/spec.ko
spec-library
It provides an additional dynamic library designed to allow general purpose SPEC control from userspace. The library is deployed in:
/usr/lib/libspec.so
spec-init
This provides the golden gateware initial bitstream binary. The file can be found at:
/lib/firmware/fmc/spec-init.bin
nic-bitstream
This provides the White Rabbit Network Interface Card gatewate bitstream binary. The file can be found at:
/lib/firmware/fmc/wr_nic_dio.bin
nic-wrc
This provides the program binary for the LM32 soft processor acting as a White Rabbit Core network controller from inside the FPGA. The file can be found at:
/lib/firmware/fmc/wr_nic_dio-wrc.bin
recipes-quickstart
This collection includes the different components required to build an embedded Linux runtime in which the Getting Started with the SPEC tutorial demos can be executed just out-of-the-box.
demo-python
This includes the three different python files included in the SPEC getting started demos. These are a package acting as an interface between Python and the SPEC dynamic library and a couple of demos controlling the SPEC user interface and an optional DIO FMC card. These files are deployed at:
/lib/firmware/fmc/python/spec_libc.py
/lib/firmware/fmc/python/spec_demo_user.py
/lib/firmware/fmc/python/spec_demo_user_dio.py
demo-user
This provides the bitstream binary required to run the SPEC getting started demo controlling the SPEC user interface. The binary is installed in:
/lib/firmware/fmc/spec_demo_user.bin
demo-dio
This provides the bitstream binary required to run the SPEC getting started demo controlling the SPEC user interface and the optional DIO FMC card. The binary is installed in:
/lib/firmware/fmc/spec_demo_dio.bin
recipes-runtime
This collection features different images that includes all the necessary components to support all of the SPEC related stuff.
spec-image-minimal
This image includes a minimal runtime featuring basic network functionality, including ssh server, and all the SPEC stuff.
spec-image-sato
This image features a graphic X11/sato GUI interface in addition to the basic network and SPEC support.
Contacts
Status
Date | Event |
---|---|
10-11-2014 | Project published. |
10 November 2014