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.

[参考译文] DP83867ERGZ-S-EVM:RFSoC (Ultrascale+) DP83867ERGZ-S-EVM 链路接通但无流量(Ping)。 无 SGMII 自动协商

Guru**** 1831610 points
Other Parts Discussed in Thread: DP83867ERGZ-S-EVM
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1429880/dp83867ergz-s-evm-rfsoc-ultrascale-dp83867ergz-s-evm-link-up-but-no-traffic-ping-no-sgmii-auto-negotiation

器件型号:DP83867ERGZ-S-EVM

工具与软件:

您好!

我在几周前打开了这个案例、但不幸的是、我无法及时进行测量、且案例在几天后关闭。

最初的用例是 DP83867ERGZ-S-EVM:RFSoC (Ultrascale+) DP83867ERGZ-S-EVM 链路接通但无流量(Ping)

我最终进行了测量、但示波器具有1GHz BW 的限制、而且信号非常有限。

在此捕获图中、黄色对应于评估板 DP83867ERGZ-S-EVM (SO_P-SO_N)的差分输出。 绿色输出是 FPGA (PS-GTR3、GEM3)的输出。

评估板的振幅似乎可以接受、在100欧姆的差分阻抗上大约800mV。 RF-SoC 的振幅似乎正常、差分 P-P 振幅为1500mv aprox。

寄存器0x0037保持0值、此值表示 SGMII 自动协商未完成、

置于 U-boot 中

ZynqMP> mii write 0x00 0x0D 0x001F
ZynqMP> mii write 0x00 0x0E 0x0037
ZynqMP> mii write 0x00 0x0D 0x401F
ZynqMP> mii read 0x00 0x0E
0000

并在 Linux 中运行

Reg: 0x0000     Value: 0x1140
Reg: 0x0001     Value: 0x796D
Reg: 0x0002     Value: 0x2000
Reg: 0x0003     Value: 0xA231
Reg: 0x0004     Value: 0x09E1
Reg: 0x0005     Value: 0xCDE1
Reg: 0x0006     Value: 0x006F
Reg: 0x0007     Value: 0x2001
Reg: 0x0008     Value: 0x4006
Reg: 0x0009     Value: 0x0300
Reg: 0x000A     Value: 0x3C00
Reg: 0x000D     Value: 0x401F
Reg: 0x000E     Value: 0x1111
Reg: 0x000F     Value: 0x3000
Reg: 0x0010     Value: 0x5848
Reg: 0x0011     Value: 0xAC02
Reg: 0x0012     Value: 0x0000
Reg: 0x0013     Value: 0x1C02
Reg: 0x0014     Value: 0x2BC7
Reg: 0x0015     Value: 0x0000
Reg: 0x0016     Value: 0x0000
Reg: 0x0017     Value: 0x0040
Reg: 0x0018     Value: 0x6150
Reg: 0x0019     Value: 0x4440
Reg: 0x001A     Value: 0x0002
Reg: 0x001E     Value: 0x0202
Reg: 0x001F     Value: 0x0000
Reg: 0x0031     Value: 0x1111
Reg: 0x0032     Value: 0x00D3
Reg: 0x0033     Value: 0x0000
Reg: 0x0037     Value: 0x0000
Reg: 0x0043     Value: 0x07A0
Reg: 0x006E     Value: 0x8820
Reg: 0x006F     Value: 0x0110
Reg: 0x0086     Value: 0x0057
Reg: 0x00C6     Value: 0x0000
Reg: 0x00D3     Value: 0x0000
Reg: 0x00FE     Value: 0xE721
Reg: 0x0134     Value: 0x1000
Reg: 0x0135     Value: 0x0000
Reg: 0x016F     Value: 0x0015
Reg: 0x0170     Value: 0x0C12
Reg: 0x0172     Value: 0x0000
Reg: 0x01D5     Value: 0xF500

