cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
305 Views
Registered: ‎02-14-2020

ZYNQ GEM: ff0b0000, phyaddr 0, interface rgmii-id mdio_register: non unique device name 'eth0'

I am trying to get the Ethernet connection to work on my custom board. The board uses the KSZ9031RNX Microchip Phy. I am having trouble setting up the device tree correctly to get the proper settings for the gem. Currently, the following message is printed over serial for the image runs:

 

U-Boot 2018.01 (Feb 13 2020 - 21:18:13 +0000) Xilinx ZynqMP ZCU102 rev1.0

 

DRAM:  2 GiB

EL Level:       EL2

Chip ID:        zu3eg

MMC:   mmc@ff160000: 0 (eMMC)

SF: Detected n25q128 with page size 512 Bytes, erase size 128 KiB, total 32 MiB

*** Warning - bad CRC, using default environment

 

In:    serial@ff000000

Out:   serial@ff000000

Err:   serial@ff000000

Board: Xilinx ZynqMP

Bootmode: QSPI_MODE

Net:   ZYNQ GEM: ff0b0000, phyaddr 0, interface rgmii-id

PHY is not detected

GEM PHY init failed

No ethernet found.

U-BOOT for pzu_25g

 

ZYNQ GEM: ff0b0000, phyaddr 0, interface rgmii-id

mdio_register: non unique device name 'eth0'

ZYNQ GEM: ff0b0000, phyaddr 0, interface rgmii-id

mdio_register: non unique device name 'eth0'

ZYNQ GEM: ff0b0000, phyaddr 0, interface rgmii-id

mdio_register: non unique device name 'eth0'

ZYNQ GEM: ff0b0000, phyaddr 0, interface rgmii-id

mdio_register: non unique device name 'eth0'

No ethernet found.

ZYNQ GEM: ff0b0000, phyaddr 0, interface rgmii-id

mdio_register: non unique device name 'eth0'

 

I have attached my current device tree below:

0 Kudos
1 Reply
Highlighted
Xilinx Employee
Xilinx Employee
274 Views
Registered: ‎08-15-2018

Re: ZYNQ GEM: ff0b0000, phyaddr 0, interface rgmii-id mdio_register: non unique device name 'eth0'

Hey gshaw@evertz.com,

Typically when I see this error it's because the PHY isn't responding. I had a look at your device tree, and I've cleaned up the GEM section for you, give this a shot:

&gem0 {
    status = "okay";
    phy-mode = "rgmii-id";
    phy-handle = <&phy0>;
    phy0: phy@0 {
        reg = <0x0>;
}; };

Just a word of caution - MDIO address 0x0 is the MDIO broadcast address, so another issue could arise if you have multiple PHYs on the line and they're all responding to the request at 0x0. If this is the only PHY on the line, then you should be alright.

 

A nice tool to gain some insight into how your system is responding on the MDIO line is the MII tool from the U-Boot command line.

 

I'd give the following a shot:

mii info

 

This will dump out all responding addresses on the MDIO line for eth0. If you'd like to switch to another interface, you can simply use:

mii device ethX

For example, here's the output of the ZCU102 MII info dump using the reference design:

ZynqMP> mii info
PHY 0x0C: OUI = 0x80028, Model = 0x23, Rev = 0x01,  10baseT, HDX
ZynqMP> 

This design uses GEM3, pinned out via RGMII to the on-board TI DP83867 PHY, which we can see is strapped to address 0xC.

 

If you don't see the PHY responding using mii info, I'd double check that your PHY is actually up and running (has good clock, out of reset, etc.).

 

Hope this helps get you on the right track!

 

Thanks,

Clayton