TWiki> LHCb Web>LHCbCalo>LHCbCaloTell1 (revision 18)EditAttachPDF

HOW TO TELL1 board [information for the calo piquet]

This page contains the information about the tell1 boards (DAQ) for the calo piquet.

The Basics

The Tell1 boards are part of the DAQ. These boards:

  • collect the data sent by the CROC via optical fibers,
  • process these data in the PP-FPGA (zero suppression (PSSPD) or compression (EHCAL)),
  • merge all links in MEPs (Multi Event Packets) in the Synclink FPGA,
  • send the MEPs to the Event Builder via the network in IP frames.

Data flow: [CROC --->] Optical Receivers (ORx) ---> PP-FPGA ---> Synclink FPGA ---> Gigabit Ethernet (GBE) [---> Event Builder]

tell1.png

  • Optical mezzanine (ORx): Optical fibbers from CROCs [only up to 8 on 12 links are used per ORx]
  • Credit Card PC (CCPC): Connection with ECS
  • PP-FPGA: User data compression
  • Synclink FPGA: Gathers PP-FPGA information and Build Multiple Event Packet (MEP)
  • Giga Bit Ethernet (GBE): Transmits MEP to Event Builder
  • TTC Receiver: Clock, L0 Trigger, Reset (L0evID – BX-ID) and DAQ IP destination address

Rack location

The tell1 boards for the calorimeters are located in D3 barrack:

  • rack D3B01L for PSTELL1 (slots 2 to 9) and HCTELL1 (slots 10 to 17) [16 tell1 boards, names: pstell0x (x=1 to 8), hctell0x (x=1 to 8)]
  • rack D3B02L for ECTELL1 C-side [13 boards, names: ectellxx (xx=01 to 13)]
  • rack D3B02U for ECTELL1 A-side [13 boards, names: ectellxx (xx=14 to 26)] [ IMPORTANT: two L0calo tell1 boards are also in this rack ]

D3barrack.png

Tell1 PVSS Project

Tell1 CU

Overview tab

This panel summarizes the information about the status of the tell1.

TELL1 overall status:

Becomes Red Action
CCPC go to Board Status tab (CCPC: check memory and CPU usage)
TTC go to TTC & FlowCtrl Mon tab (expert panel)
ORx go to ORx tab
GBE go to GBE tab
Process mon go to Proc. Mon tab (expert panel)
Throttles go to TTC & FlowCtrl Mon and Buffer Mon tabs (expert panels)
Memory mon go to Buffer Mon tab (expert panels)

Versions:

Server Version: if 0-0-0, it may be because of ccserv dead [see below]

Overview_PSSPD.png

Board Status tab

BoardStatus_PSSPD.png

ORx tab

ORx_PSSPD.png

GBE tab

GBE.png

TTC & FlowCtrl Mon. tab

TTC_PSSPD.png

Proc. Mon. tab

ProcMon_PSSPD.png

Buffer Mon. tab

BufferMon_PSSPD.png

PROBLEMS?

The main problems you may encounter are:

  • infrastructure (ccserv dead, PVSS problems, etc.)
  • data process (corrupted or missing events, Destination IP from ODIN, overflow Buffers, etc.) [these problems will most of the time require an expert]

HOWTO know the status/start/stop of a PVSS TELL1 project

PVSS Tell1 projects are running on (linux machine):

  • hcdaq01 for PSTELL1 and HCTELL1
  • ecdaq01 for ECTELL1

The projects are in "autostart" mode and are handled under Linux as a service [/etc/init.d/pvss_mp {start|stop|restart|status}]

After logging on either hcdaq01 or ecdaq01:

  • to know the status of a project: execute "sudo /sbin/service pvss_mp status" [can be "running" or "stopped" or "unknown"]
  • to restart a project: execute "sudo /sbin/service pvss_mp restart"
  • to stop a project: execute "sudo /sbin/service pvss_mp stop" (BEWARE: you must know what you are doing!)

