文章 ID: 000086267 内容类型: 故障排除 上次审核日期: 2020 年 03 月 23 日

为什么我的Nios® II简单插槽服务器设计示例无法以 1G 速度自动协商?

环境

    英特尔® Quartus® Prime Pro Edition
    英特尔® Nios® II 嵌入式设计套件 (EDS)
BUILT IN - ARTICLE INTRO SECOND COMPONENT
说明

由于简单套接字服务器模板中的默认超时期限,Cyclone® V、Cyclone® 10 和 Max® 10 设备中,1G 速度的自动协商可能会失败。

解决方法

要变通解决此问题,用户需要修改 BSP 源代码以增加自动协商超时延迟,并使用以下说明重新编译以生成新的 ELF 文件。

在项目目录中打开以下文件:

../software/<project_name_bsp>/drivers/src/altera_avalon_tse.c

将超时延迟从“usleep(1000)”更改为“usleep(5000)”,如下一部分代码所示:

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);

/* 恢复以前的 MDIO 地址 */

alt_tse_phy_wr_mdio_addr(pphy,mdioadd_prev);

返回TSE_PHY_AN_NOT_COMPLETE;


}


休眠(5000);更新自 Usleep(1000)

}

相关产品

本文适用于 2 产品

英特尔® Cyclone®
英特尔® MAX® CPLD 和 FPGA

1

本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。