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.

[参考译文] Linux/DP8.3867万IS:无法在MAC和PHY之间创建SGMII链路

Guru**** 2463330 points


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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/632805/linux-dp83867is-not-able-to-create-sgmii-link-between-mac-and-phy

部件号:DP8.3867万IS

工具/软件: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,最小输出阻抗;

};

请进一步帮助我解决此问题。 请建议一些步骤。

谢谢

王子

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

    感谢您使用TI论坛。 我们的产品专家将在星期四之前回复您。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好Mitch:

    当我可以从TI方面得到任何回复时,重新出现此问题。

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

    您是否可以尝试将SGMII自动协商计时器增加到1.6毫秒或11毫秒,然后重新启动自动协商。 您可以通过分别将'00'和'11'写入寄存器0x31的位[6:5]来增加计时器值。

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

    我按照你的建议尝试了,仍然存在同样的问题。

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

    关于这一点的任何指针。

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

    是否有任何方法可以在处理器和PHY中启用强制模式?
    最好查看连接是否能够在强制模式下解决。
    此外,您能否分享该原理图?

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

    感谢你的帮助。

    出现计时问题。 我们使用的是125MHz时钟,而不是156.25MHz时钟。
    根据125MHz时钟更改keystone_SerDes.c中的值后,工作正常。

    下面的链接帮助我解决了问题。

    e2e.ti.com/.../184.747万

    谢谢
    王子