@RAc
There is a function in the FreeRTOS+TCP - vMACBProbePhy():
void vMACBProbePhy( void )
{
vPhyInitialise( &xPhyObject, xSTM32_PhyRead, xSTM32_PhyWrite );
xPhyDiscover( &xPhyObject );
xPhyConfigure( &xPhyObject, &xPHYProperties );
}
As you can see - xSTM32_PhyRead() and xSTM32_PhyWrite() are the encapsulation functions. These functions just use STM32 ETH HAL functions.
In order to work with MV88E6071, I need to rewrite xSTM32_PhyRead() and xSTM32_PhyWrite() to use indirect register access. But if I do it, this implementation will work only with MV88E6071 and xPhyDiscover() will fail.