How-To: Installation of a Timing Receiver

THIS HOWTO IS DEPRECATED

Introduction

Installation of a timing receivers should be easy and straight-forward. The physical installation is form factor specific and the usual procedures apply (how to mount of a PCIe card in a PC is not described here). The concept of the FPGA gateware of timing receiver nodes is based on using a Wishbone bus architecture that allows accessing the functionality of the various IP cores instantiated on the FPGA. This how-to describes the steps that are required to access the timing receiver from a user-land application in a Linux operating system.

Installation of Drivers and Software

At present the following the following host-bus bridges are supported. The installation of drivers and software is described here.

The SCU is special, since it's operating system is maintained by the CSCOIN team. Etherbone and related tools are installed via nfs.init, maintained by the CSCOTG team. More information is available here.

Installation of Hardware

(Disconnect and) connect your hardware. Check, if the hardware is detected via "dmesg" and "lsmod" - look for "wish". If not, try "depmod -a" or power cycling your computer. Please check the documentation of the relevant release.

Verification

Try
eb-ls <protocol/host/port>
in most cases "port" is not required and "protocol/port" may have the following values
  • USB: "dev/ttyUSB0" - this is available on all timing receivers at GSI.
  • PCIe or VME: "dev/wbm0"
  • Ethernet: "udp/192.2.3.4"
Here is an example for USB:
lxyz99:~> eb-ls dev/ttyUSB0
belnbg024:~> eb-ls dev/ttyUSB0
BusPath        VendorID         Product   BaseAddress(Hex)  Description
1              0000000000000651:eef0b198               400  WB4-Bridge-GSI     
1.1            0000000000000651:eef0b198               600  WB4-Bridge-GSI     
1.1.1          0000000000000651:10050082               700  IRQ_ENDPOINT_010   
1.2            ---
1.3            ---
2              0000000000000651:eef0b198             40000  WB4-Bridge-GSI     
2.1            000000000000ce42:66cfeb52             40000  WB4-BlockRAM       
2.2            0000000000000651:eef0b198             60000  WB4-Bridge-GSI     
2.2.1          000000000000ce42:ab28633a             60000  WR-Mini-NIC        
2.2.2          000000000000ce42:650c2d4f             60100  WR-Endpoint        
2.2.3          000000000000ce42:65158dc0             60200  WR-Soft-PLL        
2.2.4          000000000000ce42:de0d8ced             60300  WR-PPS-Generator   
2.2.5          000000000000ce42:ff07fc47             60400  WR-Periph-Syscon   
2.2.6          000000000000ce42:e2d13d04             60500  WR-Periph-UART     
2.2.7          000000000000ce42:779c5443             60600  WR-Periph-1Wire    
2.2.8          0000000000000651:68202b22             60700  Etherbone-Config   
3              0000000000000651:10041000             80000  CB_LM32_CLUSTER    
3.1            0000000000000651:10040086             80000  CLUSTER_INFO_ROM   
3.2            000000000000ce42:66cfeb52             84000  WB4-BlockRAM       
3.3            0000000000000651:10040202             80100  LOAD_MANAGER       
3.4            ---
3.5            ---
3.6            0000000000000651:eef0b198             80200  WB4-Bridge-GSI     
3.6.1          0000000000000651:10050082             80300  IRQ_ENDPOINT_010   
3.7            0000000000000651:eef0b198             c0000  WB4-Bridge-GSI     
3.7.1          000000000000ce42:66cfeb52             e0000  WB4-BlockRAM_010   
4              0000000000000651:2d39fa8b               800  GSI:BUILD_ID ROM   
5              0000000000000651:5cf12a1c           1000000  SPI-FLASH-16M-MMAP 
6              0000000000000651:3a362063                 0  FPGA_RESET         
7              0000000000000651:00000815           2000000  Etherbone_Master   
8              0000000000000651:10051981               100  GSI_TM_LATCH_V2    
9              0000000000000651:8752bf44                80  ECA_UNIT:CONTROL   
10             0000000000000651:8752bf45          7ffffff0  ECA_UNIT:EVENTS_IN 
11             0000000000000651:9bfa4560                40  ECA_UNIT:ACTION_QUE
12             0000000000000651:4d78adfd                10  GSI:IODIR_HACK     
13             0000000000000651:b77a5045               200  SERIAL-LCD-DISPLAY 
14             ---
15             ---
16             ---
17             ---
18             ---
19             ---
Congratulations!

White Rabbit Console

The Etherbone Way
The GSI timing team has developed the tool eb-console which uses Etherbone. Try eb-console <proto/host/port>.

The White Rabbit Way
The USB interface on all timing receivers supports the White Rabbit console via the same cable in parallel to the USB-Wishbone driver.Even without any installation of additional drivers, a standard Linux PC should support a White Rabbit console via USB.
 minicom -D /dev/ttyACM0

Common Problems

Incorrect Protocol
eb-ls /dev/wbm0 does not work, as the correct format is eb-ls <protocol/host/port> . Try eb-ls dev/wbm0 instead (remove the leading slash).

Missing Privileges
eb-ls <protocol/host/port> does not work: failed to open Etherbone device: system failure . This is due to missing privileges.
  • Check /dev/ttyUSB0, /dev/wbm0: The user must be member of the wishbone group.
  • In case of a standard local GSI desktop machine administered by the IT department, becoming a member of the wishbone group requires contacting the IT department.
  • Hack
    • (not boot-safe) change permissions of the relevant file such as /dev/wbm0
    • use sudo

-- DietrichBeck - 26 Jun 2015
Topic revision: r17 - 19 Jun 2019, 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