您好!
我们已将以太网 phy DP83867IRPAP 器件连接到我们内部开发的电路板上的定制器件、并将自举设置为在 RGMII 模式下配置器件、启用了 Autoneg。 在 RGMII 模式1G 中、我们可以看到器件响应正确、链路已设置、在启用 Autoneg 的情况下、我们可以看到 Phy 根据连接的对等设备类型将自己配置为100Mbs 或1Gbps。
遗憾的是、我们无法以10/100/1000的速度从目标向主机发送/接收 ICMP 数据包(ping)。
延迟控制寄存器设置为0x77、即 TX 和 RX 为2ns。
在 U-Boot 环境中(2020.07-rc3)。 当我们从目标到主机 PC 触发 ping 时、我们不会收到任何回复。
我们看到"host 192.168.x.x is not alive"
-我们开始使用值0x08即 TX 延迟设置为2.25nS 的值来调整延迟控制寄存器(RGMIIDCTL)
在硬件层面、我们已验证时钟和复位是否正常。
PCB 上 MAC 和 PHY 接口之间的布线长度如下:

我们可以看到、如果我们从延迟控制寄存器(RGMIIDCTL)设置为0x0的目标 ping、即 RGMII_RX_DELAY_CTRL/RGMII_TX_DELAY_CTRL 设置为0.25ns
连接的 PC 在 ifconfig 中报告 RX 错误。
-TX_CLK:2.5/25/125MHz、用于10/100/1000速度生成器。
-Reset:phy 超出复位范围、寄存器/读取/写入看起来工作正常。
软件方面:
自举在 TARK_STS1和2寄存器处确认:
我们有:
PHY_ADDR:00001
RGMII 禁用设置为0
ANEG 被启用
启用 RGMII 时钟偏移
连接的 Mac TX/Rx 数据包计数寄存器显示数据包是从目标发送的。
3.在主机端,tcpdump/Wireshark 工具无法接收来自目标的任何数据包。
dt 节点设置了以下条目:
PHY-MODE ="RGMII-id";
PHY-Handle =<&phy0>;
PHY-RESET-GPIO =<&portc 25 GPIO_ACTIVE_LOW>;
最大速度=<1000>;
状态="正常";
TI、Rx-interne-delay =<7>;->//We 已经尝试了从0到0xF 的整个范围
TI、TX-INTERNA-DELAY =<8>;->//WE 已经尝试了从0到0xF 的整个范围
TI、FIFO 深度= ;
Enet-phy-lane 无交换;
ti、dp83867-rxctrl-strap -quirk;
我们还检查了在0x0到0xF 的整个有效范围内调整 Rx/TX 内部延迟、但事实证明这并不有用。
6. phy/Mac 寄存器转储不显示任何触发的错误事件。
请在此处帮助我们、并告诉我们可能缺少的内容。
请告诉我、我们是否需要共享任何特定信息、以便更好地分析这些信息并解决问题。
谢谢和 BR、
Sagar Kadam


