01-03-2019 04:49 AM
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:
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?
01-03-2019 08:05 AM
are you doing baremetal or linux?
If linux, then have a look at the fixed link wiki
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.
01-03-2019 08:05 AM
are you doing baremetal or linux?
If linux, then have a look at the fixed link wiki
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.
01-04-2019 04:12 AM
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 = <ðernet_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>;
};
};
};
01-07-2019 06:37 AM - edited 01-07-2019 07:03 AM
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?