Hello Manfred,
In fact, in ethernetif.c file, only low_level_init and low_level_output functions are using PHY_xxx functions in which it is necessary to specify phy address.
In your case that phy address should not be always set to zero, you can use MACROs for both adresses and then, use any of these values to select the correct address:
uint32_t phyAddr = PHY_ADDRESS_ONE;
and everything should be working well, except for PHY_Init function that is not using this phyAddr variable and instead of it, it is using a hardcoded 0 value in its initialization, so you can replace it for:
PHY_Init(ENET, phyAddr, sysClock);
And all functions should be using phyAddr according to this macro definition.
I hope this can help you!
Best Regards,
Isaac