Difference between revisions of "SBS DAQ: GEM TEDF BigBite setup"

From Hall A Wiki
Jump to: navigation, search
(MPD/SSP/APV Config files)
(32 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
== CODA scripts ==
 
== CODA scripts ==
:- [https://github.com/JeffersonLab/coda_scripts github page]
 
:- Scripts locations:
 
* daq@tedbbdaq
 
:- <code>~/gem_scripts/setupCODA.bash</code>
 
:- <code>~/gem_scripts/coda_scripts/</code>
 
* sbs-onl@intelbbgem:
 
:- <code>~/coda_scripts/</code>
 
  
 
=== Frontend scripts to use on tedbbdaq ===
 
=== Frontend scripts to use on tedbbdaq ===
==== <code>startCoda</code> ====
+
==== <tt>startCoda</tt> ====
 
* executes each CODA component (platform, rcgui, PEB, all ROCs) in a separate xterm
 
* executes each CODA component (platform, rcgui, PEB, all ROCs) in a separate xterm
==== <code>restartStuff</code> ====
+
==== <tt>restartStuff</tt> ====
 
* kills and restarts the PEB and ROCs.  The xterms are not killed with this script.
 
* kills and restarts the PEB and ROCs.  The xterms are not killed with this script.
==== <code>kcoda</code> ====
+
==== <tt>kcoda</tt> ====
 
* kills all CODA components
 
* kills all CODA components
  
 
+
=== <tt>coda_scripts</tt> ===
 +
:- [https://github.com/JeffersonLab/coda_scripts github page]
 +
:- Scripts locations:
 +
:* '''daq@tedbbdaq'''
 +
::- <tt>~/gem_scripts/setupCODA.bash</tt>
 +
::- <tt>~/gem_scripts/coda_scripts/</tt>
 +
:* '''sbs-onl@intelbbgem'''
 +
::- <tt>~/coda_scripts/</tt>
  
 
== Useful stand-alone programs ==
 
== Useful stand-alone programs ==
=== <code>remex</code> ===
+
=== <tt>remex</tt> ===
 
<code>$CODA_BIN/remex <remexHost> <function call></code>
 
<code>$CODA_BIN/remex <remexHost> <function call></code>
 
* Execute a function call on the specified remote Host
 
* Execute a function call on the specified remote Host
 
:- Run without arguments for usage
 
:- Run without arguments for usage
  
=== <code>tiLibTest</code> ===
+
=== <tt>tiLibTest</tt> ===
 
<code>$CODA_VME/ti/test/tiLibTest <TI slot number></code>
 
<code>$CODA_VME/ti/test/tiLibTest <TI slot number></code>
 
* Test triggering capabilities of the local TI.
 
* Test triggering capabilities of the local TI.
Line 30: Line 30:
 
:- Accepts triggers either from Front Panel TSinputs or Internal Random Pulser
 
:- Accepts triggers either from Front Panel TSinputs or Internal Random Pulser
  
=== <code>i2c_test</code>===
+
=== <tt>i2c_test</tt>===
 
<code>$LINUXVME/mpd/libsrc/test/i2c_test <mpd slot number></code>
 
<code>$LINUXVME/mpd/libsrc/test/i2c_test <mpd slot number></code>
 
* Test the initialization and configuration of the APVs in the specified MPD.
 
* Test the initialization and configuration of the APVs in the specified MPD.
Line 36: Line 36:
 
:- Also attempts the readback of the APV registers with <code>mpdApvStatus(0xffff)</code>
 
:- Also attempts the readback of the APV registers with <code>mpdApvStatus(0xffff)</code>
  
=== <code>vme_display</code> ===
+
=== <tt>sspFirmwareUpdate</tt>===
 +
<code>$LINUXVME/ssp/firmware/sspFirmwareUpdate <firmware .bin file> <SSP VME ADDRESS></code>
 +
* Update SSP at specified VME address.
 +
 
 +
=== <tt>ProgramEpcs</tt>===
 +
<code>$LINUXVME/mpd/libsrc/firmware/ProgramEpcs -s <mpd_vme_slot> -v <firmware .jic file></code>
 +
* Update MPD firmware at specified VME address.
 +
:- Described in https://hallaweb.jlab.org/dvcslog/SBS/251
 +
 
 +
=== <tt>RunUserFpga</tt>===
 +
<code>$LINUXVME/mpd/libsrc/firmware/RunUserFpga -s <mpd_vme_slot> (-f)</code>
 +
* Change between user and factory FPGA image.
 +
:- Described in https://hallaweb.jlab.org/dvcslog/SBS/251
 +
 
 +
=== <tt>vme_display</tt> ===
 
<code>$CODA_VME_BIN/vme_display <VME Address> <read size in bytes></code>
 
<code>$CODA_VME_BIN/vme_display <VME Address> <read size in bytes></code>
 
* Display the read value of specified size from the specified VME address.
 
* Display the read value of specified size from the specified VME address.
 
:- Run without arguments for usage
 
:- Run without arguments for usage
  
=== <code>vme_modmem</code> ===
+
=== <tt>vme_modmem</tt> ===
 
<code>$CODA_VME_BIN/vme_modmem <VME Address> <read/write size in bytes></code>
 
<code>$CODA_VME_BIN/vme_modmem <VME Address> <read/write size in bytes></code>
 
* Modify the value of specified size of the specified VME address.
 
* Modify the value of specified size of the specified VME address.
Line 48: Line 62:
 
== MPD/SSP/APV Config files ==
 
== MPD/SSP/APV Config files ==
 
* Config files for configuration of APVs and MPD / SSP can be found in
 
* Config files for configuration of APVs and MPD / SSP can be found in
:- <code>sbs-onl@intelbbgem:~/bbgem-cfg/</code>
+
:- <tt>sbs-onl@intelbbgem:~/bbgem-cfg/</tt>
  
 +
:* The '''SSP''' readout list (<tt>mpd5_ssp_list.so</tt>) uses
 +
::- <tt>sbs-onl@intelbbgem:~/bbgem-cfg/ssp_config.txt</tt>
 +
::- <tt>sbs-onl@intelbbgem:~/bbgem-cfg/ssp_apv_default.txt</tt>
  
:* The '''SSP''' readout list (<code>mpd5_ssp_list.so</code>) uses
+
:* The '''MPD''' readout list (<tt>mpd_list.so, mpd_slave_list.so</tt>) uses
::- <code>sbs-onl@intelbbgem:~/bbgem-cfg/ssp_config.txt</code>
+
::- <tt>sbs-onl@intelbbgem:~/bbgem-cfg/mpd_config.txt</tt>
::- <code>sbs-onl@intelbbgem:~/bbgem-cfg/ssp_apv_default.txt</code>
+
::- <tt>sbs-onl@intelbbgem:~/bbgem-cfg/mpd_apv_default.txt</tt>
  
 +
:* '''Both''' use common files to configure the MPDs/APVs given the MPD's slot number.  For example, slot 5 MPD:
 +
::- <tt>sbs-onl@intelbbgem:~/bbgem-cfg/bbgem_crate_1/MPD_vmeSlot_5.cfg</tt>
  
:* The '''MPD''' readout list (<code>mpd_list.so, mpd_slave_list.so</code>) uses
+
:* Programs useful for debugging config file format
::- <code>sbs-onl@intelbbgem:~/bbgem-cfg/mpd_config.txt</code>
+
::- <tt>$LINUXVME/mpd/libsrc/test/mpdConfigTest</tt>
::- <code>sbs-onl@intelbbgem:~/bbgem-cfg/mpd_apv_default.txt</code>
+
::- <tt>$LINUXVME/mpd/libsrc/test/sspMpdConfigTest</tt>
  
 
+
== Superbigbite Logbook Entries ==
:* '''Both''' use common files to configure the MPDs/APVs given the MPD's slot number.  For example, slot 5 MPD:
+
* Entry script:
::- <code>sbs-onl@intelbbgem:~/bbgem-cfg/bbgem_crate_1/MPD_vmeSlot_5.cfg</code>
+
:- <tt>daq@tedbbdaq:~/gem_scripts/MakeEntry.sh %(rt) <START/END> %(rn)</tt>
 +
::- <tt>DAQNAME='''BBGEM'''</tt>
 +
:- Executed by PEB1 '''before''' Prestart and '''after''' End
  
 
== Machines in use ==
 
== Machines in use ==
Line 68: Line 89:
 
==== atedf3 ====
 
==== atedf3 ====
 
* NFS server, tftp server for VME Controllers
 
* NFS server, tftp server for VME Controllers
:* CODA and hardware drivers in <code>/data/disk2/SBS/</code>
+
:* CODA and hardware drivers : <tt>/data/disk2/SBS/coda/3.10_arm</tt>
 +
:* <tt>sbs-onl</tt> home directory : <tt>/data/disk2/home/sbs-onl</tt>
  
 
:* Read-only permissions for all machines in 36 subnet
 
:* Read-only permissions for all machines in 36 subnet
:* Read-Write permissions for '''hallavme12pc''','''sbsvme25'''
+
:* Read-Write permissions for a few select machines / vme controllers
  
 
==== tedbbdaq ====
 
==== tedbbdaq ====
 
* DAQ Computer (RunControl, Event Building)
 
* DAQ Computer (RunControl, Event Building)
:* Mount <code>atedf3:/data/disk2/SBS</code> to <code>/mnt/SBS</code>
+
:* Mount <tt>atedf3:/data/disk2/SBS</tt> to <tt>/mnt/SBS</tt>
::- Uses autofs.  <code>/etc/auto.SBS</code> should be included in a line in <code>/etc/auto.master</code>
+
::- Uses autofs.  <tt>/etc/auto.SBS</tt> should be included in a line in <tt>/etc/auto.master</tt>
  
::* <code>coda/</code> CODA (3.10)
+
:* User: daq
 +
::* CODA (3.10) : <tt>~/coda3/3.10_arm/</tt>  
 +
:::- <tt>~/.bashrc</tt>
 +
<pre>
 +
# CODA 3 setup : SESSION=bbgem 01dec2020
 +
export CODA=/mnt/SBS/coda/3.10_arm
 +
export SESSION=bbgem
 +
export EXPID=tedbbdaq
 +
source ${HOME}/gem_scripts/setupCODA3.bash
 +
</pre>
 +
:::- <tt>~/gem_scripts/setupCODA.bash</tt>
  
 
==== intelbbgem ====
 
==== intelbbgem ====
 
* XVR16 VME Controller
 
* XVR16 VME Controller
::* 'sbs-onl' login
+
:* User: sbs-onl
::* Slots ? : SSP
+
::* home directory : <tt>atedf3:/data/disk2/home/sbs-onl/bbgem</tt>
::* Slot 21: TI
+
::* CODA3 environment setup:
::* LINUXVME (mpd,ssp): <code>~/linuxvme/</code>
+
::- <tt>~/.bashrc</tt>
::* readout lists : <code>~/rol/</code>
+
<pre>
 +
# CODA 3 using coda_scripts : SESSION=bbgem 01dec2020
 +
export SESSION=bbgem
 +
export EXPID=tedbbdaq
 +
source ${HOME}/coda_scripts/setupCODA3.bash
 +
</pre>
 +
 
 +
::- <tt>~/coda_scripts/setupCODA.bash</tt>
 +
 
 +
:* Slots 6 : SSP - initial firmware: <tt>fe_ssp_mpd_v1_8_aug11_2020.bin</tt>
 +
:* Slot 21: TI
 +
:* LINUXVME (mpd,ssp)  
 +
::- <tt>~/linuxvme/</tt>
 +
<pre>
 +
# LINUXVME for mpd and ssp
 +
export LINUXVME=${HOME}/linuxvme
 +
export LINUXVME_INC=${HOME}/linuxvme/include
 +
export LINUXVME_LIB=${HOME}/linuxvme/${MACHINE}/lib
 +
export LINUXVME_BIN=${HOME}/linuxvme/${MACHINE}/bin
 +
export LD_LIBRARY_PATH=.:${LINUXVME_LIB}:${LD_LIBRARY_PATH}
 +
export PATH=.:${LINUXVME_BIN}:${PATH}
 +
</pre>
 +
 
 +
:* readout lists
 +
::- <tt>~/rol/</tt>
  
 
==== hatsv48 ====
 
==== hatsv48 ====
Line 94: Line 150:
 
::* Slot 21: TI
 
::* Slot 21: TI
  
== CODA environment setup script ==
+
== Stuff to finish ==
  
Using BASH, source the environment setup script:
+
=== Fix MPD Crate VME Controller Diskless OS ===
 +
::- Should be fixed with new host name
  
source ~/SBS-GEM-Cleanroom/env/setupCODA
+
=== Check MPD library x86_64 compilation ===
 +
::- Run a program that configures and gets the status of the MPDs in the crate.
  
== Stuff to finish ==
+
=== Update MPD firmware ===
 +
::- program with <tt>Fpga_4_Fiber_200811.jic</tt>
 +
 
 +
=== Check SSP-MPD Fiber connection ===
 +
::- Run a program that configures and gets the status of the MPDs in the crate  (from the SSP)
 +
 
 +
=== Verify config files ===
 +
::- Need to input the APV - MPD map into the MPD/APV config files.
 +
 
 +
=== Setup data output path ===
 +
::- Find where we can put the data.
  
===Setup CODA3 environment for MPD crate ===
+
===Setup CODA3 environment for MPD crate ? ===
===Log CODA runs to [https://logbooks.jlab.org/book/superbigbite logbooks/superbigbite]===
+
::- May be useful for debugging problems with MPD/APVs without the SSP crate.

Revision as of 07:28, 4 December 2020

CODA scripts

Frontend scripts to use on tedbbdaq

startCoda

  • executes each CODA component (platform, rcgui, PEB, all ROCs) in a separate xterm

restartStuff

  • kills and restarts the PEB and ROCs. The xterms are not killed with this script.

kcoda

  • kills all CODA components

coda_scripts

- github page
- Scripts locations:
  • daq@tedbbdaq
- ~/gem_scripts/setupCODA.bash
- ~/gem_scripts/coda_scripts/
  • sbs-onl@intelbbgem
- ~/coda_scripts/

Useful stand-alone programs

remex

$CODA_BIN/remex <remexHost> <function call>

  • Execute a function call on the specified remote Host
- Run without arguments for usage

tiLibTest

$CODA_VME/ti/test/tiLibTest <TI slot number>

  • Test triggering capabilities of the local TI.
- Puts the local TI in master mode (with no slaves).
- Accepts triggers either from Front Panel TSinputs or Internal Random Pulser

i2c_test

$LINUXVME/mpd/libsrc/test/i2c_test <mpd slot number>

  • Test the initialization and configuration of the APVs in the specified MPD.
- Does the same initialization that is done in mpd_list.c:rocDownload()
- Also attempts the readback of the APV registers with mpdApvStatus(0xffff)

sspFirmwareUpdate

$LINUXVME/ssp/firmware/sspFirmwareUpdate <firmware .bin file> <SSP VME ADDRESS>

  • Update SSP at specified VME address.

ProgramEpcs

$LINUXVME/mpd/libsrc/firmware/ProgramEpcs -s <mpd_vme_slot> -v <firmware .jic file>

  • Update MPD firmware at specified VME address.
- Described in https://hallaweb.jlab.org/dvcslog/SBS/251

RunUserFpga

$LINUXVME/mpd/libsrc/firmware/RunUserFpga -s <mpd_vme_slot> (-f)

  • Change between user and factory FPGA image.
- Described in https://hallaweb.jlab.org/dvcslog/SBS/251

vme_display

$CODA_VME_BIN/vme_display <VME Address> <read size in bytes>

  • Display the read value of specified size from the specified VME address.
- Run without arguments for usage

vme_modmem

$CODA_VME_BIN/vme_modmem <VME Address> <read/write size in bytes>

  • Modify the value of specified size of the specified VME address.
- Run without arguments for usage

MPD/SSP/APV Config files

  • Config files for configuration of APVs and MPD / SSP can be found in
- sbs-onl@intelbbgem:~/bbgem-cfg/
  • The SSP readout list (mpd5_ssp_list.so) uses
- sbs-onl@intelbbgem:~/bbgem-cfg/ssp_config.txt
- sbs-onl@intelbbgem:~/bbgem-cfg/ssp_apv_default.txt
  • The MPD readout list (mpd_list.so, mpd_slave_list.so) uses
- sbs-onl@intelbbgem:~/bbgem-cfg/mpd_config.txt
- sbs-onl@intelbbgem:~/bbgem-cfg/mpd_apv_default.txt
  • Both use common files to configure the MPDs/APVs given the MPD's slot number. For example, slot 5 MPD:
- sbs-onl@intelbbgem:~/bbgem-cfg/bbgem_crate_1/MPD_vmeSlot_5.cfg
  • Programs useful for debugging config file format
- $LINUXVME/mpd/libsrc/test/mpdConfigTest
- $LINUXVME/mpd/libsrc/test/sspMpdConfigTest

Superbigbite Logbook Entries

  • Entry script:
- daq@tedbbdaq:~/gem_scripts/MakeEntry.sh %(rt) <START/END> %(rn)
- DAQNAME=BBGEM
- Executed by PEB1 before Prestart and after End

Machines in use

atedf3

  • NFS server, tftp server for VME Controllers
  • CODA and hardware drivers : /data/disk2/SBS/coda/3.10_arm
  • sbs-onl home directory : /data/disk2/home/sbs-onl
  • Read-only permissions for all machines in 36 subnet
  • Read-Write permissions for a few select machines / vme controllers

tedbbdaq

  • DAQ Computer (RunControl, Event Building)
  • Mount atedf3:/data/disk2/SBS to /mnt/SBS
- Uses autofs. /etc/auto.SBS should be included in a line in /etc/auto.master
  • User: daq
  • CODA (3.10) : ~/coda3/3.10_arm/
- ~/.bashrc
# CODA 3 setup : SESSION=bbgem 01dec2020
export CODA=/mnt/SBS/coda/3.10_arm
export SESSION=bbgem
export EXPID=tedbbdaq
source ${HOME}/gem_scripts/setupCODA3.bash
- ~/gem_scripts/setupCODA.bash

intelbbgem

  • XVR16 VME Controller
  • User: sbs-onl
  • home directory : atedf3:/data/disk2/home/sbs-onl/bbgem
  • CODA3 environment setup:
- ~/.bashrc
# CODA 3 using coda_scripts : SESSION=bbgem 01dec2020
export SESSION=bbgem
export EXPID=tedbbdaq
source ${HOME}/coda_scripts/setupCODA3.bash
- ~/coda_scripts/setupCODA.bash
  • Slots 6 : SSP - initial firmware: fe_ssp_mpd_v1_8_aug11_2020.bin
  • Slot 21: TI
  • LINUXVME (mpd,ssp)
- ~/linuxvme/
# LINUXVME for mpd and ssp
export LINUXVME=${HOME}/linuxvme
export LINUXVME_INC=${HOME}/linuxvme/include
export LINUXVME_LIB=${HOME}/linuxvme/${MACHINE}/lib
export LINUXVME_BIN=${HOME}/linuxvme/${MACHINE}/bin
export LD_LIBRARY_PATH=.:${LINUXVME_LIB}:${LD_LIBRARY_PATH}
export PATH=.:${LINUXVME_BIN}:${PATH}
  • readout lists
- ~/rol/

hatsv48

  • XVB601 VME Controller
  • 'daq' login
  • Slots 2-8, 10-16: MPDs
  • Slot 21: TI

Stuff to finish

Fix MPD Crate VME Controller Diskless OS

- Should be fixed with new host name

Check MPD library x86_64 compilation

- Run a program that configures and gets the status of the MPDs in the crate.

Update MPD firmware

- program with Fpga_4_Fiber_200811.jic

Check SSP-MPD Fiber connection

- Run a program that configures and gets the status of the MPDs in the crate (from the SSP)

Verify config files

- Need to input the APV - MPD map into the MPD/APV config files.

Setup data output path

- Find where we can put the data.

Setup CODA3 environment for MPD crate ?

- May be useful for debugging problems with MPD/APVs without the SSP crate.