Configure a Data Master
A data master in the timing starter kit is a normal Linux PC connected to the white rabbit switch. It must run a BOOTP server to provide FECs with IP addresses and can control those FECs using Etherbone. You will probably need a second network card which is connected to the white rabbit switch.
You should configure your second network card with an address in a private network. The addresses 10.x.y.z are reserved for use inside an organization. For example, you can choose 10.0.0.42 as the address for your data master and set the netmask to 255.0.0.0. The exact details of configuring a static IP address vary between linux distributions. For debian/ubuntu these lines in /etc/network/interfaces do the trick:
auto eth2
iface eth2 inet static
address 10.x.y.z # The IP you choose for your data master
netmask 255.0.0.0
To configure a BOOTP server, one approach is to install the "dnsmasq" package. Then you add these lines to the /etc/dnsmasq.conf file:
interface=ethX # Set ethX to the name of your second network card attached to the WR switch
listen-address=10.x.y.z # Set 10.x.y.z to the IP address you choose for your data master
dhcp-range=10.0.0.1,10.254.254.254,12h
# SPEC cards:
dhcp-host=8:0:30:61:a8:0e,10.2.0.1 # Timing demo SPEC 1
dhcp-host=8:0:30:62:1d:a1,10.2.0.2 # Timing demo SPEC 2
You must create a dhcp-host entry per FEC card you attach to the switch. You can find their MAC address by typing "mac" on the White-Rabbit-console.
Once you've setup dnsmasq, start it up and you should see your FEC devices report:
Sending BOOTP request...
Discovered IP address!
You can read the IP address they got using the "ip" command.
Now that your data master is configuring FEC devices, you need to configure the data master to control them. Simply follow the Building-from-Sources directions to install the Etherbone library on your system. Once it is installed, you can confirm control of remote devices using:
terpstra@belapc060:~$ eb-ls udp/10.0.0.1
BusPath VendorID Product BaseAddress(Hex) Description
1 0000000000000651:eef0b198 0 WB4-Bridge-GSI
1.1 000000000000ce42:66cfeb52 0 WB4-BlockRAM
1.2 0000000000000651:eef0b198 20000 WB4-Bridge-GSI
1.2.1 000000000000ce42:ab28633a 20000 WR-Mini-NIC
1.2.2 000000000000ce42:650c2d4f 20100 WR-Endpoint
1.2.3 000000000000ce42:65158dc0 20200 WR-Soft-PLL
1.2.4 000000000000ce42:de0d8ced 20300 WR-PPS-Generator
1.2.5 000000000000ce42:ff07fc47 20400 WR-Periph-Syscon
1.2.6 000000000000ce42:e2d13d04 20500 WR-Periph-UART
1.2.7 000000000000ce42:779c5443 20600 WR-Periph-1Wire
1.2.8 0000000000000651:68202b22 20700 Etherbone-Config
2 0000000000000651:eef0b198 100000 WB4-Bridge-GSI
2.1 0000000000000651:8752bf44 140000 GSI_ECA_UNIT
2.2 0000000000000651:10051981 180000 GSI_TM_LATCH
At this point, you probably want to Read-the-current-time, Schedule-events, or Capture-timestamps.