[U-Boot] Ethernet PHY Power Down

Michael Welling mwelling at ieee.org
Fri Nov 6 21:22:22 CET 2015


Lets try this again with list membership.

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?
Has anyone else seen this issue with other PHYs?



More information about the U-Boot mailing list