Second Ethernet on Colibri VFxx not working with LAN8710A phy

I developed a custom board for Collibri VF50.
I added a second ethernet (LAN8710A) to my custom board.
I enable the SMSC PHY driver from kernel configuration.

Device Driver
  [*] Network device support --->
    -*- PHY Device support and infrastructure
      <*> Drivers for SMSC PHYs

I used the provided dual-eth devicetree example to get the second ethernet available.
I can see the fec0 and fec1 both in my system.

When I tried to run ‘ifconfig eth0 up’ i get the following error message:

root@colibri-vf:~# ifconfig eth0 up
[   26.912416] fec 400d0000.ethernet eth0: no PHY, assuming direct connection to switch
[   26.920436] libphy: PHY fixed-0:00 not found
[   26.924766] fec 400d0000.ethernet eth0: could not attach to PHY
ifconfig: SIOCSIFFLAGS: No such device

When I remove the 4.7k (or 1.5k) pull-up resistor for MDIO signal, i get the following message:

root@colibri-vf:~# ifconfig eth0 up
[  121.223140] fec 400d0000.ethernet eth0: Freescale FEC PHY driver [Generic PHY] (mii_bus:phy_addr=400d0000.etherne:00, irq=-1)
[  121.249667] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[  123.220167] fec 400d0000.ethernet eth0: Link is Up - 10Mbps/Half - flow control off
[  123.227960] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

Phy detected as Generic PHY, link shows up, but no communication!

Please help me to solve this ethernet issue.

It seems that the PHY is not able to negotiate a link speed. How does your schematics look? Toradex does have a dual ethernet reference schematics available Ethernet/Network (Linux) article.

Note also that Vybrid has an errata (e8052) in that area, Chapter 12.3.0.2 (“Internal RMII reference clock”) of the Vybrid has more details about how to work around it.