-
Notifications
You must be signed in to change notification settings - Fork 289
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
efinix_trion_t120_bga576_dev_kit ethernet not working #394
Comments
Hi @sammhho, properly validating RGMII on the this dev kit indeed still needs to be done. The last status was that the design was compiling fine and at least one direction was working (don't remember if this was RX or TX) and the other was not (or with errors). The issue is probably related to clk/data alignment and timings that needs to be adjusted. I could have a closer look. @fjullien also got it working, but IIRC it was requiring a hardware change. @fjullien: do you remember? Since @sammhho is from Efinix, maybe we could discuss it here directly. Otherwise nice for the RGMII over QSE for Titanium, I'm currently working on a Titanium project with a Linux SoC on the FPGA and was looking to add Ethernet to the TI60 F225 dev kit only 2 days ago... (Only with RMII but abandoned since this would require specific hardware with the 1.8V IOs). So I would be really interested by the QSE/RGMII adapter and to collaborate in this. |
Hi, The problem was (if I remember correctly) that the tx_ctl pin (E24) does not support DDIO. With this modification, the RGMII worked correctly. |
@enjoy-digital That's definitely an error in PCB design using a non-DDIO pin of the FPGA. I've heard that my colleague is revising that PCB but he's still sourcing parts, design not revised yet. |
Thanks @sammhho for the feedback. So things make sense now. We should also probably try to force it to 100M mode then through MDIO. I'll try to do a test very soon. On board that are correctly wired, current solution should work. Supporting Titanium should only be a matter of adapting https://github.com/enjoy-digital/liteeth/blob/master/liteeth/phy/trionrgmii.py to Titanium primitives. Happy to do it/test it if you can provide QSE <-> RGMII extension boards. |
@enjoy-digital Thanks a lot for your support, I emailed you (the address in enjoy-digital GitHub profile) separately on the QSE card stuffs. |
@enjoy-digital has this been closed by the recent trion LiteEth work? |
Hi @enjoy-digital, may I ask what's the current support status of ethernet on the Trion t120f576 dev kit?
Is it supposed to be working, or what needs to be done to make it work?
Since there seems to be out-of-the-box support of ethernet here
litex-boards/litex_boards/targets/efinix_trion_t120_bga576_dev_kit.py
Line 347 in 4835373
I tried to build the SoC and got a synthesis error about multiple drives on the eth_tx_rst reset signal.
I looked into the code and found that reset is built here
https://github.com/enjoy-digital/liteeth/blob/b0e72431234cbbf42a0f74f1a5f2bff145dfc043/liteeth/phy/trionrgmii.py#L177
from the CSR reset:
self._reset = CSRStorage()
But yet the
pll.create_clkout
call herehttps://github.com/enjoy-digital/liteeth/blob/b0e72431234cbbf42a0f74f1a5f2bff145dfc043/liteeth/phy/trionrgmii.py#L161
when called with the default
with_reset=True
, builds a reset for the domainself.cd_eth_tx
from inverting the PLL locked https://github.com/enjoy-digital/litex/blob/c401bdd7f18f769cd59ddf77320dd8c17e50178c/litex/soc/cores/clock/efinix.py#L105So by doing
pll.create_clkout
withwith_reset=False
on line 161 I got the SoC built successfully,and ran the linux-on-litex-vexriscv on it fine.
But then it won't fetch
boot.json
from tftp, so I booted thru serial, and within the Linux I can actually see theeth0
device and successfully set ip/netmask etc., and yetping
-ing other IPs give no response.BTW thx for supporting Efinix!
At Efinix we are also readying a RGMII ethernet adapter (via QSE sockets) for current Ti60 and upcoming Ti180 products, I guess I can help porting it to LiteX-boards if the
trionrgmii
code actually works.The text was updated successfully, but these errors were encountered: