White Rabbit devices calibration
This page is meant to provide coarse calibration values for the official
releases of
WR Switch and WR PTP Core firmware. You can use them as defaults for
matching
hardware and gateware version. However, to achieve the best possible
synchronization
results you should perform the full calibration
procedure for your
WR hardware.
Short introduction about the calibration problem
White Rabbit link established between two devices is characterized with
hardware delays
and fiber propagation latencies presented in figure
1.
Figure1: White Rabbit link delay model*
Each WR Master and WR Slave has some constant transmission and reception delays:
- Δ TXM - transmission delay of WR Master
- Δ RXM - reception delay of WR Master
- Δ TXS - transmission delay of WR Slave
- Δ RXS - reception delay of WR Slave
They are the summed result of SFP transceiver’s, PCB traces’ and
electronic components’
delays as well as the delays inside FPGA chip. Additional reception
delay is also caused
on both sides by aligning recovered clock signal to the inter-symbol
boundaries of data
stream. It is called bitslide value and is marked in figure 1 as:
- ε M - bitslide of Master's RX path
- ε S - bitslide of Slave's RX path
Except from hardware delays, packets transmitted in fiber are affected
with propagation
latencies in both directions:
- δ MS - Master-to-Slave fiber latency
- δ SM - Slave-to-Master fiber latency
Those fiber propagation latencies are not equal since different light
wavelengths are used
to communicate simultaneously in both directions using single fiber
(Wavelength Division
Multiplexing). For estimating fiber asymmetry White Rabbit uses α
parameter, which
is constant for given wavelengths and type of fiber.
WR users should perform the WR Calibration
Procedure before deploying WR
hardware to determine correct values of delays and fiber asymmetry
factor.
Default calibration values for WR Switch
Tables below contain the default calibration values for latest stable
releases of the WR Switch.
To deploy the values from tables below you should get access to the WR
Switch shell. You can do
that by either using USB-UART management port in the front panel, or
SSH-ing through the
management Ethernet port.
If you run an old firmware version (< 4.0) the filesystem of the switch
is mounted read-only,
this means you have to remount it before editing the config files:
wrs# wrfs_mnt.sh rw
and go back to read-only mode once you are done with your changes:
wrs# wrfs_mnt.sh ro
Don't forget to reboot the switch to apply new calibration parameters:
wrs# reboot
You can edit /wr/etc/sfp_database.conf and /wr/etc/wrsw_hal.conf
files using vi
editor. Please use values from the tables below depending on the
hardware and gateware version
you use. However, bear in mind that those numbers are valid only for
release binaries you
can download from ohwr.org. If you re-synthesize the gateware you have
to perform calibration
procedure to find new values.
/wr/etc/sfp_database.conf
SFP | Δ TX | Δ RX | α |
AXGE-1254-0531 | 0 | 0 | 2.62586993045535e-04 |
AXGE-3454-0531 | 0 | 0 | -2.68030058608001e-04 |
/wr/etc/wrsw_hal.conf
Port No. | Hardware version | Firmware version | Δ TX | Δ RX |
1 | 3.3 | 3.3 | 225030 | 225030 |
2 | 3.3 | 3.3 | 225177 | 225047 |
3 | 3.3 | 3.3 | 225297 | 225249 |
4 | 3.3 | 3.3 | 225456 | 225368 |
5 | 3.3 | 3.3 | 225586 | 226196 |
6 | 3.3 | 3.3 | 225735 | 226385 |
7 | 3.3 | 3.3 | 225950 | 226626 |
8 | 3.3 | 3.3 | 226064 | 226626 |
9 | 3.3 | 3.3 | 226214 | 226758 |
10 | 3.3 | 3.3 | 226396 | 226994 |
11 | 3.3 | 3.3 | 226647 | 227333 |
12 | 3.3 | 3.3 | 226814 | 227538 |
13 | 3.3 | 3.3 | 226919 | 227625 |
14 | 3.3 | 3.3 | 227110 | 227840 |
15 | 3.3 | 3.3 | 227367 | 228293 |
16 | 3.3 | 3.3 | 227565 | 228339 |
17 | 3.3 | 3.3 | 227650 | 228538 |
18 | 3.3 | 3.3 | 227869 | 228735 |
Default calibration values for White Rabbit PTP Core running on SPEC board
WR PTP Core stores Δ TX, Δ RX and α values in SFP
database stored in EEPROM.
To deploy calibration values from table below you have to access WRPC
Shell through USB-UART or
VUART (please check the latest WRPC release
manual for more
information).
First thing to do is clearing existing SFP database:
wrc# sfp erase
Then you can add each SFP with its parameters using sfp add shell command:
wrc# sfp add <SFP part number> <deltaTx> <deltaRx> <alpha>
SFP database for SPEC
The values from the table below can be used with official release binary of WRPC reference design.
HW version | FW version | SFP | Δ TX | Δ RX | α | wrc# cmd; |
SPEC v4 | wrpc-v2.1 | AXGE-1254-0531 | 180707 | 148323 | 72169888 | sfp add AXGE-1254-0531 180707 148323 72169888 |
SPEC v4 | wrpc-v2.1 | AXGE-3454-0531 | 180707 | 148323 | -73685416 | sfp add AXGE-3454-0531 180707 148323 -73685416 |
If you are using the wr-nic release (included in the WR Starting Kit) please use the value in the table below:
HW version | FW version | SFP | Δ TX | Δ RX | α | wrc# cmd; |
SPEC v4 | wr-nic-v2.0 | AXGE-1254-0531 | 177648 | 150988 | 68930293 | sfp add AXGE-1254-0531 177648 150988 68930293 |
SPEC v4 | wr-nic-v2.0 | AXGE-3454-0531 | 181210 | 154818 | -66901714 | sfp add AXGE-3454-0531 181210 154818 -66901714 |
11 June 2015, Grzegorz Daniluk, Benoit Rat