PocketBeagle 2: Ethernet Gigabit Cap over RGMII2

Hi All,
Currently, I am working on an open gigabit Ethernet cap for the pocket beagle 2 to leverage the TSN feature that the AM632 is providing and make it accessible openly for everyone.

The ultimate goal is to provide AVB/Milan pipewire on this mini Linux box. One colleague and I are the person behind this Milan/Pipewire, you can get additional information there: https://kebag-logic.com/. I have the Ethernet cap almost ready, I will share it on GitHub very soon with an open licence.

But for the RGMII to work, I need to match the flight time and length of the RGMII lanes. I cannot view the exact size of for the RGMII2 Lanes needed to have a working Gigabit network interface. I tried with Altium 365 online, but the distance was accounting for the additional shared lane. I use Kicad because it is free and I cannot open the .brd file from the github repo.

Has anyone Altium an can exacty measure, or even better, if someone from the HW dev team knows something about that please give me the answer.

Thank you all for your time

Hi all,
Here is the link to the repo, feel free to use it GitHub - kebag-logic/pocketbeagle2_ethernet_cap

Sorry it’s a mess, and the routing quality might not be exceptional, that’s my first project in 15 years forgot almost everything ^^.

Up? If someone can point me toward the resources to get the track measurement or to devs?
Thanks

Hey I also have a similar plan for my PocketBeagle 2 involving Ethernet and HDMI. Not sure if HDMI could work but I am glad to see your thread. I have access to PCB design softwares from Altium/Cadence and can help with finding the lengths of RGMII traces. I believe .BRD files are generated from Cadence Allegro

Hey, Super great new, thanks a lot!
I hope that we are within the specs :grimacing:

Here are the signal and their cap’s connection pin:

RGMII2 SIGNALS CPU BALLS CAP PIN
RD0 AE23 P1.27
RD1 AB20 P1.25
RD2 AC21 P1.23
RD3 AE22 P1.21
RX_CLK AD23 P1.34
RX_CTRL AD22 P1.19
TD0 Y18 P1.04A
TD1 AA18 P2.31A
TD2 (2 possibilities) AD21 P1.12A / P2.10 (the latter would be better as it is not shared)
TD3 (2 possibilities) AC20 P1.06A / P2.19 (the latter would be better as it is not shared)
TX_CLK AE21 P1.35
TX_CTRL AA19 P1.02A

I was able to extract the trace lengths of the nets as requested. The lengths are directly reported by Allegro:

RGMII2 SIGNALS CPU BALLS Length in mils
RD0 AE23 P1.27 - 2177.03mils
RD1 AB20 P1.25 - 1985.47mils (not exact due to T-branch to U11)
RD2 AC21 P1.23 - 2127.61mils (not exact due to T-branch to U11)
RD3 AE22 P1.21 - 2158.49mils (not exact due to T-branch to U11)
RX_CLK AD23 P1.34 - 2204.81mils (not exact due to T-branch to U11)
RX_CTRL AD22 P1.19 - 2249.93mils (not exact due to T-branch to U11)
TD0 Y18(netname=D20) P1.04A - 1182.32mils
TD1 AA18(netname=A13) P2.31A - 1991.72mils
TD2 (2 possibilities) AD21 P1.12A / P2.10 - 785.48mils
TD3 (2 possibilities) AC20 P1.06A / P2.19 - 328.86mils
TX_CLK AE21 P1.35 - 2442.23mils
TX_CTRL AA19 P1.02A - 2925.95mils

However by visual inspection, I saw that there are 5 nets that have a T-branch so instead of these RGMII traces going from SoC directly to P1/P2 Header, it is like SoC->Header->U11(MSPM0). Those are the highlighted 5 pads which are contiguous in the attached image which means the true time of arrival (electrical length) or for the signal to arrive from SoC to Header is shorter than the physical length reported by the software.

Now I am thinking to delete the extra connections to MSPM0 so that you can get the exact lenghts

Thanks for the work,

Yes, measuring the delay/length of the signal discarding the branching would make sense.
Do you think it will have a big impact on signal integrity?

Signal integrity not so much but possibly data integrity can be affected. The lengths of all clk/data lines are kept roughly the same (length matched) so that your data arrives at the same time or has no noticeable phase difference. I think it would be a good idea to know the the exact lengths so that you can compensate for length mismatch in your own Ethernet Cap to get a “Right the First Time” HW design. Give me a few days and I will get back with the exact lengths. I will take a look at your KiCAD design as well in the meanwhile.

1 Like

Here are the exact lengths of the RGMII lines after removal of T-branch traces(CLINES in Allegro). Small correction, T-branch occurs in AE23 instead of AD23 which I had reported earlier in the thread.

RGMII2 SIGNALS CPU BALLS Length (mils)
RD0 AE23 1808.5
RD1 AB20 1520.17
RD2 AC21 1511.44
RD3 AE22 1459.68
RX_CLK AD23 2204.81
RX_CTRL AD22 1350.87
TD0 Y18(netname=D20) 1182.32
TD1 AA18(netname=A13) 1991.72
TD2 (2 possibilities) AD21 785.48
TD3 (2 possibilities) AC20 328.86
TX_CLK AE21 2442.23
TX_CTRL AA19 2925.95

I started following the Github repository of the Ethernet cap design. Let me know if you need help there as well

1 Like

Hey that’s awesome, thanks again.

Yes, having help is very much appreciated.

My idea was to use this as an audio TSN box (based on Milan/AVB or pure AVB).
So there are 2 PMODs attached to the MCASP2 now. I do not really need them I can use the UAC Audio USB compliant interface providing 4x4 @ 48kHz.

So long story short, and if you’d like, we can remove them :slight_smile: .
Please don’t hesitate to contact me on GitHub or DM me here if you need.