FIFO issue at startup
We recently always get this after startup. Needs fixed.
- Checking elinks
Both elinks (0 and 2) are locked.
uhal UDP error in FIFO.read_block, block size is 250
---------------------------------------------------------------------------
exception Traceback (most recent call last)
File ~/ETROC2_Test_Stand/module_test_sw/test_ETROC.py:354
351 print(red('No elink is locked.'))
353 fifo.send_l1a(10)
--> 354 _ = fifo.pretty_read(df)
355 etroc.reset()
357 print("\n - Getting internal test data")
File ~/ETROC2_Test_Stand/module_test_sw/tamalero/FIFO.py:214, in FIFO.pretty_read(self, df, dispatch, raw)
213 def pretty_read(self, df, dispatch=True, raw=False):
--> 214 merged = merge_words(self.read(dispatch=dispatch))
215 if raw:
216 return merged
File ~/ETROC2_Test_Stand/module_test_sw/tamalero/FIFO.py:158, in FIFO.read(self, dispatch, verbose)
155 data = []
156 while self.get_occupancy()>0:
157 # FIXME checking get_occupancy all the time is slow, but this is at least not broken.
--> 158 data += self.read_block(250, dispatch=dispatch).value()
160 #if (num_blocks_to_read or last_block):
161 # if dispatch:
162 # #while self.get_occupancy()>0:
(...)
184 # for read in reads:
185 # data += read.value()
186 return data
File ~/ETROC2_Test_Stand/module_test_sw/tamalero/FIFO.py:140, in FIFO.read_block(self, block, dispatch)
138 if dispatch:
139 reads = self.rb.kcu.hw.getNode("DAQ_RB0").readBlock(block)
--> 140 self.rb.kcu.hw.dispatch()
141 return reads
142 else:
exception: Bad response code (0x6 = 'bus timeout on read') received for Non-incrementing read at base address 0x100000 (node "TOP.DAQ_RB0.FIFO"). URI: "chtcp-2.0://localhost:10203?target=192.168.0.10:50001". Sent/received headers: 0x2f9cfa2f / 0x2f9c0026 (transaction 1/1 bytes into IPbus payload)
Can be recovered by running
fifo.reset()
fifo.send_l1a(5)
fifo.pretty_read(df)
fifo.reset()
But needs proper solution
Edited by Daniel Spitzbart