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.

[参考译文] 66AK2H14:以太网引导模式下的 BOOTP 数据包错误

Guru**** 2589265 points
Other Parts Discussed in Thread: 66AK2H14

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/608593/66ak2h14-bad-bootp-packets-on-ethernet-boot-mode

器件型号:66AK2H14

我们的系统设计为使用 Keystone2的以太网引导、但我们没有体验到可靠的引导。 我们只有大约80%的时间能够成功下载 u-boot。 我们设置了系统、以便在一段时间后无法加载 u-boot 时、切换 Keystone2上的复位以重新尝试启动过程。 我们记录的引导统计信息为:

通过以太网加载 uboot、无需重试–53/67–79%
通过以太网加载 uboot,第1次重试时(第一次尝试时 u-boot 不加载)–11/67–16%
通过以太网加载 uboot,再次尝试(第一次和第二次尝试时 u-boot 不加载)–2/67–3%
无法通过以太网加载 uboot,第三次重试(u-boot 在第一次、第二次、第三次尝试时不加载)–1/67–1.5%

可以想象、如果给定一组更大的数据、每次重试后、我们将继续看到大约80%的成功引导机会。

我们的以太网接口在进入交换机之前通过 FPGA、我们在将物理介质转换为 GMII 后监控流量。 我们看到的相关行为是,每当引导失败时,我们都会在 BOOTP 请求包的 GMII 接口上看到标记的数据错误。 我们还看到 Keystone2在指定的超时序列之后重新发送 BOOTP 请求。 每次启动过程失败时,无论电源周期、复位或超时,Keystone2发送的 BOOTP 请求数据包都在相同的精确字节位置具有相同的数据错误,且数据值不正确。 虽然 FGPA 收发器将这些错误标记为视差或“不在表中”,但故障的精确和一致性表明 Keystone2实际上正在发送坏数据包,而不是存在信号完整性问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您使用的是哪款 SDK?

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Yordan、您好!

    我 使用的是 mcsdk 版本3.00.03.15

    mcsdk 版本在这里是否重要? 在检索 uboot 之前、RBL 不是唯一运行的软件?

    谢谢

    ————————关

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Guven、

    您是否有直接从66AK2H14在 SGMII 接口上使用的监控工具?

    单个给定电路板的引导统计信息是否一致? 某些电路板是否比其他电路板更可靠或更不可靠?

    以太网引导过程在许多生产系统中可靠地使用。

    此致、
    RandyP
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Randy、

    SGMII 接口连接到 FPGA、我们在 FPGA 中监控数据包。 这是我们能够观察到这些"不良"数据包的地方。

    在我使用的电路板上、引导统计数据看起来非常一致、它们都显示出大约80%的成功。

    我们认为应该研究哪些领域。 我们已确认 CVDD 看起来正常、我们似乎遵循用户指南 SPRS866F 第11.2节中的引导波形。

    我们愿意研究可能缺少东西的领域。 在我们看来、它在大多数时间都能正常工作、这似乎是奇怪的。

    谢谢

    ————————关
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    整个 BOOTP req 数据包的视图。   Rx_er 被置为有效的周期有4个、 但最后一个周期只是调用载波扩展(在  Rx_dv 变为0后发生)。 请参阅图1。

    放大以太网报头中的第一个错误、其中源 MAC addr 损坏(应为 a0:F6:FD:A5:E5:10)。  当这里出现错误时,我们始终会看到连续的0xA5。 请参阅图2。

    放大有效载荷中的第二个误差、其中源 MAC addr 也很糟糕。  有时,MAC addr 的第二个实例是正确的,即使第一个实例是错误的。  请参阅图3。

    放大有效载荷末尾附近的第三个误差。  此错误数据段始终为0xC4、并在表中标记为非。  请参阅图4。

     

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是一个方框图、表示我们的配置:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您使用方框图和数据包分析器提供详细信息,但我不确定是否了解错误的性质。 在 KSII 端、如果以太网 CRC 通过、那么(很可能)数据包中的数据就是要发送的数据。 ROM 没有理由发送包含无效数据的数据包。 您是否在室温下执行所有实验?

    您能否提供 FPGA 接收到的 BOOTP 数据包的 Wireshark 日志,该日志报告该数据包损坏。 此外、当引导成功通过时、类似的 Wireshark 日志将对我们有用、这将帮助我们查看通过 SGMII TX 端发送的数据包。

    对此,
    Rahul
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Rahul、

    FPGA 不实施 MAC 或检查传入流量的 CRC。 它只会将流量从一个端口传递到另一个端口。 Guven 应该能够在 BOOTP 数据包从 FPGA 出来、通过以太网交换机进入我们的网络后为您提供这些数据包的 Wireshark 日志。 我相信这些坏的 BOOTP 请求将会出现帧检查序列错误。 我们为您提供的是 Wireshark 会看到的内容的更低级的视图。

    虽然 KSII 当然没有理由发送包含无效数据的数据包、但这并不排除发生这种情况的可能性。 您对我们为什么反复看到相同的错误 MAC 地址有何解释? 我们将在室温下执行这些实验。

    -Jonny
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Rahul、您好、我已经连接了一个良好以太网引导的 Wireshark 日志。  我们有2台服务器与此处的电路板交互。  我从提供 tftp 文件的服务器运行 Wireshark。  KSII 从另一台服务器获取 DHCP 响应、该服务器为其提供 IP 地址、并使用 next 服务器参数告知 KSII 从何处获取 uboot 二进制文件、这是运行 Wireshark 的服务器。  KSII 的 MAC 地址为 a0:F6:FD:A5:E5:10

    对于其他问题、是的、我们处于室温下、具有 KSII 的 IO 卡上的温度传感器均为正常温度、最高读取值为35.25摄氏度。

    在我们尝试调试的情况下、由于此问题、数据包看起来没有正确格式、因此数据包永远不会输出到网络上。  因此、当这种情况发生时、我们在 Wireshark 中看不到任何内容、因为数据包永远不会将其输出到我们的网络上。

    从附件文件名中删除.dat、论坛不允许我使用正常的 Wireshark 文件扩展名上传。

     e2e.ti.com/.../good_5F00_uboot_5F00_eth.pcapng.dat

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     

    在这些图中、GMII 信号(gmii_RxD_Igmii_Rx_er_Igmii_Rx_dv_I)相对于收发器状态调试信号(gt_rxd色 散 r_dbggt_nnotintable_dbg魅力逗号rxcharisk)延迟了几个时钟周期。  这是因为我们要在芯片范围内的不同逻辑电平将其关闭。  但是、gmii_Rx_er_I、gmii_RxD_I gmii_Rx_dv_I 以同步时间显示。

     

    在第2个和第3个图表中,我们声称第二次出现0xA5是不正确的,因为数据包中该部分的数据序列显然应该是 Keystone2的 MAC 地址。  gmii_Rx_er_I 信号有效、因为存在8b/10b 视差误差、可以在几个时钟周期之前看到该误差。  但这并不意味着与其关联的数据(0x10)必然是坏的。  这仅意味着收发器需要正或负视差编码、并且接收到相反的编码。  前一个字节可能仍然存在故障。  0xA5具有中性奇偶校验和相同的符号、用于其正编码和负编码、这意味着它不能导致视差误差。 以下是可能发生的情况:

     

    8B   10B-10B+                    网络奇偶校验

    --------------------------

    0xA5 1010011010 与负      极中性点相同

    0x10 0110110100 1001001001001011       零线

    0xE5 1010011110 101000001       +/- 2.

     

    在两个0xA5s 之前、我们收到的0xFD 为+1视差计数(同样的想法适用于从-1开始的情况)。  具有正确 MAC 地址的数据包的预期序列为:

     

    0xA5 -> 0xE5 -> 0x10

    0-2+0               (符号视差)

    +1     -1     -1 - 1     (运行视差计数)

     

    如果我们在中间接收到一个非法0xA5、但0x10仍然使用其正符号进行编码、就像发送0xE5一样、那么收发器可能会期望0x10的负符号、即使它具有中性奇偶校验:

     

    0xA5 -> 0xA5 -> 0x10

    0      0     +0

    +1     +1 +1     +1 +1 +1

     

    第4个图与前2个图无关。  这是一个可重复的错误、我没有任何理论依据。

     

    K2H 是否具有在 SERDES Tx 线路上发送 PRBS 数据的功能、以便我们可以捕获眼图?

     

    是的、从数据中提取时钟。

     

    不过、我们认为这些症状并不表示存在信号完整性问题。  它们是可重复的、每次都会出现相同的错误。  我们还在超过16Gbps 的速率下测试了相同的高速钢通道、尽管采用了不同的夹层卡配置。

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在上面发布的第4个数据捕获屏幕截图中、有效负载中的数据序列是以下字符串的 ASCII 代码:"TCI c66x BOOTP Boot= a0f6fda5e510A"。

    0xC4字节应为0x6f ("引导"中的第二个"o")。 我还没有关于这一失败的理论。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们根据您在 E2E 上提供的数据进行了内部讨论、并查看了您的 Wireshark 日志消息。  但是、这些信息并未为我们提供足够的信息来确定问题的根源。

    您提供的 Wireshark 日志仅在设备正确引导时使用。 执行 FPGA 检测到不良的数据包被过滤掉。 n`t 查看 Wireshark 日志、了解启动失败的情况、但如果在交换机上捕获数据包、并且 FPGA 过滤掉坏的 BOOTP 数据包、则日志将不起作用。 我们已经编写了一组问题、Randy 将向您提出这些问题。

    同时、我们希望尝试查看我们是否可以使用我们的评估平台复制您的设置。 为此、我们需要您的引导模式设置、PG 版本、以便我们可以运行相同的测试。 我们的 EVM 已连接、以便 PHY 是自动协商模式下的主设备、K2是从设备 、因此我们可能会对我们可以尝试的操作有一些限制、但获取您的引导模式设置肯定会有所帮助。

    如果您有到 KS2的 JTAG 连接、则可以运行我在这里附加的 GEL 并为我们提供日志。

    e2e.ti.com/.../K2H_5F00_register_5F00_dump.gel

    这将读取您部件中编程的 JTAGID、引导模式引脚和 MACID。 n`t 您没有 JTAG 连接、则可以通过读取 GEL 文件中提供的物理地址从 uboot 或 Linux 读取这些寄存器地址。

    此致、

    Rahul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Rahul、

    我运行了 GEL 文件、我还添加了几个寄存器读取: MM_REVID、 PSC_VCNTLID (存在 define、但没有读取函数)。  以下是输出:

    C66xx_0:凝胶输出
    C66xx_0:GEL 输出:****** Kepler EFUSE 状态和快照
    C66xx_0:凝胶输出

    C66xx_0:GEL 输出:DEVSTAT --> 0x02000001
    C66xx_0:GEL 输出:PSC_VCNTLID --> 0x002F0000
    C66xx_0:GEL 输出:MM_REVID --> 0x00090003
    C66xx_0:GEL 输出:bootcfg_JTAGID --> 0x2B98102F

    C66xx_0:GEL 输出:****** Kepler MACID 寄存器(MACID)****
    C66xx_0:GEL 输出:MacID[31:0]-> 0xFDA5E510
    C66xx_0:GEL 输出:MacID[32:47]-->0xA0F6
    C66xx_0:GEL 输出:BCast[16](广播接收)-->广播
    C66xx_0:GEL 输出:BCast[17](MAC 流控制)-->关闭
    C66xx_0:GEL 输出:校验和[24:31]->0x6f

    该会话来自 JTAG、我已将电路板引导至睡眠模式。  每当我必须使用 JTAG 调试时、这就是我引导进入的模式、这是可以的吗?  

    我在该线程的早期上传了一个好启动的 Wireshark、如果这还不够、请告知我、我将重试。

    当我们引导至以太网模式时,我们的引导模式设置如下所示:  

    devstat:0x6CEB 引导模式:0x3675 (DEVSTAT [16:1]位映射到引导模式[15:0])

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢提供 GEL 转储、看起来您使用的是 PG 2.0器件、而您的引导配置是

    •  ARM 小端以太网引导模式。
    •  SYSPLL 使用122.88Mhz 的输入时钟、而 ARM PLL 使用312.5MHz 的输入时钟。
    •  外部连接被强制为最大速度。
    •  156.25MHz 的参考时钟
    •  PA CLK 与内核基准处于同一基准

    您能否确认我们对您的设置以及链路连接的时钟理解。  

    此致、

    Rahul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Rahul、

    是的、这也是我们对引导模式位的理解。

    ————————关
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Rahul、

    我在我们拥有的另一个板上运行 GEL 脚本、所有值都是相同的、但以下值除外:

    C66xx_0:GEL 输出:PSC_VCNTLID --> 0x002E0000
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Guven、

    有关(引导模式时钟设置)的问题的目的是确认您的系统正在使用与引导开关设置相匹配的时钟设置。 您可以确认吗? 我们的评估平台上有一个以太网 PHY、因此 SOC 充当从器件并使用通过自动协商确定的链路参数。 我正在内部检查我们是否可以使用强制链接测试此设置、我将返回给您。

    我们遇到的另一个问题是、FPGA 确定为坏数据包的数据包会发生什么情况? 您是否运行过任何 CRC 校验实验,以了解 FPGA 如何处理 CRC?

    此致、
    Rahul
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Rahul、

    是的、这就是我们用于时钟的内容、因此它确实与我们的设置相匹配。

    我相信坏数据包永远不会使其通过交换机、因此我们在网络或 Wireshark 中看不到它们。

    我会让 Jonny 回答 CRC 问题、我不确定他是否在研究这个问题、

    Guven
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Rahul、

    我们的 FPGA 对千兆位以太网使用的参考时钟源与 Keystone2相同。  我们无法使 FPGA 和 Keystone2之间的自动协商工作、这就是我们使用强制最大速度设置的原因。

    FPGA 不会篡改 Keystone2发送的 CRC/FCS。  但是、FPGA 正在对数据进行解码以进行监控、然后重新对其进行编码。  由于 FPGA 认为它接收的数据包编码数据不在8b/10b 表中、因此坏字节实际上只是任意值、仍然会重新编码并传递到交换机。  当这些数据包到达交换机时、它们一定会出现 FCS 错误。  我已经在 FPGA 中实现了 CRC 来查看这一点、在良好的数据包中、我确实获得了神奇的0xC704DD7B 值。

    -Jonny

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们刚刚尝试的另一项测试是在 Keystone2成功引导至 Linux 后查看以太网统计信息。  我们使用  scp 在网络上传输一些大型文件、从未看到报告任何错误或丢失的数据包。  这使人们进一步相信、从引导 ROM 运行时、Keystone2上的收发器设置可能会稍微关闭。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Jonathan、Guven、

    我们执行了以太网启动复位测试、以查看我们是否观察到此启动模式出现任何类型的启动问题。 设置以太网引导和主机 Wireshark 以及 TFTP 设置如下所述:
    processors.wiki.ti.com/.../KeystoneII_Boot_Examples

    使用了 EVM 引导配置设置(对于 DEVSTAT =0x115EEB):
    •ARM 小端以太网引导模式。
    •SYSPLL 和 ARM PLL 使用122.88Mhz 的输入时钟。
    •外部连接是具有自动协商功能的从器件。
    •参考时钟为125MHz
    •PA 的时钟基准与串行器/解串器基准相同。

    我们使用 BMC 控制台命令“reboot POR”重置 SOC 约30次,并确认每次重置时都能观察到 BOOTP。

    以下是我们从硬件团队获得的一些评论:
    SGMII 是一种 MAC-PHY 接口、包含用于激活链路的主从协议。 将‘的 MAC 配置为“强制”模式意味着它不再符合 SGMII 标准。 FPGA 端口处于哪种模式? 它是 MAC 端口吗? 它是否支持 SGMII? ‘强制’端口仅在配置相同的情况下才起作用。

    此致、
    Rahul
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Rahul、dipswitch 设置为0101时不是默认启动?  我认为它不够接近我们的配置。

    我对 keystone2_boot_examples 有疑问、不确定这是不是提问的正确地方。  如果我在这里写它、我们或许可以将它发送给合适的人:

    在 keystone2_boot_examples 中、k2e 示例多级以太网引导使用名为 ethWard.c 的源文件、但 K2H 不使用、原因是什么?  我可以在 EVMK2H 上获取一些示例、例如单级和多级 UART。  但是、我在 K2H 多级以太网启动方面没有成功。  我无法获取评估板来下载我通过 xmodem 生成的 uartImage1.bin。  但是、使用 dipswitch 设置0100、其他 UART 示例工作正常。 我们的设计确实下载了 uartImage1.bin 文件、但之后没有任何反应。  我觉得这个示例中缺少一些东西、或者我不是很理解、而且这个 ethWard.c 在 k2e 中、但在 K2H 中不是这样、这让我感到困惑。

    我是否应该为此启动单独的线程?

    谢谢

    ————————关

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Rahul、

    我们的 FPGA 端口是 PHY 端口、而不是 MAC 端口。 它能够处理 SGMII 或1000BASE-X、两者都可以选择打开或关闭自动协商。 如果我们将 Keystone2的外部连接设置为具有自动协商功能的从站(devstat[15:0]= 0x5CEB)、并在我们的一侧打开自动协商功能、我们仍然会看到此线程前面所述的相同错误。

    我们知道、您可以在具有默认设置的评估板上运行、但从未发现我们的问题。 你们还能做些什么来帮助我们调试这个呢? 我们是否认为链接配置正确、因为除了从引导 ROM 执行外、我们在任何时候都不会出现以太网问题? 如果没有,我们还能为您进行哪些其他实验?

    Guven 正在尝试执行双级引导(第一级 UART、第二级以太网)、以查看我们是否可以欺骗 SGMII 收发器使用更好的设置。 即使这样做可行,也不是可行的长期解决办法。

    -Jonny
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Guven、

    K2E 器件具有 BootROM 勘误问题、阻止器件直接从以太网引导。 您可以在此处参考勘误表中提供的 Advisory 25中的详细信息:
    www.ti.com/.../sprz417b.pdf

    由于此勘误表、我们不建议在 K2E 和 K2L 器件上直接以太网引导。 此n`t 不会影响 K2H 器件、因此 K2H 器件上不需要针对此勘误问题解决的 EthWard 代码。

    此致、
    Rahul
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Rahul、

    咨询25听起来与我们看到的问题非常接近、尽管我们认为问题是在传输而不是接收。

    K2H 设备上是否可能存在错误诊断的问题?

    -Jonny
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Advisory 25还声称此问题是由引导 ROM 代码中未初始化的值引起的、这与器件无关。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    通报25 K2E 勘误表仅适用于 K2E 器件、而不适用于 K2H 器件。 我们将引导 ROM 勘误表问题视为器件问题、即使可以认为 ROM 是软件。 这是针对 bootROM 版本报告的勘误表、但由于 K2E 器件上的 NETCP IP 内使用了不同的 PA 子系统、因此引入了该错误。 K2E 上的 PA 子系统中有一个未初始化的变量。 该变量在 K2H 器件的 PA 子系统中不存在、n`t 我们在 K2H 和 K2K 器件上观察到这一点。

    此致、
    Rahul
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jonny、

    我指的是这张图片:

    此图与以太网规范不一致。  这可能会导致数据损坏、因为端口可能无法按照您期望 的方式解释数据。  如前所述、FPGA 中与 DSP 相邻的端口是 PHY 端口。  但是、如上所述、该 PHY 模块内部连接了 GMII、媒体端朝向 DSP。  (PCS 和 PMA 是媒体独立接口 端口和媒体端口之间 PHY 中的层。) 尽管您将其称为 SGMII、但它可能不是。  在我看来、它是 1000BASE-X 介质端口、而不 是 SGMII 介质独立接口端口。  有许多相似之处、但它们并不相同。  必须认识到、从电气角度来看、SGMII 接口与1000BASE-X 接口非常相似。 两者均使用8B/10B 编码、串行接口和嵌入式时钟。 但是、这两个接口位于以太网堆栈内明显不同的位置、不能混合使用。 系统可以在 SGMII 连接到媒体端口的情况下运行、但不能保证它们运行、因为它们与以太网标准不一致。   您需要一个支持 SGMII 的"AC 块"、而不是 FPGA 中的"PHY 块"。  然后、您将一个配置为 SGMII 主器件、将一个配置为 SGMII 从器件、以实现兼容接口。  我假设与交换机的连接也是如此、尽管交换机端口可能是真正的1000BASE-X 介质端口。

    Tom

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Tom、

    我不是以太网专家、因此我愿意就此进行讨论、但我不相信我们会做任何不符合以太网规范的事情。

    请允许我澄清我发布的图表。  图中的所有内容都完全存在于单个电路板上、因此从技术上讲、图中的所有内容都是媒体独立的。  "1/2.5G 以太网 PC/PMA 内核"的名称可能会使您感到困惑。  它是 Xilinx 经过验证的 IP,可以配置为支持 Cisco 的 SGMII 标准或1000BASE-X,因为两者在物理层面上非常相似。  请再次注意、PC 和 PMA 与介质无关。  图中的 SGMII 和1000BASE-X 标签仅描述了这些接口与介质无关的方面。  我们不会在以太网堆栈的不同层中进行讨论。  只有在以太网交换机(Marvell 88E6185)内、我们才会移至 MAC 的下一层、只有在不同的交换机端口上、我们才会有介质相关端口(我认为是1000BASE-KX 铜背板)。

    如果我们的连接不符合以太网标准、您是否认为一旦我们启动 Linux、我们就可以拥有22G 文件的无错安全副本?  我们仅在从 Keystone2的引导 ROM 执行代码时发现问题这一事实是否与您无关?

    -Jonny

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jonny、

    我们还有许多其他客户在生产中使用基于 SGMII 的 RBL 以太网引导的电路板。   因此、我们将探索您独特的实现方案、以确定它在 RBL 引导期间如何导致损坏的数据包。  您表示一旦启动、以太网传输就会稳定可靠。  因此、我们需要探索在失败的引导过程中您的系统有何不同。

    Tom

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗨、Tom、

    感谢您的快速回复。

    您是否在引导和引导后期间询问我们的系统中是否有什么不同? 我认为没有任何差异...

    -Jonny
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jonny、

    不、我当时考虑过、启动后传输数据的试验 与未启动的试验之间存在一些不同。  可能是融合到不同操作点的自适应产品。  一种可能是自适应的 SERDES 均衡。  可能还有其他 自适应系统组件。

    Tom

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗨、Tom、

    由于您曾考虑过 RX 均衡、因此我决定对 FPGA 上的设置进行处理。 Xilinx SERDES 有两种均衡模式、这两种模式都是自适应的。 我们一直在使用更强大的模式(动态反馈均衡、也称为 DFE)、但我切换到更基本的模式(线性均衡器)、并且我们的引导问题似乎已经停止了(尝试了30次)。

    我可以想到的唯一原因是 DFE 模式存在问题、这与 Xilinx 收发器文档中的以下陈述有关:

    与使用线性均衡器时相比、DFE 可提供更接近的滤波器参数调整、从而更好地补偿传输通道损耗。 但是、DFE 不能删除已发送位的前标;它只能补偿后标。"

    无论如何、在我们明天运行更多测试后、我们可能会考虑此问题是否已解决。

    -Jonny