[INSTRM-907] Controller FPGA code cannot handle commands sent over multiple network packets Created: 21/Feb/20 Updated: 17/Jun/22 Resolved: 24/Mar/20 |
|
| Status: | Done |
| Project: | Instrument control development |
| Component/s: | ics_mps_fpga |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Critical |
| Reporter: | cloomis | Assignee: | cloomis |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Description |
|
The command parser for the cobra FPGA does not wait for new TCP traffic to arrive and be queued in order to complete receiving a command of a known length. After the first (or some) packet has been consumed, the parser sees no data and drops the command. In addition, it does not return an error packet (which are defined in the protocol). I have a concise tcpdump file for this, which I'll annotate and attach. At first glance, the fixes are pretty simple, though I think we should look at the (small) code a bit more carefully: there are other infelicities. Note that the code in question is in the C part of the image, not the FPGA part. While doing this, I suggest we fix The code is documented to have been built with Vivado 2017.2. That is still available, but newer versions are probably fine: Xilinx is in the business of stability.
|
| Comments |
| Comment by cloomis [ 24/Mar/20 ] |
|
Merged at 187471a, tagged 2.0.0 This includes a crude INSTALL.md, the C code changes, and the .o and .elf binaries. It also includes a new final download.bit file for the hardware layout, which was not in the original repo. This does not include all the other changes, which came from rebuilding the intermediate and final .bit files. I am not quite sure what to do about those. Nearly all are intermediate files which I think can be removed from the repo, at the cost of requiring a full regeneration of the FGPA layout if we ever need to rebuild. |