White Rabbit PTP Core Software
White Rabbit PTP Core(WRPC) Software runs on a Lattice Mico 32 soft-core processor implemented as part of WRPC Gateware. 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 (If you have problems with 32bit-host version of cross-compiler, please check FAQ for 64bit-host version of lm32 cross-compiler). Detailed building instructions can be found in the documentation.
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 daemon, but we are currently testing and will start using soon new 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)
- IPv4, ICMP, Bootp, ARP - optional protocols' implementation needed to support 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
Fig1: White Rabbit PTP Core Software structure*
- Gateware and Software release of White Rabbit PTP Core v2.0
- White Rabbit PTP Core User's Manual describes how to build and run the Core.
- Grzegorz Daniluk - CERN
Grzegorz Daniluk, 18 September 2013