I think I found an error in the ethernet HAL for the STM32F4 , can you confirm ?
The code after the LAN speed auto detection is this :
line 443 @stm32f4xx_hal_eth.c
if((phyreg & PHY_SPEED_STATUS) == PHY_SPEED_STATUS)
{
/* Set Ethernet speed to 10M following the auto-negotiation */
(heth->Init).Speed = ETH_SPEED_10M;
}
else
{
/* Set Ethernet speed to 100M following the auto-negotiation */
(heth->Init).Speed = ETH_SPEED_100M;
}
I think that the speed selection is inverted, I reverse the values and the interface start working
