文章 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

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