Description
In this reference design, each port of the Ethernet FMC Max is driven by one of the hard gigabit Ethernet MAC controllers (GEMs) of the processing system (PS) — the same MAC controllers that normally drive the development board’s onboard Ethernet ports. The GEMs are routed into the programmable logic over EMIO GMII, where one Ethernet PCS/PMA or SGMII core (PG047) per port converts the GMII to SGMII over a gigabit transceiver lane. The SGMII lanes connect to the TI DP83867 PHYs on the Ethernet FMC Max.
The data path for each port is:
PS GEM <--EMIO GMII--> PCS/PMA core (PG047, SGMII) <--GT lane--> DP83867 PHY <--> RJ45
Key points of the architecture:
PS GEMs as the MACs: No soft MAC or DMA IP is used in the programmable logic; the Ethernet traffic is handled by the hard GEM controllers of the PS, so the standard GEM software drivers (baremetal
emacps, Linuxmacb) drive the ports.PCS/PMA in “Ethernet MAC: GEM” mode: Each PCS/PMA core is configured for the GEM and generates the GMII TX/RX clocks for it, adapting the data rate to the speed resolved by SGMII auto-negotiation with the PHY. The cores power up with the IEEE ISOLATE bit set, so software clears it over MDIO before traffic flows (baremetal and U-Boot do this during bring-up; Linux uses the
pcs-unisolateboot service).Shared MDIO bus: The Ethernet FMC Max has a single MDIO bus for its four PHYs (addresses 1, 3, 12 and 15 for ports 0-3). GEM0 masters that bus and manages all four PHYs, and also reaches every PL PCS/PMA core’s management interface at address 8+port (8-11) to clear its ISOLATE bit. The MDIO masters of the other GEMs are unused.
Port mapping: GEMn drives port n of the Ethernet FMC Max. The Zynq UltraScale+ targets use all four GEMs (4 ports); the Versal PS has only two GEMs, so the Versal target (VCK190) drives ports 0 and 1, and the PHYs of ports 2 and 3 are held in reset.
Maximum link speed is 1 Gbps: The PS GEM EMIO GMII path supports 10M/100M/1G operation.
Note
Because the GEMs are routed to the FMC through EMIO in these designs, the development board’s onboard Ethernet ports (normally wired to the GEMs through MIO) are not available.
Hardware Platforms
The hardware designs provided in this reference are based on Vivado and support a range of MPSoC and ACAP evaluation boards. The repository contains all necessary scripts and code to build these designs for the supported platforms listed below:
Zynq UltraScale+ platforms
Target board |
FMC Slot Used |
Supported |
Standalone |
PetaLinux |
|---|---|---|---|---|
HPC |
4x |
✅ |
✅ |
|
HPC0 |
4x |
✅ |
✅ |
|
HPC0 |
4x |
✅ |
✅ |
|
FMCP |
4x |
✅ |
✅ |
Versal platforms
Target board |
FMC Slot Used |
Supported |
Standalone |
PetaLinux |
|---|---|---|---|---|
FMCP1 |
2x |
✅ |
✅ |
Software
These reference designs can be driven by either a standalone application or within a PetaLinux environment. The repository includes all necessary scripts and code to build both environments. The table below outlines the corresponding applications available in each environment:
Environment |
Available Applications |
|---|---|
Standalone |
lwIP Echo Server |
PetaLinux |
Built-in Linux commands |