AnsweredAssumed Answered

Use KSZ9031 in 100MB mode

Question asked by Pierre-Olivier Huard on Dec 16, 2016
Latest reply on Dec 23, 2016 by Pierre-Olivier Huard


We are using an iMX6Q module on our carrier board. We use the KSZ9031 as Ethernet PHY but we have a small issue. We use only 4 lines on the KSZ9031, for 10/100 mode.

Without any configuration in the kernel, the 10/100 mode is detected but it takes a lot of time and block the kernel for 20sec.


[ 8.994243] fec 2188000.ethernet eth0: Freescale FEC PHY driver [Micrel KSZ9031 Gigabit PHY] (mii_bus:phy_addr=2188000.ethernet:07, irq=-1)
[ 9.043578] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready

[ 27.994108] libphy: 2188000.ethernet:07 - Link is Up - 100/Full

[ 28.000079] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready


I read on the documentation that I need to change some registers to set 10/100 mode:

- Reg 0x0 set Bit[6] to '0'
- Reg 0x9, set Bit[9:8] to '00'
- Reg 0x0, set Bit[9] to '1'


But I don't know where I need to set this registers in the kernel, any advice?

Thanks a lot,