FSM dead?

Generally after (re)starting a PVSS project, FSM is in a DEAD status.

  • To put it in a "NOT READY" status, you need to run a DEN (Device Editor and Navigator)
  • Then go to "FSM" tab and finally press "Stop All" followed by "Start/Restart All".

To run a DEN, you can use the shortcuts available in (under windows): G:\online\ecs\Shortcuts\CALO [HCTELL1_UI_DEN, PSTELL1_UI_DEN, ECTELL1_UI_DEN].

Another way is to restart the FSM from top layer FSM (Restart FSM)

DEN_ectell1.png

Communication PVSS <--> Tell1 board: PVSSdim and ccserv

PVSS commands are sent to the Tell1 board via dim (PVSS manager PVSSdim) and are received on the Tell1 with ccserv (and vice versa). If you encounter a problem of "CONFIGURING" the Tell1 with PVSS, it may be:

  • ccserv is dead
  • the tell1 board did not boot up (e.g., after powering on the crate)

_ccserv problem_:

To check which servers are running, log on either hcdaq01 or ecdaq01, and execute did. Then click on View ---> All Servers. You should have one entry per ccserv (ie, per tell1 board). If one (or more) is missing, log on the missing tell1 (ex: ssh ectell01) and execute "sudo /sbin/service ccserv status". If the answer is:

  • running: it is OK.
  • ccserv dead but subsys locked. In this case, execute "sudo /sbin/service ccserv restart" and then check with did that the entry is back to the ccserv list.

Note: if ALL ccservs are missing after running did (View ---> All Servers), it may be because the crate is off.

did on ecdaq01 (order may be different) [ 26 ccservs: ectellxx, xx from 01 to 26]
did_ecdaq01.png

did on hcdaq01 (order may be different)[ 16 ccservs: pstell0x and hctell0x, x from 1 to 8 ]
(example below: pstell08 is missing)
did_hcdaq01.png

_tell1 board did not boot up_

To check if the tell1 board has booted up, execute "ping tell1name" (ex: ping pstell08).

  • It sould give "64 bytes from pstell08.lbdaq.cern.ch (10.130.36.18): icmp_seq=0 ttl=63 time=0.702 ms" ("time=0.702 ms" may vary).
  • If the ping command is stuck to "PING pstell08.lbdaq.cern.ch (10.130.36.18) 56(84) bytes of data.", it means that the tell1 board did not boot up. The only way is to go to D3 barrack and press on "Reset CCPC" button (front cover of the board).

FOR EXPERTS ONLY (you must know what you are doing!)

Information can be obtained about the tell1 board by running binaries on the tell1 CCPC (Credit Card PC).

PLEASE CALL THE EXPERT FIRST

Load Tell1 firmware

To load the tell1 firwmware to a given tell1 board, the FSM should be in NOT READY for the given tell1.

  • Click on NOT READY to popup a window [which contains |Configure|Reset|LoadFrmwr|] then LoadFrmwr.
  • The FSM state switches to CONFIGURING.
  • It takes about 2 minutes to upload the firmware.
  • Once done, the FSM state switches back to NOT READY.
  • Do Configure the given tell1 board to check that everything is ok.

Spy Memories:

The CALO tell1 firmware contains spy memories in the PP-FPGA [size: 256 words - 1 CROC event: 34 words (1 header - 1 ctrl word and 32 data words)] on the ORx outputs which allow to read what was received by the CROC before any treatment of the data.

The base addresses are [PP0]: 0x4000000, [PP1]: 0x5000000, [PP2]: 0x6000000 and [PP3]: 0x7000000

Each PP-FPGA treats 4 internal input links (after multiplexer). The address for each link is:

  • Internal link0: 0x508000
  • Internal link1: 0x50A000
  • Internal link2: 0x50C000
  • Internal link3: 0x50E000

