I have a Colibri vf50 module running linux V2.5 on a custom board with two LAN ports.
The onboard and off-board ethernet ports are detected on boot by the linux kernel:
[ 15.520727] fec 400d0000.ethernet eth0: Freescale FEC PHY driver [Generic PHY] (mii_bus:phy_addr=400d0000.etherne:00, irq=-1) [ 15.560467] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 15.710705] fec 400d1000.ethernet eth1: Freescale FEC PHY driver [Micrel KSZ8041] (mii_bus:phy_addr=400d1000.etherne:01, irq=-1) [ 15.744544] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
The off-board PHY (eth0) is detected as a [Generic PHY] rather than a [Micrel KSZ8041], the same as the onboard PHY (eth1).
Do I have to specify the Micrel device in the device tree somewhere?
Also, when I plug in a network cable into the off-board ethernet port (eth0), the network connection is shown as half duplex, no flow control:
[ 197.560866] fec 400d0000.ethernet eth0: Link is Up - 100Mbps/Half - flow control off [ 197.568786] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
whereas the same network plugged into the onboard ethernet port (eth1) is shown as full duplex, flow control rx/tx:
[ 17.710846] fec 400d1000.ethernet eth1: Link is Up - 100Mbps/Full - flow control rx/tx [ 17.719052] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
Is this due to the Generic PHY or do I need to configure the network configuration for full/half duplex and flow control?
Any help is most appreciated.