Karena periode batas waktu default dalam template Simple Socket Server, ada kemungkinan bahwa negosiasi otomatis pada kecepatan 1G mungkin gagal dalam perangkat Cyclone® V, Cyclone® 10, dan Max® 10.
Untuk mengatasi masalah ini, pengguna diminta untuk memodifikasi kode sumber BSP untuk meningkatkan penundaan batas waktu negosiasi otomatis dan mengkompilasi ulang untuk menghasilkan berkas ELF baru menggunakan petunjuk di bawah ini.
Buka file berikut di direktori proyek:
.. /perangkat lunak/<project_name_bsp>/driver/src/altera_avalon_tse.c
Ubah penundaan batas waktu dari "usleep(1000)" menjadi "usleep(5000)" seperti yang ditunjukkan pada bagian kode berikutnya:
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(batas waktu > timeout_threshold) { tse_dprintf(4, "PERINGATAN: PHY[%d.%d] - Negosiasi Otomatis GAGAL\n", mac_group_index, mac_info_index);
/* Pulihkan alamat MDIO sebelumnya */
alt_tse_phy_wr_mdio_addr(pphy, mdioadd_prev);
kembali TSE_PHY_AN_NOT_COMPLETE;
}
usleep(5000); Diperbarui dari Usleep(1000)
}