Two additional spy memory give access to the information received by TTC (TriggerType, L0EvtID, BXID) and the Event Information (used in the PP-FPGA and Error Bank):

  • TTYPE,L0 and BXID: 0x510000 [Format: |31-16: L0EvtID| 15-4:BXID|3-0:TriggerType|]
  • Event Information: 0x512000

Examples:

  • to read PP0 link2: lbread 0x450C000 34 [1st arg: address - 2nd arg: number of words] which gives
    0450c000: df2003fe 9f203fd3 5f300101 5f200100
    0450c010: 5f3000ff 5f2000fd 5f300104 5f200105
    0450c020: 5f3000ff 5f3000ff 5f300101 5f200100
    0450c030: 5f200100 5f200103 5f200100 5f300102
    0450c040: 5f200100 5f2000fe 5f300102 5f300104
    0450c050: 5f300102 5f200100 5f300101 5f200100
    0450c060: 5f300102 5f200103 5f300101 5f2000fe
    0450c070: 5f3000ff 5f200105 5f2000fe 5f300102
    0450c080: 5f200100 5f200100
    
  • lbread 0x451000 1 gives 0x00413fe6: L0EvtID=0x0041, BXID=0x3fe, TTYPE=0x6)
  • lbread 0x451200 15 gives
     
    04512000: 000243fe 00000000 aaaaaaaa 000243ff
    04512010: 00000001 aaaaaaaa 00024400 00000002
    04512020: aaaaaaaa 00024401 00000003 aaaaaaaa
    04512030: 00024402 00000004 aaaaaaaa
    

Data format

MEP.png

MEPHeader.png

EDMS documents:

ORx input links

Each PP-FPGA receives up to 4 optical links.

Feb Number ORx input link Feb Number ORx input link Feb Number ORx input link Feb Number ORx input link
1 ---> 0 [PP0] 6 ---> 0 [PP1] 9 ---> 0 [PP2] 14 ---> 0 [PP3]
3 ---> 1 [PP0] X (no GOL) 1 (Disable) 11 ---> 1 [PP2] X (no GOL) 1 (Disable)
0 ---> 2 [PP0] X (no GOL) 2 (Disable) 8 ---> 2 [PP2] X (no GOL) 2 (Disable)
2 ---> 3 [PP0] 4 ---> 3 [PP1] 10 ---> 3 [PP2] 12 ---> 3 [PP3]
X (no GOL) 4 (Disable) 7 ---> 4 [PP1] X (no GOL) 4 (Disable) 15 ---> 4 [PP3]
X (no GOL) 5 (Disable) 5 ---> 5 [PP1] X (no GOL) 5 (Disable) 13 ---> 5 [PP3]

console_tell1

console_tell1 is a binary which is run after logging on the tell1 CCPC. After executing console_tell1, you have the following menu:

                =======Running Console on TELL1======
ACTION :  ini_GLUECARD_PLX                                                          [      OK]
ACTION :  read_TELL1_CONSTANT                                                       [      OK]
                         ************************************
                         *   C : TELL1  Control             *
                         *   M : TELL1  Monitor             *
                         *   T : TELL1  Test                *
                         *   P : TELL1  Programming         *
                         *   F : TELL1  export Files        *
                         *----------------------------------*
                         *   D : Detector specific          *
                         *----------------------------------*
                         *   A : About                      *
                         *   Q : Quit                       *
                         *   ? : show this manual           *
                         ************************************

CMD--->    [?]

The two allowed menus are "M" (Tell1 Monitor) and "D" (Detector specific).

[ if you mess up entering "M" for example, the delete key (or Backspace key) does not work, use instead "CTRL+h" to delete ]

After entering "m" and "return":

