of_mdiobus_register never failed when PHY id read error

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

of_mdiobus_register never failed when PHY id read error

1,034 Views
laizhefeng
Contributor II

Hi, guys,

I have encountered a problem about the fec(freescale ethernet controller), it will cause the kernel panic when the ethernet cable repeat attached and detached for several times.

Fortunately, I finally found out the reason: the reset pin of PHY(LAN8720) in our board is connetted to a reset signal generate by a chip(SGM809), so when POR, PHY is reset automatically, in the meanwhile, the reset of PHY is out of software control. If kernel command line contain "console=/dev/null", read PHY id failed, but when "console=/dev/ttyAMA0" everything is fine, the difference between these is that the data output from UART add some delay between PHY reset and PHY id read operation.

It is easy to solve this problem when we know the reason, but what I don't understand is why of_mdiobus_register() takes it is fine when PHY id read failed and go ahead to register the enet device, if this is not a problem, why the attached/detached of enet cable cause the kernel panic?

PS:

I found that at Apr 17 2016, a kernel patch change of_mdiobus_register_{device|phy} from return "int" to "void", so I guess in the maintainer's opinion register phy should always success, in the contrast it is the responsible for fec driver to avoid kernel panic when no phy connected(PHY id read faile, etc).

Labels (2)
0 Kudos
2 Replies

792 Views
art
NXP Employee
NXP Employee

To make me able to provide you with a reasonable answer, first of all, please specify what exactly i.MX family processor do you use. Also, please provide the part of the schematic that shows the interconnection of the PHY and the processor.


Have a great day,
Artur

0 Kudos

791 Views
laizhefeng
Contributor II

processor: imx6ul

R286 and R143 is NC.

phy.bmp

0 Kudos