How-To: Check a FEC
Introduction
This How-To describes how to check a FEC works properly with respect to features provided by the GMT.
Test Plan
This is just a start ...
- Etherbone:
eb-ls dev/wbm0
- White Rabbit:
eb-mon -v dev/wbm0
- saftlib:
saft-ctl bla -fijs
- ECA:
saft-ctl bla -fvx snoop 0x0 0x0 0
(if nothing happens, inject an message locally)
Check Installation
ssh to the FEC. Use
eb-ls
to check that the stack of the GMT (FPGA, driver, wishbone driver, Etherbone) is working properly up to Etherbone.
[ruth@scuxl0815 ~]# eb-ls dev/wbm0
In case
eb-ls
throws an error at you, try to figure out what went wrong by checking boot messages.
- locally:
- use
dmesg
- check for drivers
wishbone
and pcie_wb
- remotely with Diagnostic Logging using 'openseach' (use s.th. like 'host:scuxl0815' as search string)
Saftlib
ssh to the FEC. Use some
saft-ctl
to check the full stack of the GMT (FPGA, drivers, Etherbone, dbus, saftlib) is working properly.
[ruth@scuxl0815 ~]# saft-ctl bla -fijs
In case
saft-ctl
throws errors at you
- check that the stack works up to Etherbone (see above).
- check log file -> /tmp/saftd.log
- If things up to Etherbone work, try to figure out what the problem might be
- on the FEC, use
ps
to check that "dbus-daemon" and "saftd" are running
- if not, check boot messages locally with "dmesg" or remotely with Diagnostic Logging
Versioning
The versions of gateware, etherbone (and drivers) and saftlib must match the ones of the
relevant release.
-
eb-info dev/wbm0
or saft-ctl bla -fk
: gateware
-
eb-mon -e dev/wbm0
: Etherbone (typically, drivers are rolled out together with Etherbone)
-
saft-ctl bla -fi
: saftlib
Check Functionality
Saftlib and ECA
Use
saft-ctl
to test the functionality of ECA and saftlib.
- open a 1st ssh session to the FEC and start snooping to all events
saft-ctl bla -fvx snoop 0x0 0x0 0
. In case no timing messages are received from a a remote data master, do the following
- open a 2nd ssh session to the FEC and inject a timing message to the input of the ECA
saft-ctl bla -fp inject 0xffff000000000000 0x0 0
- verify an action has been triggered in the 1st session
White Rabbit
ssh to the FEC. Use
eb-mon
to check a few things of White Rabbit.
[ruth@scuxl0815 ~]# eb-mon -v dev/wbm0
EB version / EB source: etherbone 2.1.2 (v2.1.2): Jun 1 2021 16:58:15 / built by ahahn on Nov 1 2021 09:31:23 with asl743.acc.gsi.de running CentOS Linux release 7.9.2009 (Core)
WR_time - host_time [ms]: 36991.744 // difference between timestamp of White Rabbit and host system. Should match the number of leap seconds * 1000.
Current TAI: 2023-11-08 13:35:15 GMT (242717 us), 1699450515242717 us // data time (fractional part of seconds [us]), time since 1 January 1970 [us]
Sync Status: TRACKING // White Rabbit synchronization status, here "track phase"
MAC: 00267b0003a8 // MAC of White Rabbit interface
Link Status: LINK_UP // link status of White Rabbit interface
IP: 192.168.160.106 // IP of White Rabbit interface, an invalid ip is marked by '192.168.000.100'
FPGA uptime [h]: 0000001032.32 // uptime since last 'boot' of FPGA image, this might be different from the uptime of the host system
FPGA build type: fallout-v6.1.2 // version of FPGA image
</verbaim>
-- Main.DietrichBeck - 08 Nov 2023