CMD--->    [?]m
ACTION :  read_TELL1_CONSTANT                                                       [      OK]
                         ================================
                            2 : GBE   status
                            3 : Read temperature
                            4 : Read BER counters
                            5 : Read GBE phy chips registers
                            6 : Dump the initial counter data in PLL reconfig module
                            8 : Read ttc monitor counters
                           ---------------------------
                            r : Read rate statistic
                            a : Read memory max usage
                            d : Read event monitor registers
                            f : Read flow_control information
                            h : Read Ethernet and IPv4 header information
                           ---------------------------
                          ESC : CCPC DAQ routine control
                            Q : Quit
                            ? : Show this manual
MONITOR--->[?]  
where you can access various status of the tell1 board.

If you press "d" then "return": (Since this is detector specific, this menu is a bit different between EHCAL and PSSPD)

CMD--->    [m]d
ACTION :  read_TELL1_CONSTANT                                                       [      OK]
          ------------------------------------------------------------------------
         Comments for the conditions of command execution:
         (Stop daq_tell1) means daq_tell1 must be paused or killed. 
         (Run daq_tell1) means daq_tell1 must be running. 
         (Run daq_tell1 with Data genrator) means daq_tell1 must be running with data generator enabled. 
         (Data genrator enabled) means data generator must be enabled. 
         Otherwise, the command can be executed under any condition. 


                         =============================================
                            a : Dump PSSPD specific settings.
                            b : Dump PSSPD ADC threshold RAM.
                           ---------------------------
                            o : Read link probe/sync registers
                            r : Read data generator ram
                            s : The Last 128 Mep Location
                            t : Read Mep Buffer
                            l : Read and Parse MEP during run(Except L0DU!!!)
                            p : Parse MEP (Stop daq_tell1)
                            u : Parse all 128 MEPs (Stop daq_tell1)
                            m : Extract raw data from newest event in the MEP
                            w : Write raw data from newest event into a file. (Run daq_tell1)
                            n : Check newest Non_zerosuppressed bank. (Data genrator enabled)
                            z : Check newest Zero suppressed bank. (Data genrator enabled)
                            i : Export Present Setting of Tell1 Board to a new cfg file(Stop DAQ)
                           ---------------------------
                          ESC : CCPC DAQ routine control
                            Q : Quit
                            ? : show this manual
PSSPD--->[?]  
IMPORTANT: the only menu allowed during data taking is o : Read link probe/sync registers [Read the ORx status]. Everything else may crash the data acquisition.

ccserv in debug mode

Logon the tell1 ccpc. Stop the ccserv daemon [sudo service ccserv stop]. Then execute: "ccserv -d -f- -vN" where N is the verbose level (the higher the number, the higher the verbosity) [a typical value is N=6]

update of cfg files

To update a cfg file with the new tell1lib release, use daq_tell1 old_cfg.cfg (daq_tell1 must be the binary from the new tell1lib)

Example: convert EHCAL3.v23.cfg (tell1lib v2.3) to EHCAL3.v26.cfg (tell1lib v3.0)

daq_tell1 EHCAL3.v23.cfg  

CFG:  Read  EHCAL3.v23.cfg 

>>>>>>>>>>>>
A new DB version is used now. We will convert to this new DB format.
All your settings will be kept, but the comment you add will lost.

CFG:  Write EHCAL3.v26.cfg
then stop daq_tell1 with CTRL+C

Tell1 PVSS Shortcuts

