We are facing a similar issue on a custom board. We have an IMX6q with a KSZ9031RNX phy. We feed it a 25Mhz clock from a oscillator. Then from the phy we send the IMX6 a 125Mhz clock to ENET_REF_CLK pin. Using the same level shifter design as on the reference design. The NVCC_RGMII and NVCC_ENET port are both connected to 1.8V supply. I can see in the kernel that the phy is getting discovered, when i set its IP address. It also recognizes when i switch from 10 to a 100 network.
root@freescale ~$ ifconfig -a eth0 192.168.1.21 netmask 255.255.255.0
eth0: Freescale FEC PHY driver [Micrel KSZ9031 Gigabit PHY] (mii_bus:phy_addr=1:01, irq=-1)
root@freescale ~$ PHY: 1:01 - Link is Up - 10/Half
But when i ping i see activity TX activity on the board i am pinging but i don't receive a packet back.
Do we have to run the NVCC_RGMII port at 2.5V in order for gigabit Ethernet to work? Or do I have a driver issue. I modified the current micrel driver to recognize the ksz9021 as the ksz9031 since that are similar. Do you have any patches that will support a KSZ9031 phy?