04-24-2020 08:43 AM
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.
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.
04-24-2020 08:46 AM
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