Author Topic: TEBF0808 - PHY is not detected  (Read 2152 times)

ademski

  • Active Member
  • *
  • Posts: 1
TEBF0808 - PHY is not detected
« on: October 01, 2019, 04:14:37 PM »
Hello,
I'm having a problem with the phy of the TEBF0808 board. During the boot process, uboot doesn't detects the eth PHY.

Code: [Select]
Net:   ZYNQ GEM: ff0e0000, phyaddr 9, interface rgmii-id
PHY is not detected
GEM PHY init failed
No ethernet found.

But it doesn't happen always, it randomly works (with the same boot.bin):
Code: [Select]
Net:   ZYNQ GEM: ff0e0000, phyaddr 9, interface rgmii-id

Warning: ethernet@ff0e0000 (eth0) using random MAC address - ae:fa:79:ce:14:e9
eth0: ethernet@ff0e0000

I tried to workaround this problem pushing RST_BTN and PWR_BTN (long and short push) without success.
It looks like a POR or power sequence issue. Is it a known issue? How can i make it works always?

Regards

JH

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1605
Re: TEBF0808 - PHY is not detected
« Reply #1 on: October 02, 2019, 04:02:14 PM »
Hi,

which module did you use on the TEBF0808?
Which design did you use? Your own?
Can you try out our newest reference design please.
 - Download --> see wiki reference design description of the module you used.
 - prebuild Boot.bin and image.ub for different assembly versions are included

How old is your TEBF0808? You can also update one time the CPLD Firmware of the TEBF0808 (older version should not effect the ETH functionality but update is recommended), in case you has older one.
Changes: https://wiki.trenz-electronic.de/display/PD/TEBF0808+CPLD#TEBF0808CPLD-RevisionChanges
Update Instructions and download link: https://wiki.trenz-electronic.de/display/PD/TEBF0808+CPLD+Firmware
To check if you has the newest firmware(works only with the newest firmware): https://wiki.trenz-electronic.de/display/PD/TEBF0808+Getting+Started#TEBF0808GettingStarted-CPLDFirmware

br
John





simon.beaudoin

  • Active Member
  • *
  • Posts: 20
Re: TEBF0808 - PHY is not detected
« Reply #2 on: October 03, 2019, 05:11:47 PM »
Just want to give my 25 cents..

We ran into something similar on our design. We put 3 DP83867IRRGZT RGMII PHYs on our custom carrier board (we pretty much copied the TEBF0808 design) on GEM0, GEM1 and GEM3. Following the datasheet, the resistor values we have put on the bootstrap pins was suppsed to give us the following MDIO address respectively : 4 8 and C. It turned out that in reallity, the two first PHYs responded to different MDIO addresses : 5, 9 and C.

In petalinux, in the device-tree, if you populate the reg property of the PHY (i.e. the MDIO address) , the MDIO subsystem is going to probe for exactly this address. Whereas if you don't populate the reg property, the subsystem will detect it and begin to scan accross all the addresses and stop at the first address where it reads something meaningful, meaning a phy responsed. Just by the way, turned out there is a bug in 2018.2 about this behavior that was fixed in 2018.3 : If you left the reg property empty, is yould only scan the first address and then exit the loop before scanning all addresses.

That being said, what I mean to explain is that I learned not to rely on the defined address for those chips. We don't use ethernet for u-boot ethernet boot so we didn't care about u-boot not finding the phy, we only cared about linux finding it, which it did after simply letting reg property empty and letting it scan the bus.

In the datasheet of the chip, it says that the internal resistor composing the voltage divitor at the bootstrap pins is 9K +- 25%, which is huge. That's why they say to use 1% resistors to implement the voltage dividor.

My guess is that the chip is just on the edge of responding to one address, and sometimes at boot, it picks up a slightly different voltage at its bootstrap pin and reepond to the next address. Try one address a above and one address below.

You could patch the source code of u-boot and scan all the mdio addresses at boot like in linux if you want something bulletproof

JH

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1605
Re: TEBF0808 - PHY is not detected
« Reply #3 on: October 04, 2019, 10:29:04 AM »
Hi,
on TEBF0808 we use only one Marvell PHY. Address is set on device tree in the reference design.
@ademski: please try out prebuilt from reference design at first and check also your device tree.
@simons: thanks for your hints. I  think you use shared MDIO, correct? And you are right, petalinux has often problems with multiple ETH phys specially if you use shared MDIO. Xilinx provide sometimes patches for some some petalinux versions, sometimes it's fixed directly.
br
John

dario79

  • Active Member
  • *
  • Posts: 1
Re: TEBF0808 - PHY is not detected
« Reply #4 on: October 17, 2019, 12:24:34 PM »
Hello,
any news on this topic?
we are having a similar problem of ademski, u-boot doesn't detect the eth PHY.


Code: [Select]
U-Boot 2018.01 (Mar 14 2019 - 08:10:44 +0000) Xilinx ZynqMP ZCU102 rev1.0

I2C:   ready
DRAM:  2 GiB
EL Level: EL2
Chip ID: zu3cg
MMC:   mmc@ff160000: 0 (eMMC), mmc@ff170000: 1 (SD)
Using default environment

In:    serial@ff000000
Out:   serial@ff000000
Err:   serial@ff000000
Board: Xilinx ZynqMP
Bootmode: SD_MODE1
Net:   ZYNQ GEM: ff0e0000, phyaddr 1, interface rgmii-id
PHY is not detected
GEM PHY init failed
No ethernet found.
U-BOOT for petalinux

ZYNQ GEM: ff0e0000, phyaddr 1, interface rgmii-id
mdio_register: non unique device name 'eth0'
ZYNQ GEM: ff0e0000, phyaddr 1, interface rgmii-id
mdio_register: non unique device name 'eth0'
ZYNQ GEM: ff0e0000, phyaddr 1, interface rgmii-id
mdio_register: non unique device name 'eth0'
ZYNQ GEM: ff0e0000, phyaddr 1, interface rgmii-id
mdio_register: non unique device name 'eth0'
No ethernet found.
ZYNQ GEM: ff0e0000, phyaddr 1, interface rgmii-id
mdio_register: non unique device name 'eth0'

After when we check the dmesg on Linux we obtain:

Code: [Select]
root@petalinux:~# dmesg | grep eth
[    3.644316] macb ff0e0000.ethernet: Not enabling partial store and forward
[    3.646923] macb ff0e0000.ethernet eth0: no PHY found

We are using a TEBF0808 REV04A equipped with TE0803 with device XCZU3CG, the CPLD firmware version is the 7

We experienced these problems on prebuilt for petalinux 2017.04, the prebuilt for petalinux 2018.3, and also on our designs

best regards
Dario




 

JH

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 1605
Re: TEBF0808 - PHY is not detected
« Reply #5 on: October 18, 2019, 02:50:17 PM »
Hello,

your newest 2018.3 design is from: TE0803-StarterKit-vivado_2018.3-build_05_20190507093424.zip?

And which assembly variant of  XCZU3CG with did you use (newest PCB revision)? Can you send me the whole article name or the serial number?
What's the article number of your TEBF0808?  Can you send me the whole article name or the serial number?

ETH should be work with the 2018.3 design and the newest CPLD version. It does on my place.

Did you use TEBF0808 with ATX power supply or stand-alone 12V?

Can you check one time the contacts of the B2B connectors? Does it looks OK?  Is it connected correctly (maybe remove and pug again). If this not helps, please send a email to support@trenz-electronic.de

br
John