iEth PHYs are quite well interchangeable. If the hw has been done correctly, getting the phy working should be easy.
* First, check that the RMII/MII interface is configured correctly. If you are wired for MII, switch to MII; if you are wired for RMII, switch to RMII. Also, check your pinmux of the RMII/MII pins, that all of them are muxed correctly. Also check for the reset pin of the phy; if its connected to mcu, deassert the reset. If there are some other pins wired up, check them too.
* Then check the clocking of the PHY. If the phy has separate xtal, then its easy. If the phy gets clocked from mcu's MCO, check that the MCO is set up correctly and has correct frequency (some RMII phys have internal pll and require 25MHz input clock, that gets multiplied to 50). Now, the phy should get link up; usually the default config works well enough.
* Now start working on MDIO interface. First, double check the address of phy; the phys are addressed so that there could be multiple phys on one mdio interface. The addresses may depend on some strap pins of the phy. Test reading and writing some registers to verify MDIO access.
* Just to test the network connectivity, do a netif_set_link_up after lwip initialization. The phy status is needed for a couple of things: up/down status triggers dhcp client; existing connections or attempts are rejected immediately instead of timeout; also if the link speed is slower 10M or half duplex, you may have to reconfigure ethernet mac registers for a different interface. But for testing, things work with hardcoded values, set the link up and mac to 100M full duplex. Now, set the ip address and get ping going.
* As everything else works, write a service, that handles the phy link change. Either poll it every once in a while or set up the interrupt. The link status registers are usually the same over all phys, interrupt setup registers are not.