工具/软件:Linux
您好,
我们使用的K2E SOC可能具有8个SGMII端口。 外部PHY (DP8.3867万IS)连接至SGMII0,后者进一步连接至Atheros模块。
MDI链路(PHY和Atheros之间的链路)按预期正确出现,与固定速度对应的设备自动协商为1000Mbit,100Mbit和10Mbit。
但是,我们在SGMII接口上遇到了问题。
读取MAC和PHY中的相应寄存器显示SGMII自动协商过程尚未完成。 未建立链接。
读取MAC寄存器 SGMII_STATUS状态寄存器(14h)时,我们获得的值为30h,这意味着自动协商已完成,链路也未出现。
读取PHY寄存器, SGMII自动协商状态(37h),我们得到的值为0。
DP8.3867万IS上的RX_CTRL引脚 捆绑至模式3。
PHY寄存器转储.....
MII写入0x03 0x0D 0x1f
MII写入0x03 0x0E 0x0037
MII写入0x03 0x0D 0x401F
MII读取0x03 0x0E
0000
0 = SGMII自动协商过程未完成。
0=尚未收到SGMII页面。
MII读取0x03 0x10
5840.
TX FIFO深度01 = 4字节/半字节(1000Mbps/其他速度)正常
Rx FIFO深度ebenso
SGMI_EN 1 =启用SGMII ok
force_link_Good POWER_SAVE_MODE 0 =正常操作正常
MDI_crossover 1x =启用自动交叉正常
MII写入0x03 0x0D 0x1f
MII写入0x03 0x0E 0x06e
MII写入0x03 0x0D 0x401F
MII读取0x03 0x0E
0800
1=捆绑SGMII以启用。
MII写入0x03 0x0D 0x1f
MII写入0x03 0x0E 0x31
MII写入0x03 0x0D 0x401F
MII读取0x03 0x0E
10b0
MII读取0x03 0x14
29C7.
SGMII_AutoNeg_EN 1正常
以下是 在U引导中的fle arch/arm/DTS/keystone-k2e-EVM-EVM.dts中对器件树结构所做的更改。
ethphy0:ethernet-phy@0{
状态="正常";
兼容="ti,dp8.3867万";
TI,rx-internal-delay =<DP8.3867万_RGMIIDCTL_2_25_NS>;
TI,TX-INTERNAL延迟=<DP8.3867万_RGMIIDCTL_2_75_NS>;
Ti,fifo-depth =<DP8.3867万_PHYCR_FIFO_DEPTY_4_B_NIB>;
reg =<0>;
TI,最小输出阻抗;
};
请进一步帮助我解决此问题。 请建议一些步骤。
谢谢
王子