您好!
在 基于 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)