没有 phy 的 SGMII - Xlinix Zynq UltraScale+ RFSoC 板上的外部环回

问题描述

我有一个带有 Xilinx Zynq UltraScale+ RFSoC 的服装板。 我使用 3 个 PS_GTR 收发器作为 sgmii。 其中两个连接到外部 Marvell phy,第三个直接连接(固定链接 - 没有 phy)。

在制造阶段,我想确保直接 sgmii 接口正确组装 - 因此我在 tx 和 rx sgmii 信号之间进行了外部环回。 现在,是否可以通过此外部环回传输某些内容并与接收到的数据进行比较? 可以自己ping通吗? (简单的 ping 命令不起作用:“ping -I eth2”)

也许“macb”内核驱动程序下有一个“补丁”可以指导我完成?

谢谢大家, 齐皮·克鲁斯卡

解决方法

是的,可以 ping 自己。请注意,linux 确实或至少用于在与自身对话时绕过硬件,并会在 IP 堆栈中进行环回。我最近看到有人在终端(窗口、命令行)中隔离了一个网络接口,然后隔离了另一个网络接口,然后使用 ping 和 iperf 等常用工具来测试链接是微不足道的。

在这样做之前,您的 serdes 应该具有 PRBS 功能(出于某种原因),有些可能具有内部范围,例如允许您提取眼睛的功能或至少表示眼睛质量的数字。 marvell phy 也应该具有此功能,您都可以使用环回与自己交谈使用各种prbs 长度来检查链接的质量(在如此多的 10 到 14 位或任何您想要的质量中少于一个错误) ,然后在连接到 Marvell 时重复该操作。

在执行所有这些操作之前,软件通常是最难的部分,您需要先确保它可以正常工作,因此您可能希望在没有模拟问题的 fpga 内部进行环回并让软件得到解决,然后在 fpga 边缘的 serdes 中,它们可能在两个方向都有环回,Marvell 也可能在两个方向都有环回,因此您可以例如直接使用 fpga 来惊奇一个是 tx,一个是 rx,反之亦然,或者您可以在 Marvell 上启用局域网侧浅环回并自言自语。

此外,根据这些速度,手工制作的环回可能会产生噪音,因此有时可能希望部署基于 pcb 的环回(也必须设计)。

你绝对可以 ping 自己。您可以使用其他低级网络接口(如套接字)来制作原始数据包并通过这些接口与您自己对话。在开发和制造测试期间,Ping、执行 ping flood、iperf、netperf 等都是很好的方法来练习或了解界面。

作为 fpga,您当然可以将测试设计加载到 fpga 中,以推送外部接口并报告误码率。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...