Versions Compared

Key

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

...

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
  

...