[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