主题中讨论的其他器件:DP83867CR
大家好、
请注意、我们正处于项目的关键阶段。
我们有基于 ZYNC-ZC702的定制板、我们在其中连接了两 个 DP83867E PHY 连接到两个 macs、GEM0和 GEM1。 我们已将两个 PHY 配置为 RGMII 模式。
但在两个 MAC 中、只有一个 MAC、GEM0以1000Mbps 的速度运行、而其他 GEM1仅以10Mbps 和100Mbps 的速度运行
GEM1、
1. 仅在10/100Mbps 下工作
2.如果我对 eth1执行 ifconfig,它会将自己配置为完全双路、1000Mbps 和自动协商模式
在 Linux 上:
在1000Mbps 时、GEM1无法通过 DHCP 获取 IP。 我通过运行 Wireshark 验证了该接口是否未发送数据包、这基本上意味着 MAC 无法正常工作
在运行 Linux 时、在工作和非工作 MAC 实例的自动协商完成后、我附加了 phy 寄存器内容的转储
请注意、在附加的存档 post_auto_neg.zip 中、
post_auto_neg_eth0.log - PHY 寄存器的寄存器转储、用于工作 MAC 的后自动协商
寄存器0x08
1 >接收到的页面是消息页面。
寄存器0x09
1 >广播1000Base-T 全双工能力。
寄存器0x0A
1 >检测到手动主/从配置故障。
2 >本地接收器不正常。
3 >远程接收器不正常。
4 >链路伙伴不支持1000Base-T 全双工。
5 >链路伙伴不支持1000Base-T 半双工。在 Xilinx 裸机上:
为了进一步调试、我尝试执行 BIST 测试。 我附上了相同的伪代码、请告诉我这些步骤是否正确。
使用 BIST 时、结果如下、
字节计数4098错误字节计数128
上述结果是开启了自协商功能。 Auto-neg 将 phy 设置为1000Mbps、全双工链路和链路启动
请注意、我无法禁用自动协商位。 即使在清零 BMCR 的第12位后、自协商也不会被禁用。 即使该位未置位、SGMII_EN 位11也会置位。
以下是我们的设置:
我们使用的 I/O 电压为2.7V、以下是自举寄存器值
以下是用于设置的寄存器、格式为
===================================================================================================================================
模式2中的自举引脚:
G1LED_0、6.2K、1.6K
G1LED_1、6.2K、1.6K
G1LED_2、6.2K、1.6K
G1ETH_RXD0、6.2K、1.6K
G1ETH_GPIO1、6.2K、1.6K
G2LED_0、6.2K、1.6K
G2LED_1、6.2K、1.6K
G2LED_2、6.2K、1.6K
G2ETH_GPIO1、6.2K、1.6K
模式1中的自举引脚:
G1ETH_RXD2、开路、1.6K
G1ETH_GPIO0、开路、1.6K
G2ETH_RXD2、开路、1.6K
G2ETH_GPIO0、开路、1.6K
模式4中的自举引脚:
G1ETH_RXCTRL、960、1.6K
G2ETH_RXCTRL、960、1.6K
G2ETH_RXD0、960、1.6K
========================================================================================
e2e.ti.com/.../2821.post_5F00_auto_5F00_neg.zipe2e.ti.com/.../5165.psudo_5F00_bist.c
此致、
Abhijit