来自 PHY 的自动协商正常、来自 PHY 的所有内容似乎正常

root@sgmii:~# dmesg | grep macb
[    2.130847] macb ff0e0000.ethernet: Not enabling partial store and forward
[    2.147282] macb ff0e0000.ethernet eth0: Cadence GEM rev 0x50070106 at 0xff0e0000 irq 45 (00:0a:35:00:22:03)
[    7.663446] macb ff0e0000.ethernet eth0: PHY [ff0e0000.ethernet-ffffffff:00] driver [TI DP83867] (irq=POLL)
[    7.673253] macb ff0e0000.ethernet eth0: configuring for phy/sgmii link mode
[    7.685382] macb ff0e0000.ethernet: gem-ptp-timer ptp clock registered.
[   11.775311] macb ff0e0000.ethernet eth0: Link is Up - 1Gbps/Full - flow control tx

也许您能帮我找出为什么我无法通过 SGMII 在 GEM 和 PHY 之间获得链接和自动协商?

非常感谢。

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

    尊敬的 Alejandro:

    我通读了上一期 E2E、还能够与几周前为您提供帮助的团队成员进行交流。

    感谢您的 SGMII 波形以及确认 MDI 侧自动协商按预期工作。

    正如您提到的、从波形和这里的所有信息来看、在最后的 E2E 中、PHY 端的所有功能看起来都很好。  

    我怀疑链路存在 SoC 侧的问题。 您可以反复将寄存器0x37读取为0、这表明在尝试与 SoC 进行自动协商后、PHY 未接收到 SGMII 页(自动协商过程中使用的一种确认)。 我相信这是问题的根本原因。 在 PHY 端、我们唯一可以尝试的另一项操作是禁用自动协商、并强制以千兆位速度建立 SGMII 和 MDI 链路、但是、这样做会导致系统无法动态调整链路速度。  

    我建议联系 SoC 团队以在调试 MAC 侧时获得进一步帮助。  

    此致、

    Vivaan

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

    尊敬的 Vivaan:

    非常感谢您的支持。 我也是 SoC (ZynqMP)开发人员。

    "嗯,我知道了,这是我第一次见到你。"

    问题在于网络节点中 PS-GTR 的配置,我确实遵循了 Atlassian Wiki 的指南,但不能使用 Xilinx-Linux 2022.1的 WIT 版本(实际上不是2023.2的,我正在使用 Petalinux 2023.2的当前版本)。

    稍后我将提供一些信息,我的设备树,我们必须观察和分析的寄存器,以及 Xilinx 有用的文档,下一个用户有同样的问题,好吗?

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

    尊敬的 Alejandro:  

    稍后我将提供一些信息

    听起来不错、此信息可能对将来有类似问题的其他人有用。

    此致!

    Vivaan

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

    是的、我同意。

    只有一个问题。 我需要获得125MHz 的输出时钟。

    我会在器件树中添加参数  

         // Output clock selection
         
         ti,sgmii-ref-clock-output-enable;
         //ti,clk-output-sel = <DP83867_CLK_O_SEL_REF_CLK>;
         ti,clk-output-sel = <DP83867_CLK_O_SEL_CHN_A_RCLK_DIV5>;

    但在两种情况下(DP83867_CLK_O_SEL_REF_CLK 或 DP83867_CLK_O_SEL_CHn_A_RCLK_DIV5)、我在625MHz 获得了相同的时钟、但抖动很多。 第二种情况应该在125MHz (DVI5)上。

    PHY 中的寄存器配置正确、但...输出错误。 而抖动是从610MHz 到650MHz ...

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

    尊敬的 Alejandro:

    DP83867有2个时钟、一个用于 xMII、一个用于 SGMII。 我认为要修改的时钟输出是 xMII clk_out。 您能否确认您从哪个引脚读取信号?  

    该时钟速度非常高、因此该抖动可能是测量误差。 测量使用哪种示波器?

    此致!

    Vivaan