En raison de la période de temporisation par défaut du modèle Simple Socket Server, il est possible que la négociation automatique à une vitesse 1G échoue dans les périphériques Cyclone® V, Cyclone® 10 et Max® 10.
Pour contourner ce problème, l’utilisateur doit modifier le code source BSP pour augmenter le délai d’expiration de la négociation automatique et recompiler pour générer le nouveau fichier ELF en suivant les instructions ci-dessous.
Ouvrez le fichier suivant dans le répertoire du projet :
.. /software/<project_name_bsp>/drivers/src/altera_avalon_tse.c
Modifiez le délai d’expiration de « usleep(1000) » à « usleep(5000) » comme indiqué dans la partie suivante du code :
alt_32 alt_tse_phy_restart_an(alt_tse_phy_info *pphy, alt_u32 timeout_threshold) {
........................................
while(alt_tse_phy_rd_mdio_reg(pphy, TSE_PHY_MDIO_STATUS, TSE_PHY_MDIO_STATUS_AN_COMPLETE, 1) == 0 ){
if(timeout > timeout_threshold) { tse_dprintf(4, « WARNING : PHY[%d.%d] - Auto-Negotiation FAILED\n », mac_group_index, mac_info_index);
/* Restaurer l’adresse MDIO précédente */
alt_tse_phy_wr_mdio_addr(Pphy, mdioadd_prev);
retourner TSE_PHY_AN_NOT_COMPLETE;
}
sommeil (5000); Mis à jour de Usleep(1000)
}