【问题标题】:SGMII without phy - external loopback on Xlinix Zynq UltraScale+ RFSoC board无 phy 的 SGMII - Xlinix Zynq UltraScale+ RFSoC 板上的外部环回
【发布时间】:2021-01-19 14:09:27
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我的意思是:“ping -I eth2
  • 一个 phy 通常会有一个您可以使用的 prbs 生成器和检查器。有些可能还具有查看眼睛或查看代表眼睛的数字等工具的范围。
  • 最坏的情况是,你可以只使用网络流量(这是网络是的)。您必须通过环回欺骗操作系统与自己交谈(机器与自己交谈),这是可行的。通常我们先做prbs,同时使用高速示波器来查看信号,一些示波器会做prbs解码,然后链接,了解其中一些接口会有一个空闲模式,它有很多状态变化,所以你可以再看看在信号的眼图和质量上。然后通过环回的调谐阶段来调整发射器和接收器
  • 然后努力通过交通。 ping洪水和其他东西可以在那里使用。比如 iperf 和 netperf
  • 如果您在系统上有两个以太网设备并且您只是尝试 ping 另一个地址,则 linux 中的 ip 堆栈将绕过硬件并在堆栈中与自身对话。但我已经有一段时间没有尝试过了。

标签: arm linux-device-driver ping xilinx raw-ethernet


【解决方案1】:

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

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

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

还取决于这些速度,手工制作的环回可能会很嘈杂,因此有时可能希望部署基于 pcb 的环回(也必须设计)。

你能不能 ping 自己,绝对。您可以使用其他低级网络接口(如套接字)来制作原始数据包并通过这些接口与自己对话。 Ping、ping flood、iperf、netperf 等都是在开发和制造测试期间锻炼或获得对接口的温暖模糊的好方法。

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

【讨论】:

    猜你喜欢
    • 2023-03-23
    • 2013-03-24
    • 1970-01-01
    • 2017-02-27
    • 2018-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多