cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
mansuramin
Adventurer
Adventurer
424 Views
Registered: ‎12-04-2019

ZCU102 PS GEM GMII to GMII MAC to MAC interface Fixed Link Duplex not set correctly

Hello

Using a ZCU102 dev board, vivado 2019.1, and petalinux 2019.1

I am trying to setup a Mac to Mac interface between my PS and PL via GEM0 GMII interface. See pic below. I exported my GMII interface from my PS and tied it to an external MAC.

image.png

I have applied patches AR 71295, 69143, 72806 to my petalinux project. 

I also applied kernal updates as mentioned below: 

petalinux-config -c kernel 
Enable Xilinx Phys Device Drivers > 
Network device support >
PHY Device support and infrastructure > 
<*> Drivers for xilinx PHYs 

For PL designs additionally,  disable 
Xilinx AXI DMAS Engine Device Drivers> 
DMA Engine Support>
<> Xilinx AXI DMAS Engine 


Attached is my device tree updates I used for petalinux with fixed link specified in lines 63-69.

 

 

&gem0 {
    phy-mode = "moca";
    fixed-link {
	speed = <1000>;
	full_duplex;
	};
};

 

 

When I build my SD card image, I and run the ethool command on ETH0, I see it comes up as 1000 speed but duplex is half not full. 

eth0 = gem0.

see below for ethtool dump showing eth0's duplex as being half.  

Here is the read back from the dev board  using ethtool 

root@Example:# ethtool eth1
Settings for eth1:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                             100baseT/Half 100baseT/Full
                                             1000baseT/Full
        Link partner advertised pause frame use: No
        Link partner advertised auto-negotiation: Yes
        Link partner advertised FEC modes: Not reported
        Speed: 1000Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 12
        Transceiver: internal
        Auto-negotiation: on
        Link detected: yes
root@Example:# ethtool eth0
Settings for eth0:
        Supported ports: [ TP MII ]
        Supported link modes:   1000baseT/Half 1000baseT/Full
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  1000baseT/Half 1000baseT/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Link partner advertised link modes:  1000baseT/Half
        Link partner advertised pause frame use: No
        Link partner advertised auto-negotiation: No
        Link partner advertised FEC modes: Not reported
        Speed: 1000Mb/s
        Duplex: Half
        Port: MII
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Link detected: yes

I wanted to know why the duplex is coming up incorrectly when I have it specified as full duplex. 

Fixed-link should bypass probing PHY, (since there is no PHY) and set speed, duplex info directly to MAC, right? 

I am seeing the phy being probed at bootup which is incorrect.

 

0 Kudos
Reply
1 Reply
mansuramin
Adventurer
Adventurer
422 Views
Registered: ‎12-04-2019

Also to add to what I just posted

 

If I use ethtool to set the duplex to full, the data flows with no errors.

I want to know how to make the link for eth0 (GEM0) come up as fixed link, 1000, full duplex on power up. Without user intervention and using the ethtool command to change the duplex. 

ethtool -s eth0 autoneg off
ethtool -s eth0 duplex full 
0 Kudos
Reply