Readout with more than 12 links

Hello,

according to Pippo, in order to start a readout with more than 12 links one needs to use both DMA endpoints. Are there some instructions on how to do this? I would assume the following:

  • start the roc-bench-dma for each end-point
  • adapt the tpc-readout-test.py script

For the later point, can i specify simply the link =[0,1,2,3,4,5,6,7,8,9,10,11,12,13]? Or do i need to copy the following part and adapt it for the second endpoint:

#enable selected links
links=[0,1,2,3,4,5,6,7,8,9,10,11]
#links=[1]
for l in links:
        cru.dwrapper.linkEnableBit(l)
        cru.dwrapper.setGbtDatapathLink(wrap=0,link=l,is_GBT_pkt=0,RAWBYLEN=1,RAWBYID=0,RAWMAXLEN=0x1EA)

cru.dwrapper.packetmuxPadLen(arbmode=0)
cru.dwrapper.setFlowControl(wrap=0,allowReject=0,forceReject=0)

The code looks like one needs to do this for each data path wrapper.

Cheers,
Torsten

Hello,

Yes you are correct. This is the way it is written for now. Initially, it was possible to use only one dwrapper and more than 12 links per dwrapper (we want to keep some compatibility with TRD for instance).

We could probably update the linkEnable function to do the necessary by itself, but then we would need the dwrapper to report its configuration (not implemented yet).

Cheers

Hello Olivier,

thanks for the info. No need to change anything, just wanted to know how to do it. Copying a few lines and adapting them works for me. I assume with the “wrap=N” N=[0,1] i specify the correct wrapper?

Cheers,
Torsten

Hello,

Yes it is:

  • w =0 and link 0 to 11
  • w =1 and link 0 to 11 for remaining links (corresponds to 12-23)

Cheers

Olivier B.

I think there is a bug in the 2.4.0 that doesn’t allow to do that.
Most of these problem have been fixed in the next release of the software.