Devido ao período de tempo limite padrão no modelo de servidor de soquete simples, há a possibilidade de que a negociação automática a uma velocidade 1G possa falhar em dispositivos Cyclone® V, Cyclone® 10 e Max® 10.
Para contornar esse problema, o usuário é necessário modificar o código fonte BSP para aumentar o atraso do tempo limite da negociação automática e recompilar para gerar o novo arquivo ELF usando as instruções abaixo.
Abra o seguinte arquivo no diretório do projeto:
.. /software/<project_name_bsp>/drivers/src/altera_avalon_tse.c
Altere o atraso de tempo-limite de "usleep (1000)" para "usleep (5000)" conforme mostrado na próxima parte do código:
alt_32 alt_tse_phy_restart_an (alt_tse_phy_info *pphy, alt_u32 timeout_threshold) {
........................................
enquanto (alt_tse_phy_rd_mdio_reg(pphy, TSE_PHY_MDIO_STATUS, TSE_PHY_MDIO_STATUS_AN_COMPLETE, 1) == 0 ){
se(o tempo limite > timeout_threshold) { tse_dprintf(4), "AVISO: PHY[%d.%d] - Auto-negociação FAILED\n", mac_group_index, mac_info_index);
/* Restaurar endereço MDIO anterior */
alt_tse_phy_wr_mdio_addr(pphy, mdioadd_prev);
TSE_PHY_AN_NOT_COMPLETE de devolução;
}
usleep (5000); atualizado de usleep (1000)
}