-
Notifications
You must be signed in to change notification settings - Fork 569
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ethernet connection stops if two packets are sent too close (ECP5 5A75B) #1268
Comments
Hi @faeboli,
Could you see if with the default value of 16 and with a maximum number of read of 4, 8, 16 the issue also happens? This could also be interesting to put a LiteScope instance in your design (over UART or JTAG) and see what happens internally:
Now that JTABBone is supported in ECP5, it's pretty easy/convenient to use it with just a |
Thank you for your answer!
Results as similar, i.e. if the delay is commented out, litex panics when 2 packets are sent less than about 50us apart.
|
Now I have configured JTAG Bridge and I'd like to try to use LiteScope for understanding something more |
@faeboli: Sorry for the delay, I'll try to reproduce here and if so, should be able to fix directly. |
@enjoy-digital |
@faeboli: OK thanks. Funny thing is that I also played with Linux-CNC in the past and also thought about using LiteEth + FPGA for such purposes (but sadly don't have time for all projects...). So that's great seeing this project and also a motivation for me to provide more support now that things are more concrete and related to something I'm also interested in :) |
@enjoy-digital |
Great, thanks for the feedback @faeboli. Please ask if any issue in the future since as I said I find this project very interesting and willing to help. I now also better understand the request with enjoy-digital/liteeth#103, but still haven't been able to think about it. |
Thank you for your support, there is a bunch of smart guys at linuxcnc forum that are actively working on litex for linuxcnc, in my opinion the availability of cheap fpga boards with gigabit ethernet together with linuxcnc on raspberry is a game changer for low cost cnc builds. The possibility to daisy chain several boards will help to build robust and dependable control hardware. Fabio. |
That's great to see this, I'll have think about the best way to enable daisy-chain in LiteEth. And if features are missing or issues are found during your efforts to use it with linuxcnc, feel free to ask on github issues or join the #litex channel on libera.chat. |
The intention of increasing buffer size up to 1060 was to increase available amount of wishbone registers exchanged in a single packet. |
Hi @romanetz, buffer_depth is expressed in wishbone words and a maximum of 255 is supported by the Etherbone protocol, so 1060 was not a valid value. A check has been added to LiteEth to prevent miss-configuration: enjoy-digital/liteeth@bc9162d. |
Hello,
I'm having a problem with etherbone: the connection stops working if two packets are sent too close to each other.
The only way to restore connection is to power cycle the board.
The packets need to be very close (few tens of us apart) to happen, but the problem appear after some minutes in my
raspi4 if I send 1 packet per ms to the board.
I was able to reproduce the problem on my ubuntu 20.04 LTS host machine with the default board target file:
Litex updated this evening.
Board 5A75B v8.0
colorlight_5a_75x.py edited with increased buffer depth on line 166:
self.add_etherbone(phy=self.ethphy, ip_address=eth_ip,buffer_depth=1060)
build command:
./colorlight_5a_75x.py --revision=8.0 --uart-name=crossover --eth-ip="192.168.2.50" --with-etherbone --csr-csv=csr.csv --build
For reproducing the problem I've used the python code attached here, the data is a packet that asks to read back contents of 45
contiguous addresses starting from 0x00000000.
If I comment out the delay, the board stops working and need a power cycle.
This situation can happen for example if the host machine sends arp messages near my UDP etherbone packets.
Is there something I'm doing wrong? Or some workaround?
If anybody can test please let me know if the problem can be reproduced.
Thanks
The text was updated successfully, but these errors were encountered: