UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Contributor
Contributor
386 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
Moderator
Moderator
363 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.

 

3 Replies
Moderator
Moderator
364 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.

 

Contributor
Contributor
342 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
Contributor
Contributor
296 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