|
|
# Software for White Rabbit PTP Core
|
|
|
|
|
|
UNDER
|
|
|
CONSTRUCTION
|
|
|
|
|
|
![](/uploads/1c8f0ed88c1ede121e207ee519c029e8/wrpc-sw.png)
|
|
|
UNDER CONSTRUCTION
|
|
|
|
|
|
White Rabbit PTP Core(WRPC) Software runs on a Lattice Mico 32 soft-core
|
|
|
processor implemented as part of [WRPC
|
|
|
Gateware](https://www.ohwr.org/project/wr-cores/wikis/Wrpc-core). It is
|
|
|
responsible for controlling all HDL modules and performing WR time
|
|
|
synchronization in WR Slave, WR Master or WR Grandmaster mode. To
|
|
|
compile the software you need to download the [LatticeMico32 cross
|
|
|
compiler](https://www.ohwr.org/project/wr-cores/uploads/a2e8eeba448fbc8d580e68004e6f6c7f/lm32.tar.xz)
|
|
|
|
|
|
The structure of WRPC software is presented in figure 1. It consists of:
|
|
|
|
|
|
- *WR PTP engine* - PTPv2 daemon with WR extensions modified to run on
|
|
|
simple processor without operating system. Offialy used and
|
|
|
supported now is
|
|
|
[ptp\_noposix](https://www.ohwr.org/project/ptp-noposix) daemon, but
|
|
|
we are currently testing and will start using soon new
|
|
|
[ppsi](https://www.ohwr.org/project/ppsi) daemon. At the moment user
|
|
|
can select which engine to use at the compilation time (by default
|
|
|
*ptp noposix*).
|
|
|
- *t24p calibrator* - automated calibration procedure for measuring
|
|
|
t2/t4 phase transition value
|
|
|
- *SoftPLL* - software implementation of PLLs
|
|
|
- *User Shell* - basic shell provides commands for configuring and
|
|
|
monitoring the operation of the WRPC ([list of shell
|
|
|
commands](https://www.ohwr.org/project/wr-cores/wikis/Wrpc-shell))
|
|
|
- *IPv4, ICMP, Bootp, ARP* - optional protocols' implementation needed
|
|
|
to support [Etherbone
|
|
|
core](https://www.ohwr.org/project/etherbone-core) (by default
|
|
|
disabled)
|
|
|
- *HDL/device drivers* - low level functions for accessing HDL modules
|
|
|
of WRPC Gateware and devices on-board:
|
|
|
- *EEPROM* - read/write operations through I2C or 1-Wire
|
|
|
(depending on build configuration) on EEPROM storing SFP
|
|
|
database and init script or EEPROM inside the SFP transceiver
|
|
|
- *DS1820* - reading temperature of the board from DS1820 digital
|
|
|
thermometer through 1-Wire interface
|
|
|
- *Syscon* - driver for *SysCon* HDL module, providing access to
|
|
|
internal timer and GPIO lines for driving LEDs or bitbanging I2C
|
|
|
interfaces
|
|
|
- *PPS-gen* - driver for *PPSgen* HDL module generating 1-PPS
|
|
|
signal aligned with the WR time and storing seconds/nanoseconds
|
|
|
counters for keeping current WR time
|
|
|
- *Pfilter* - instructions programmed into packet filter inside
|
|
|
the *Endpoint* describing the rules for various classes based on
|
|
|
Ethernet frame header content
|
|
|
- *Endpoint* - driver for *Endpoint* HDL module which is the
|
|
|
implementation of Ethernet MAC
|
|
|
- *Minic* - driver for Mini Network Interface Controller
|
|
|
responsible for sending and receiving Ethernet frames
|
|
|
- *UART* - driver for physical and virtual UART through which user
|
|
|
interacts with WR PTP Core
|
|
|
shell
|
|
|
|
|
|
![](/uploads/1c8f0ed88c1ede121e207ee519c029e8/wrpc-sw.png)
|
|
|
*Fig1: White Rabbit PTP Core Software structure**
|
|
|
|
|
|
-----
|
|
|
|
... | ... | @@ -46,6 +98,8 @@ CONSTRUCTION |
|
|
|
|
|
-----
|
|
|
|
|
|
Grzegorz Daniluk, 18 September 2013
|
|
|
|
|
|
|
|
|
|
|
|
### Files
|
... | ... | |