The calo pvss shortcuts are available at: [see: https://twiki.cern.ch/twiki/bin/view/LHCb/LHCbCaloECS ]

  • linux: /group/calo/pvss (and also /group/online/ecs/NewShortcuts/CALO/)
  • windows: Disk G:\calo\pvss (G:\online\ecs\NewShortcuts\CALO)

PVSS_II_PATH=/opt/pvss/pvss2_v3.6/bin [location of PVSS binaries (like PVSS00ui, etc.)]

  • DEN: $PVSS_II_PATH/PVSS00ui -PROJ ECTELL1 -p fwDeviceEditorNavigator/fwDeviceEditorNavigator.pnl -iconBar -menuBar
  • LogViewer: $PVSS_II_PATH/PVSStoolLogViewer -single -config /data/pvss/ECTELL1/config/config -lang en_US.iso88591
  • fwHw: $PVSS_II_PATH/PVSS00ui -PROJ ECTELL1 -p fwHw/Hw.pnl -iconBar -menuBar
  • Gedi: $PVSS_II_PATH/PVSS00ui -PROJ ECTELL1 -m gedi

Tell1 PVSS projects and components

  • The TELL1 PVSS projects are installed:
    • PSTELL1: /data/pvss/PSTELL1
    • HCTELL1: /data/pvss/HCTELL1
    • ECTELL1: /data/pvss/ECTELL1

  • The tell1 components are installed in:
    • linux: /group/calo/pvss/fwComponents_ECTELL1, fwComponents_HCTELL1, fwComponents_PSTELL1
    • windows: G:\calo\pvss\fwComponents_ECTELL1, fwComponents_HCTELL1, fwComponents_PSTELL1

Tell1 PVSS Console via a browser

The PVSS console can also be accessed via a browser. Enter http://localhost:port in a browser where the pmon of a project runs. [the default pmon port is 4999 but is generally modified in the config file]

  • PS: port = 28300 [on hcdaq01, run firefox with http://localhost:28300; config file in /data/pvss/PSTELL1/config]
  • HC: port = 30300 [on hcdaq01, run firefox with http://localhost:30300; config file in /data/pvss/HCTELL1/config]
  • EC: port = 29300 [on ecdaq01, run firefox with http://localhost:28300; config file in /data/pvss/ECTELL1/config]

There is also a (Windows) link in the CALO shorcut directory (XXTELL1_Console).

Useful (Twiki) Links

-- StephaneTJampens- 03 Feb 2009

Topic attachments
I Attachment History Action SizeSorted ascending Date Who Comment
PNGpng MEP.png r1 manage 6.0 K 2008-07-07 - 10:55 StephaneTJampens  
PNGpng MEPHeader.png r1 manage 11.7 K 2008-07-07 - 10:57 StephaneTJampens  
PNGpng did_hcdaq01.png r1 manage 15.0 K 2008-06-24 - 20:06 StephaneTJampens  
PNGpng did_ecdaq01.png r1 manage 17.1 K 2008-06-24 - 20:05 StephaneTJampens  
PNGpng DEN_ectell1.png r1 manage 21.2 K 2008-06-24 - 15:31 StephaneTJampens  
PNGpng GBE.png r1 manage 75.9 K 2008-06-24 - 22:46 StephaneTJampens  
PNGpng ORx_PSSPD.png r1 manage 85.7 K 2008-06-24 - 22:28 StephaneTJampens  
PNGpng TTC_PSSPD.png r1 manage 93.9 K 2008-06-24 - 22:31 StephaneTJampens  
PNGpng ProcMon_PSSPD.png r1 manage 95.8 K 2008-06-24 - 22:30 StephaneTJampens  
PNGpng D3barrack.png r2 r1 manage 106.0 K 2008-07-02 - 19:17 StephaneTJampens  
PNGpng BufferMon_PSSPD.png r1 manage 113.6 K 2008-06-24 - 22:27 StephaneTJampens  
PNGpng Tell1CU_Ready.png r1 manage 115.0 K 2008-06-24 - 15:32 StephaneTJampens  
PNGpng Overview_PSSPD.png r1 manage 156.7 K 2008-06-24 - 22:33 StephaneTJampens  
PNGpng Tell1DU_ectell01.png r1 manage 168.6 K 2008-06-24 - 15:32 StephaneTJampens  
PNGpng BoardStatus_PSSPD.png r1 manage 512.1 K 2008-06-24 - 22:36 StephaneTJampens  
PNGpng tell1.png r1 manage 581.9 K 2008-07-02 - 18:30 StephaneTJampens  
Edit | Attach | Watch | Print version | History: r20 < r19 < r18 < r17 < r16 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r18 - 2009-06-10 - StephaneTJampens
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    LHCb All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback