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 ...
  1. Etherbone: eb-ls dev/wbm0
  2. White Rabbit: eb-mon -v dev/wbm0
  3. saftlib: saft-ctl bla -fijs
  4. ECA: saft-ctl bla -fvx snoop 0x0 0x0 0 (if nothing happens, inject an message locally)

Check Installation

Driver, Etherbone and Tools

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
Topic revision: r11 - 08 Nov 2023, DietrichBeck
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback