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.

[参考译文] TDA4AEN-Q1:用于以太网的 1G 串行器/解串器设置

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1579762/tda4aen-q1-setup-of-1g-serdes-for-ethernet

器件型号: TDA4AEN-Q1

我们的软件开发人员无法找到在 SDK 中查找用于串行器/解串器配置的 PLL 时钟多路复用器控制的位置。   

(02d8fc9f-a86a-4916-8763-7eb8d78b8cde)

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

    您好、

    我们的软件开发人员在找到 SDK 中用于 SerDes 配置的 PLL 时钟多路复用器控制的位置时遇到问题。   [/报价]

    通过 为分配的时钟选择分配的时钟父级从串行器/解串器节点进行配置、如下所示。


    此致、
    Sudheer

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

    你好 Sudheer,

    我很难为具有 SGMII 模式的以太网设置 SerDes0。 我想我得到了 pll0_refclk、fclk、但 CMN、PCS、PMA 的所有寄存器写入似乎都被阻止。 您能否提供 检查和调试问题的步骤? 非常感谢您的帮助!

    谢谢、

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

    您好、

    我很难为具有 SGMII 模式的以太网设置 SerDes0。 我想我得到了 pll0_refclk、fclk、但 CMN、PCS、PMA 的所有寄存器写入似乎都被阻止

    您能检查一下 SerDes 是启用还是禁用。

    此外、转储串行器/解串器寄存器并检查它们是否设置正确。

    此致、
    Sudheer

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

    感谢 Sudheer 你的迅速答复!

    工作内容包括:

    • CTRL_MMR 多路复用器= 0x1(启用 SGMII 模式)  
    • PHY_en_REFCLK = 1 (WIZ_SERDES_RST 中的位 30)  
    • 电源域 279 打开  
    • 启用所有时钟 (FCK=CORE 125MHz、100MHz)  
    • POR 序列完成  
    • 通道 0 p_enable = 1

    但 0x0f00e000 处的 CMN 寄存器仍然无法写入! 全部返回 0x0。

    此陈述是否正确?

    “当 PHY 保持复位状态时、某些串行器/解串器需要对寄存器进行编程。“

    顺便说一下、我要尝试在 U-boot 中实现 SGMII-以太网。

    感谢您的建议。

    谢谢、

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

    工作配置 White check mark

    J722S SR1.0 FS 定制板
    具有非 TI PHY 的 SGMII 配置
    3.串行器/解串器电源域 279 成功启用
    4.可以写入 wiz 包装器寄存器 (0xf000400)
    5.所有时钟、复位、phy_en_refclk 配置正确

    问题 X

    串行器/解串器 PHY 内核寄存器 (0xF00e000-0xF010000) 是只读的
    -所有寄存器写入回读时返回 0x0
    -在 R5 SPL、A53 SPL 和 A53 U-Boot 中测试 — 结果相同
    - CMN/TX/RX 寄存器编程失败
    -初始化挂起等待 CMN 就绪

    是否有 J722S 串行器/解串器 PHY 内核的防火墙 ID、因此我们可以使用以下命令配置权限:
    TI_sci_handle ->opps.fwl_ops ->set_fwl_region()?

    谢谢、

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

    => MD 0x00104080 1
    00104080:00000001…
    => MD 0x0f00040c 1
    0f00040c: 50000000 .
    => MD 0x0f00e000 1
    0f00e000:000c0000…
    => MD 0x0f000120 8.
    0f000120:00000000 00000000 00000000 ............
    0f000130:00000000 00000000 00000000 ............
    =>
    =>

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

    您好、

    => MD 0x0f00e000 1.
    0f00e000:000c0000

    这意味着两个 PLL 都被禁用。
    如果启用了防火墙功能、您甚至无法使用 MD 命令打印寄存器值。

    工作和非工作场景的区别是什么? 更改了板子吗? 或器件树配置更改?

    另外、您能在正常工作的情况下转储寄存器吗?

    此致、
    Sudheer

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

    感谢 Sudheer 为您的答复!

    我觉得有一些误解。 我所说的“工作配置“是指那些似乎有效的调用(复位,上电,寄存器读取/写入等)、并且返回的值是正确的。 我还没有工作方案。 根据我的测试、似乎大多数实现似乎都能正常工作、而针对 CMN、PCS、PMA 的寄存器写入被阻止。 是否有任何防火墙阻止这些寄存器? 或者我在复位生效/失效方面的寄存器写入顺序不正确?  

    由于默认 SDK 没有 SGMII、因此我对器件树进行了修改、并且我们的 PCB 还具有来自另一个具有 SGMII 的供应商的 E-phy。  

    感谢您的及时支持、因为此问题完全阻碍了进度。  

    非常感谢、

    Chang

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

    你好 Sudheer,

    事实证明、u-boot 下的 SGMII 实现中缺少 PLL 使能和电源覆盖。 现在 PLL 已正确启用、但电源覆盖读数 为 0x8600、PLL 电源就绪为 0。 有什么建议吗?

    [1]电源覆盖寄存器:
    CMN_CDIAG_CDB_PWRI_OVRD (0x0041)= 0x8600
     Warning 意外:获得 0x8600(预计为 0x8200)
    CMN_CDIAG_XCVRC_PWRI_OVRD (0x0047)= 0x8600
     Warning 意外:获得 0x8600(预计为 0x8200)

    [2] PLL 使能寄存器:
    PHY_PMA_PLL_RAW_CTRL (0x0003)= 0x0003
    位[0](PLL0 启用):1
    位[1](PLL1 启用):1
    ✓正确:两个 PLL 均启用(位[1:0]= 0b11)

    [3] PLL 状态寄存器(硬件状态):
    PHY_PMA_CMN_CTRL2 (0x0001)= 0x000c
    位[0](PLL0 电源就绪):0
    位[1](PLL1 电源就绪):0
    位[2](启用 PLL0):1
    位[3](PLL1 启用):1.
     Warning 部分:仅设置了一些 PLL 位 (0xc)
    →PLL 已启用但未通电 — 是否缺少电源覆盖?

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

    似乎仍会阻止寄存器写入电源覆盖和 CMN、PCS、PMA。

    如果在 SPL、u-boot 或 Linux 中有一个具有已知可正常工作的 SGMII 实现的 SDK、我可以从中了解、那会很好。

    谢谢、   

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

    您好、

    寄存器访问没有阻塞。

    仅供参考、 我们尚未 测试如何 通过 u-boot 启用 CPSW3G。

    请参阅下面的常见问题解答、其中列出了从 Linux 内核启用 SGMII 所  需的更改、类似于 U-Boot 所需的更改。
    【常见问题解答】TDA4AEN-Q1:如何使用原生 Linux 驱动程序在 CPSW3G 上启用 SGMII 支持?

    此外、检查 Linux 上的串行器/解串器配置、并使用与 u-boot 中相似的配置。

    此致、
    Sudheer

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

    你好 Sudheer,

    我发现时钟多路复用器选择中存在错误、导致时钟分配损坏。 修复错误后、SGMII 现在正常工作。

    => ping 8.8.8.8
    以太网@8000000port@2:等待链路通过端口 2 上行链路、速度 1000、全双工

    使用以太网@8000000port@2 器件
    主机 8.8.8.8 处于活动状态

    非常感谢您的支持!

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

    您好、

    很高兴听到这个消息、它按预期运行。

    我发现时钟多路复用器选择中存在错误、导致时钟分配损坏。 修复错误后、SGMII 现在正常工作。

    是否建议进行上述更改、还是建议进行其他更改?

    能否详细谈谈时钟多路复用中的错误?
    此外、您能否 与 TI SDK 共享一个包含对 SGMII 工作所做更改的补丁?

    此致。
    Sudheer

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

    您好、Suhdeer、

    由于子时钟 ID 中的错误、WIZ 时钟会生成多个时钟、并为串行器/解串器分配了错误的时钟

    很遗憾、我不能共享更新的补丁。

    再次感谢、  

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

    您好、

    [报价 userid=“652702" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1579762/tda4aen-q1-setup-of-1g-serdes-for-ethernet/6121141

    由于子时钟 ID 中的错误、WIZ 时钟会生成多个时钟、并为串行器/解串器分配了错误的时钟

    很遗憾、我不能共享更新的补丁。

    [/报价]

    您是 说器件树中有一些时钟 ID 发生了变化吗?  
    我可以看到 Linux 和 U-Boot 都 具有 相同的串行器/解串器配置。

    此致、
    Sudheer

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

    我自定义时钟,这引入了时钟 ID 中的错误.

    谢谢、

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

    您好、

    我自定义了时钟、这在时钟 ID 中引入了错误。

    明白了、感谢您的更新。

    此致、
    Sudheer