This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Linux
我们的设计使用TMS570LS3137和Zynq 7020。 数据通过KSZ8895 5端口交换机从570传输到Zynq,并在交换机和Zynq之间传输DP8.3848万-EP。 在通电时,570将配置交换机,并开始通过链路发送UDP数据流;大约每秒2500个数据包。 Zynq运行Linux,ARM内置MAC配置DP8.3848万并启动网络接口。 因此,来自570的数据流在Zynq设置其链路之前处于活动状态(数据流也通过交换机进入其他目的地)。 所有网络配置均强制为100Mbit/全双工;MDIX已禁用;没有自动协商。
我们发现,通常与Zynq建立了链接,它从570接收数据。 只是偶尔链路无法设置,Zynq上的ethtool报告未检测到链路。 如果我们通过控制寄存器手动强制重置PHY,则我们会看到同样的行为;通常10次中有9次链路工作,1次出现故障。
到目前为止,我们已经确定,如果在开机时禁用570中的数据流,例如30秒,则链路始终正常工作。 与PHY重置相同;如果我们暂时禁用570数据流,则重置始终会使链路恢复。 这不是解决问题的实际方法,因为数据流的其他用户在开机时具有关键的计时要求,并且不能延迟等待Zynq上的Linux完成链接设置。
是否有理由在流量已经很高的情况下设置链路不可靠? 从表面上看,这似乎与将网络电缆插入已有流量通过交换机的交换机没有任何区别。