Versions Compared

Key

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

...

  • When only one datadev device is found in /dev or /proc when two are expected, the BIOS PCIe bifurcation parameter may need to be changed from "auto" or "x16" to "x8x8" for the NUMA node (slot) containing the PCIe bus holding the KCU card
    • If the BIOS PCIe bifurcation parameter seems to be missing (was the case for the SRCF DRP machines), the BIOS version may be out of date and need updating.  See Updating the BIOS.
  • kcuSim -t (resets timing counters)
  • kcuSim -s (dumps stats)
  • kcuSim -c (setup clock synthesizers)
  • Watch for these errors: RxDecErrs 0 RxDspErrs 0
  • reload the driver with "systemctl restart tdetsim"
  • currently driver is in /usr/local/sbin/datadev.ko, should be in /lib/modules/<kernel>/extra/
  • reloading the driver does a soft-reset of the KCU (resetting buffer pointers etc.).
  • if the soft-reset doesn't work, power-cycle is the hard-reset.
  • program with this command:  "python software/scripts/updatePcieFpga.py --path ~weaver/mcs/ --dev /dev/datadev_1" (datadev_1 if we're overwriting a TDET kcu, or could be a datadev_0 if we're overwriting another firmware image)
  • to see the optical powers Matt says we should run the software in psdaq/psdaq/pykcu (the second argument is a base name for exported epics vars).  Note that the hsd kcu doesn't seem to output optical powers (Matt will look into it).  So only currently works with timing-system/sim kcu.

    Code Block
    drp-neh-cmp001:~$(ps-4.5.11) claus@drp-srcf-cmp005:srcf$ pykcu -d /dev/datadev_1 -P DAQ:NEHSRCF &
    Rogue/pyrogue version v5.9.3. https://github.com/slaclab/rogue
    Start: Started zmqServer on ports 9103-9105
    ClkRates:  (1850.9871040, 1850.9746880)
    RTT:  ((0, 0), (0, 0), (0, 0), (0, 0))
    drp-neh-cmp001:~$2022-03-16T18:24:31.976 Using dynamically assigned TCP port 56828.
    
    Then run pvget to see optical powers:
    
     (ps-4.5.11) claus@drp-srcf-cmp005:srcf$ pvget DAQ:NEHSRCF:DRP_NEHSRCF_CMP001CMP005:MON
    DAQ:NEHSRCF:DRP_NEHSRCF_CMP001CMP005:MON 20212022-1203-0316 18:4624:3831.708983
     RxPwr TxBiasI FullTT nFullTT
    3 1.7888017       037.312      0       0
         0.424       037.376      0       0
         0.3964       038.272      0       0
         0.3208       036.992      0       0
    drp-neh-cmp001:~$ 
  • this is the correct firmware to program into the kcu:

    Code Block
    drp-neh-cmp001:~$ ls -rtl ~weaver/mcs/*TDet*2020*
    -rw-r--r-- 1 weaver ec 31345008 Jun 12  2020 /cds/home/w/weaver/mcs/DrpTDet-20200612_primary.mcs
    -rw-r--r-- 1 weaver ec 31345008 Jun 12  2020 /cds/home/w/weaver/mcs/DrpTDet-20200612_secondary.mcs
    drp-neh-cmp001:~$ 

...

Now we can bring up hsdpva like "hsdpva DAQ:TMO:HSD:2_41:A DAQ:TMO:HSD:2_41:B".

Optical Powers

You can see optical powers with the pykcu command (and pvget).  See the timing-system section for an example of how to do this.

PvaDetector

  • If you're seeing std::bad_alloc, see note above in 'datadev Driver' about configuring tdetsim.service
  • use "-vvv" to get printout of timestamp matching process
  • options to executable:  "-1" is fuzzy timestamping, "-0" is no timestamp matching, and no argument is precise timestamp matching.
  • the IP where the PV is served might not be the same as the IP returned by a ping. For example: ping ctl-kfe-cam-02 returns 172.21.92.80, but the PV is served at 172.21.156.96
  • netconfig can be used to determine the IP where the PV is served. For example:

    /reg/common/tools/bin/netconfig search ctl-kfe-cam-02-drp

    ctl-kfe-cam-02-drp:
    subnet: daq-drp-neh.pcdsn
    Ethernet Address: b4:2e:99:ab:14:4f
    IP: 172.21.156.96
    Contact: uid=velmir,ou=People,dc=reg,o=slac
    PC Number: 00000
    Location: Same as ctl-kfe-cam-02
    Description: DRP interface for ctl-kfe-cam-02
    Puppet Classes:

    Found 1 entries that match ctl-kfe-cam-02-drp.

...