[U-Boot] Ethernet PHY Power Down
Michael Welling
mwelling at ieee.org
Fri Nov 6 00:06:10 CET 2015
I have run into an issue with a KSZ9031 Gigabit Ethernet PHY on an IMX6 module.
After booting into Linux and rebooting the ethernet fails consistently.
With a bit of investigation I found that the power-down bit in the PHY control
register is being set on reboot.
=> dhcp
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
BOOTP broadcast 4
BOOTP broadcast 5
.
.
Abort
=> mii dump 1 0
0. (1940) -- PHY control register --
(8000:0000) 0.15 = 0 reset
(4000:0000) 0.14 = 0 loopback
(2040:0040) 0. 6,13 = b10 speed selection = 1000 Mbps
(1000:1000) 0.12 = 1 A/N enable
(0800:0800) 0.11 = 1 power-down
(0400:0000) 0.10 = 0 isolate
(0200:0000) 0. 9 = 0 restart A/N
(0100:0100) 0. 8 = 1 duplex = full
(0080:0000) 0. 7 = 0 collision test enable
(003f:0000) 0. 5- 0 = 0 (reserved)
When I manually toggle the power down bit it starts to work again.
=> mii write 1 0 1140
=> dhcp
FEC Waiting for PHY auto negotiation to complete........ done
BOOTP broadcast 1
DHCP client bound to address 192.168.0.12 (62 ms)
I tried performing the above steps in the PHY driver code with little luck.
When I toggle the bit in the code the first dhcp always fails but then it
works on subsequent attempts.
Any ideas?
More information about the U-Boot
mailing list