cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Contributor
Contributor
2,793 Views
Registered: ‎03-03-2017

RGMII to 1000BASE-X using 88E1512

Jump to solution

Hello,

I'm using TE0820 (Zynq UltraScale+ XCZU4CG) that integrates the Gigabit Ethernet transceiver PHY Marvell 88E1512. An SFP module is connected to its SGMII ports (S_in, S_out), while MDI ports remain unconnected. The MAC interface is RGMII.

In the FSBL, I'm able to configure the registers via MDIO to select the "RGMII (System mode) to 1000BASE-X" mode (the register configuration has been checked in u-boot). I also configure the SGMII Output Amplitude to "111". However, what I see on the screen is:

ethernet@ff0e0000 Waiting for PHY auto negotiation to complete......................................... TIMEOUT !

Reading the registers I can check that:

  • Speed 1000 Mbps
  • Full duplex
  • Remote fault condition not detected
  • Autonegotiation enabled / PHY able to perform Auto-Negotiation / Autonegotiation process complete
  • Link is down
  • Isolation is not used

Running Petalinux with the same register configuration in the device tree reflects the same behavior (no IP is provided). Routing PHY_LED0 to an external LED and programming it to check the activity, I can see there is transmitting information.

I've revised previous posts on this topic, but I've not been able to find a solution.

Any suggestion on what I'm missing?

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Moderator
Moderator
2,770 Views
Registered: ‎09-12-2007

Re: RGMII to 1000BASE-X using 88E1512

Jump to solution

are you doing baremetal or linux?

 

If linux, then have a look at the fixed link wiki

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842230/Zynq+Ultrascale+Fixed+Link+PS+Ethernet+Demo

 

If baremetal, you would have to set this manually. You mentioned a few things, but you need to disable auto neg too in the gem.

 

View solution in original post

3 Replies
Highlighted
Moderator
Moderator
2,771 Views
Registered: ‎09-12-2007

Re: RGMII to 1000BASE-X using 88E1512

Jump to solution

are you doing baremetal or linux?

 

If linux, then have a look at the fixed link wiki

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842230/Zynq+Ultrascale+Fixed+Link+PS+Ethernet+Demo

 

If baremetal, you would have to set this manually. You mentioned a few things, but you need to disable auto neg too in the gem.

 

View solution in original post

Highlighted
Contributor
Contributor
2,749 Views
Registered: ‎03-03-2017

Re: RGMII to 1000BASE-X using 88E1512

Jump to solution

Thanks for your answer, @stephenm, but it has not worked. I'm certainly using Petalinux.

By the way, I will show you my device tree, only to see if someone can find an error there:

/* ETH PHY */
&gem3 {
    phy-handle = <&ethernet_phy0>;
    phy-mode = "rgmii-id";
    status = "okay";
    mdio {
        #address-cells = <1>;
        #size-cells = <0>;
        ethernet_phy0: ethernet_phy@0 {
            compatible = "marvell,88e1510";
            device_type = "ethernet-phy";
            reg = <1>;
            marvell,reg-init = <0x12 0x14 0x0 0x8202 0x01 0x1A 0x0 0x0047 0x01 0x0 0x0 0x9140 0x03 0x10 0x0 0x0501 0x03 0x11 0x0 0x4415>;
        };
    };
};

 

0 Kudos
Highlighted
Contributor
Contributor
2,703 Views
Registered: ‎03-03-2017

Re: RGMII to 1000BASE-X using 88E1512

Jump to solution

Taking a deeper look into fixed-link I managed to get it working by replacing the previous device-tree with this one:

/include/ "system-conf.dtsi"
/ {
};
&gem0 {
	local-mac-address = [00 0a 35 00 1e 53];
	xlnx,eth-mode = <0x1>;
	fixed-link {
	      speed = <1000>;
	      full-duplex;
	};
};

 And the link becomes up:

Configuring network interfaces... [ 4.453648] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
udhcpc (v1.24.1) started
Sending discover...
[ 5.483381] macb ff0e0000.ethernet eth0: link up (1000/Full)
[ 5.488987] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Sending discover...
Sending select for 10.30.0.110...
Lease of 10.30.0.110 obtained, lease time 43200
/etc/udhcpc.d/50default: Adding DNS 10.30.0.1
done.

Can anyone provide some insight about this result and if it is possible to get it working avoiding the fixed-link node?

0 Kudos