DP83869HM: Unable to establish communications onto network.

Part Number: DP83869HM
Other Parts Discussed in Thread: DP83869

I have a custom PCB that interfaces with DP83869 fiber, it is unable to establish any communications onto the network. I have attached screenshots of the schematics. along with the device tree segment.

 

image.png

sfp0: sfp {
		compatible = "sff,sfp";
		maximum-power-milliwatt = <2000>;
		i2c-bus = <&i2c3>;
};

&fec {
	status="okay";
	phy-handle = <&ethphy1>;
	phy-mode = "rgmii-id";
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&pinctrl_fec>;
	pinctrl-1 = <&pinctrl_fec_sleep>;

	eth2_mdio: mdio {
		#address-cells = <1>;
		#size-cells = <0>;
		ethphy1: ethernet-phy@0 {
			compatible = "ethernet-phy-ieee802.3-c22","ethernet-phy-id2000.a0f1";
			device_type = "ethernet-phy";
			// interrupts not being processed correctly. using polling mode for now
			// interrupt-parent = <&gpio4>;
			// interrupts = <18 IRQ_TYPE_LEVEL_LOW>;
			reg = <0>;
			sfp = <&sfp0>;
			ti,op-mode = <DP83869_RGMII_1000_BASE>;
		};
	};
};

My system is able to identify the PHY and identify a carrier: 
image.png

image.png

Output from ethtool: 
image.png

Output from `ip a`

image.png

Output from `ifconfig eth0`

image.png

NIC Stats from ethtool:

NIC statistics:
     tx_dropped: 0
     tx_packets: 164
     tx_broadcast: 48
     tx_multicast: 116
     tx_crc_errors: 0
     tx_undersize: 0
     tx_oversize: 0
     tx_fragment: 0
     tx_jabber: 0
     tx_collision: 0
     tx_64byte: 0
     tx_65to127byte: 97
     tx_128to255byte: 19
     tx_256to511byte: 48
     tx_512to1023byte: 0
     tx_1024to2047byte: 0
     tx_GTE2048byte: 0
     tx_octets: 29367
     IEEE_tx_drop: 0
     IEEE_tx_frame_ok: 164
     IEEE_tx_1col: 0
     IEEE_tx_mcol: 0
     IEEE_tx_def: 0
     IEEE_tx_lcol: 0
     IEEE_tx_excol: 0
     IEEE_tx_macerr: 0
     IEEE_tx_cserr: 0
     IEEE_tx_sqe: 0
     IEEE_tx_fdxfc: 0
     IEEE_tx_octets_ok: 29367
     rx_packets: 2772
     rx_broadcast: 1
     rx_multicast: 0
     rx_crc_errors: 2771
     rx_undersize: 0
     rx_oversize: 0
     rx_fragment: 0
     rx_jabber: 0
     rx_64byte: 633
     rx_65to127byte: 1977
     rx_128to255byte: 79
     rx_256to511byte: 83
     rx_512to1023byte: 0
     rx_1024to2047byte: 0
     rx_GTE2048byte: 0
     rx_octets: 268789
     IEEE_rx_drop: 0
     IEEE_rx_frame_ok: 1
     IEEE_rx_crc: 2771
     IEEE_rx_align: 0
     IEEE_rx_macerr: 0
     IEEE_rx_fdxfc: 0
     IEEE_rx_octets_ok: 64
     rx_xdp_redirect: 0
     rx_xdp_pass: 0
     rx_xdp_drop: 0
     rx_xdp_tx: 0
     rx_xdp_tx_errors: 0
     tx_xdp_xmit: 0
     tx_xdp_xmit_errors: 0
     rx_pp_alloc_fast: 756
     rx_pp_alloc_slow: 13
     rx_pp_alloc_slow_ho: 0
     rx_pp_alloc_empty: 13
     rx_pp_alloc_refill: 0
     rx_pp_alloc_waive: 0
     rx_pp_recycle_cached: 0
     rx_pp_recycle_cache_full: 0
     rx_pp_recycle_ring: 1
     rx_pp_recycle_ring_full: 0
     rx_pp_recycle_released_ref: 0

 

How can i establish comunications here?

  • Hi, 

    It loos like the PHY has a link and can send out packets but cannot receive packets. Typically, this is due to RGMII delay mismatch. Have you enabled TX and RX CLK delay for RGMII? Enabling and adjusting CLK delay on RGMII typically will resolve the issue. I suggest to look into register 32h to enable RX and TX CLK delay and adjust the delay parameter.

    Best,

    J