Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

As of Jan. 20, 2021, Matt has production DrpTDet and DrpPgpIlv firmware here:

  • https://github.com/slaclab/l2si-drp
  • ~weaver/mcs/DrpTDet-20200612*.mcs (tdetsim)
  • /afs/slac/u/ec/weaver/projects/cameralink-gateway/firmware/targets/ClinkKcu1500Pgp2b/images/ClinkKcu1500Pgp2b-0x04090000-20201125220148-weaver-dirty*.mcs (timetool opal, but compatible with normal opal ... he will merge into Larry's repo).

...

in case of promType error please one can typically fix it by switching to the other datadev_N interface, otherwise can add "--type SPIx8"

datadev Driver

...

Running cat /proc/datadev_0  showed that most Read buffers were in User HW (desired situation); however, the write buffers were stuck in hardware (problematic). This was the case even with no process running. As a result, it was not possible to access registers.

...

Programming HSD Firmware in LCLS Hutches

Note that as of April 2024 firmware can not also be programmed over pcie , only jtag.  pcie driver is in git@github.com:slaclab/l2si-hsd.git.

Code Block
cd software/kernel
make
cp pcie_adc.ko /usr/lib/modules/3.10.0-1160.2.2.el7.x86_64/extra
depmod

Might need to do insmod first?  Unlike datadev.ko, this doesn't need any parameters.

depmod will update this file:

Code Block
daq-tmo-hsd-01:~$ grep pcie /usr/lib/modules/3.10.0-1062.9.1.el7.x86_64/modules.alias
alias pci:v00001B4Bd00002B42sv*sd*bc*sc*i* mwifiex_pcie
alias pci:v000011ABd00002B42sv*sd*bc*sc*i* mwifiex_pcie
alias pci:v000011ABd00002B38sv*sd*bc*sc*i* mwifiex_pcie
alias pci:v000011ABd00002B30sv*sd*bc*sc*i* mwifiex_pcie
alias pci:v00001A4Ad00002100sv*sd*bc*sc*i* pcie_adc
daq-tmo-hsd-01:~$ 

and Matt has moved to the standard datadev driver (although need to pick up the latest version from git to get support for the use of multiple hsd's in a crate .

Matt writes to Riccardo:

Riccardo: Hello Matt, I have some confusion regarding how to use the new firmware for the hsd.
The hsd.cnf file still uses /dev/datadev_3e (for example), but in the fee in cmp024 we only have datadev_0.
What do you need to change to switch to the datadev.ko?
Do you use a different kcu.service?
Thanks

Matt: You can either use the old driver with the device name datadev_0, or you can install the updated driver and load it with the argument cfgDevName=1 to get the bus ID tagged onto the device name.  I'd recommend just staying with the old driver and changing the expected name to datadev_0.

See the pcie device numbers in with lspciSee the pcie device numbers in /dev/pcie_adc*.  Can also see them like this:

Code Block
daq-tmo-hsd-01:~$ lspci | grep -i slac
1a:00.0 Memory controller: SLAC National Accelerator Lab TID-AIR Device 2100
1b:00.0 Memory controller: SLAC National Accelerator Lab TID-AIR Device 2100
3d:00.0 Memory controller: SLAC National Accelerator Lab TID-AIR Device 2100
3e:00.0 Memory controller: SLAC National Accelerator Lab TID-AIR Device 2100
5e:00.0 Memory controller: SLAC National Accelerator Lab TID-AIR Device 2100
88:00.0 Memory controller: SLAC National Accelerator Lab TID-AIR Device 2100
89:00.0 Memory controller: SLAC National Accelerator Lab TID-AIR Device 2100
b1:00.0 Memory controller: SLAC National Accelerator Lab TID-AIR Device 2100
b2:00.0 Memory controller: SLAC National Accelerator Lab TID-AIR Device 2100
da:00.0 Memory controller: SLAC National Accelerator Lab TID-AIR Device 2100
  

...

  • network switch on bottom: slot 1
  • xpm (10) in slot 2
  • xpm (11) in slot 4






Detector ASC Lab - shm-daq-asc01

Image Added

Image Added

Fiber Optic Powers

Can check light levels going into the xpm by looking at EPICS variables like this.  Matt says this goes in a "natural order" with amc0 ports 0-6 first and amc1 ports 0-6 second.  Looking at XPM:0 in the FEE today (Dec. 2, 2021) this seemed to be correct.

...

First would be to look at the rix iocmanager config file which should be in a directory like /cds/group/pcds/pyps/apps/config/rix/iocmanager.cfg.
In that file there will be a line listing the wave8 ioc, the host it's running on, and a port. You can telnet to that host at that port to get to the ioc shell. From there you can ctl+x to kill the ioc. If it doesn't reboot automatically on its own, you can restart it with ctl+r.

...

then you can just run mypy by hand and play with it

Epix at UED

UED is the ultrafast electron diffraction facility which uses a small accelerator and instrument housed in building 40.  The timing system is LCLS2 style with the following exceptions:

  • the base clock is 119 MHz instead of 185.7 MHz
  • the timing frame rate is 500kHz instead of 930kHz
  • the beam is generated on AC aligned triggers exclusively up to 1080 Hz

Image Added

The ATCA shelf manager for the timing crate is accessed via testfac-srv01.  Also, drp-ued-cmp001 has a private ethernet interface connected to the ATCA ethernet switch for the purpose of running the XPM software.  The ePix 10ka quad is hosted by the Kcu1500 card in drp-ued-cmp001.  The timing segment level is hosted by the Kcu1500 in drp-ued-cmp002.  Because the timing clocks and frame rates are different than LCLS2, the software requires special flags to configure the timing receivers with LCLS1 clock frequency and LCLS2 protocol decoding.


360 Hz capable EpixQuad

Kcu1500 on drp-ued-cmp001 with firmware image
         Build String : Lcls2XilinxKcu1500Pgp4_6Gbps_ddr: Vivado v2021.2, rdsrv300 (Ubuntu 20.04.1 LTS), Built Fri 18 Mar 2022 11:26:34 AM PDT by weaver

...