I’m having a problem connecting Ethernet via RGMII from Jetson Xavier AGX module to ZynqMP with GMII2RGMII IP directly without PHYs. Xavier can send ping packets and Zynq does receive them and responds back, data is reaching RGMII lines on the Xavier side but Xavier does not receive anything, RX and error counters at zero. I have seen similar problems in prior posts on the forum but with no resolution. My Xavier device tree for the EQOS is following:
ether_qos@2490000 {
/* PTP_ref clock speed in MHz /
nvidia,ptp_ref_clock_speed = <312500000>;
/ rxq_enable_ctrl =
* 0x0 = Not enabled, 0x1 = Enabled for AV
* 0x2 = Enabled for Legacy, 0x3 = Reserved
*/
nvidia,rxq_enable_ctrl = <2 2 2 2>;
nvidia,queue_prio = <0 1 2 3>;
nvidia,use_tagged_ptp;
nvidia,ptp_dma_ch = <3>;
nvidia,chan_napi_quota = <64 64 64 64>;
nvidia,pause_frames = <0>; /*0=enable, 1=disable */
nvidia,phy-reset-gpio = <&tegra_main_gpio TEGRA194_MAIN_GPIO(G, 5) 0>;
nvidia,phy-max-frame-size = <16>; /* size in kbytes */
nvidia,eth_iso_enable = <1>; /*0=enable, 1=disable */
phy-mode = "rgmii";
// phy-handle = <&phy0>;
fixed-link {
speed = <100>;
full-duplex;
};
mdio {
compatible = "nvidia,eqos-mdio";
#address-cells = <1>;
#size-cells = <0>;
phy0: ethernet-phy@0 {
reg = <0>;
interrupt-parent = <&tegra_main_gpio>;
interrupts = <TEGRA194_MAIN_GPIO(G, 4) IRQ_TYPE_LEVEL_LOW>;
marvell,copper-mode;
// Setup LED[2] as interrupt pin (active low)
marvell,reg-init = <0x03 0x12 0x7fff 0x880>;
};
};
};
Zynq is also configured for 100Mbps full duplex fixed link. Nothing much interesting in dmesg log, link comes up. Any ideas how can I figure out why EQOS is not seeing incoming data?
Thanks.