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.

[参考译文] TMS320C6678:定制板上的 Ehternet 初始化问题

Guru**** 2559120 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/610979/tms320c6678-problem-in-ehternet-initialization-on-custom-board

器件型号:TMS320C6678

您好!

在 基于 C6678和 Marvel PHY 的定制板上对以太网进行初始化时遇到问题。 在初始化期间、我必须在子系统初始化之间插入较长的延迟、无论如何、在结束时、CPSW_CONTRAL_REG 和 SGMII MR_ADV_LEASY_REG 似乎会丢失正确的初始化值。 如果我只重新配置这两个寄存器、ETH 将开始工作。


完全相同的软件在 C6678 EVM 上运行良好(但没有 PHY 初始化、并且根据 SGMII 和内核时钟频率设置参数)。

我无法100%排除软件错误、但由于在 EVM 上一切正常、 我是否可以在我们的电路板设计中检查以调查问题?  可能是时钟、电源...

初始化步骤为:

1.配置 PHY (但在 EVM 上)

2.配置 SERDES

3.配置 SGMII 端口

4.配置 CPSW (端口启用、MAC 地址)

5.配置 ALE (启用但旁路)

6.配置 MAC (全双工、千兆、MTU)

7.热修复程序:等待一位,然后检查“热修复”。

在 EVM 上:

-步骤之间不需要延迟

-不需要热修复

在定制板上:

-所需延迟(5000个周期@ 1GHz)

-需要热修复

在调试中的定制板上、分步执行或分步执行之间的中断

不需要延迟

-不总是需要热修复

修复程序很简单:

1.验证 CPSW_CONTRAL_REG.PORT 0是否=启用。 如果未启用它。

2.如果 SGMII MR_ADV_ANALOY_REG = 0、则使用正确的值(与配置步骤3中使用的值相同)将其修复。

我已经尝试使用初始化顺序播放一点、但没有任何变化。 此外、在定制板上、我尝试跳过 PHY 初始化。 在这种情况下,电缆通信是不可能的,但回送测试是适用的,如果没有热修复程序,则会失败。

作为测试、我尝试了所有级别的回路:

  • PKTDMA (PA)
  • SGMII
  • MAC
  • PHY

如果没有修复、它们将失败(DMA 除外)(但始终在 EVM 上运行)、

这是 TI 的 POST 软件(根据电路板时钟进行了修改)、也是 PKTDMA PA 环回失败、我无法修复它。

因此、为了调查该问题、我从头开始重写初始化代码(绕过 PA PDSP 并将 RX 通道直接路由到 PKTDMA)

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

    我已通知软件团队。 他们的反馈将在此处发布。

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

    TI 6678EVM 使用 Marvell 88E1111 PHY、您的电路板使用相同的 PHY 还是不同的 PHY? 它会查看电路板上代码执行时间的变化与 EVM (周期延迟、步进/断点)。

    6678EVM 没有步骤1。 在电路板上、如果您执行步骤1、然后执行更长的延迟、并消除步骤2至6中的所有延迟。 您是否需要热修复?

    在代码单步执行案例中、您是否能够看到 CPSW_CONTRAL_REG 和 SGMII MR_ADV_ANTIESS_REG 在哪个步骤丢失初始化值? 或者它们从未丢失、因此端口工作正常? 1)在步骤3之前2)在步骤3之后3)在步骤7中重新初始化之前、有哪些值?

    此致、Eric
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    PHY:我们使用了 an88E1512、但它与问题无关、因为:
    -如果我不配置它(它以 RGMII 启动)或保持它处于断电状态、结果不会改变(嗯、只有回路测试适用)
    -在 EVM 端口0上没有连接 Phy,因为我假设它与未配置 Phy 的电路板端口0类似


    SGMII MR_ADV_异 能_REG 配置丢失:端口0上没有延迟、配置后似乎立即出现、而端口1似乎保持正确的值(在0..1循环中按顺序配置)。 有延迟时、它位于 ALE 配置之后。

    CPSW_CONTRAL_REG 配置丢失:ALE 配置后、初始化后的步骤会出现强制。

    请注意、前面的观察仅是指示性的、因为序列中的每个"扰动"似乎都"移动"了产生问题的点。

    在 EVM 上、相同的仪表会始终生成校正的结果、也就是说似乎没有错误。 要访问器件、我不只使用 CSL 中定义的结构和地址。 我认为在器件上生成错误写入的隐藏错误也应该在 EVM 上重现。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    阿尔贝托

    存储在 SGMII MR_ADV_ANability _REG 中的值不应自动清零。  我预计会有什么原因导致此问题-硬件或软件。  EVM 是否运行相同的软件?  定制板上的代码可能会出现软件错误、覆盖此 MAC 配置。

    或者、是否可能出现电源问题?  在电源干扰时清除这些值。  请仔细检查电源和时钟定序、并确保电源稳定且在引导期间保持稳定。  您还可以检查您的布局、以了解隔离式电源或接地岛或平面较窄、从而导致电流耗尽的区域。

    88E1512用于我们的一些 KeyStone-II EVM。  C6678中实现的 MAC 在使用此 PHY 时不应出现任何问题。

    Tom

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

    我认为可能会出现软件错误、但:
    -在端口0 (未连接到物理层、仅适用环回测试)和端口1 (环回和 ping 测试正常)上、EVM 上的同一软件工作正常、无任何延迟和热修复
    -分步执行自定义板上的所有内容都正常(在测试项目中、所有中断被禁用、没有内核、所以我排除竞争条件)

    我会将您的意见转发给硬件设计团队、以查看是否可以执行一些验证。