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/AM5728:来自 ljcb_clk 引脚的 PCIe 时钟输出

Guru**** 2589300 points
Other Parts Discussed in Thread: AM5728

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/585832/linux-am5728-pcie-clock-output-from-ljcb_clk-pins

器件型号:AM5728

工具/软件:Linux


尊敬的 TI 团队:
我将使用预构建的映像在 AM5728 IDK 上测试 PCIe 功能。
当我删除 C438和 C439时、PCIe 功能在 J22 (PCIe 插槽)上工作正常


为什么 AM5728 PCIe 不需要外部时钟?

如何从 ljcb_clk 引脚设置 PCIe PHY 时钟?
我认为外部时钟可以改善 PCIe 眼图。


预构建映像:PROCESSOR-SDK-LINUX-AM57X 03.02.00.05
EVM:AM572x IDK (1.3B)

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

    请检查此主题: e2e.ti.com/.../483230
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 、Biser、

    我的意思是如何从 ACSPCIE Rx 模式配置 PHY 时钟?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您能否更详细地解释一下您到底做了什么、为什么必须移除 C438和 C439、以及" PCIe 功能在 J22 (PCIe 插槽)上运行正常"的含义是什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Biser、

    我将 PCIe 至 SATA 控制器卡(Marvell 88SE9172)插入 AM572x IDK (1.3B)上的 PCIe 插槽(J22)。

    当我使用"lspci"命令时、我可以看到以下消息。 (有关详细信息、请参阅随附的文件)

    root@am57xx-EVM:~# lspci -v

    00:00.0 PCI 桥接器:德州仪器(TI)器件8888 (修订版01)(prog-if 00 [正常解码])

        标志:总线主控、快速选择器、延迟0、IRQ 435

        20100000处的存储器(32位、不可预取)[size=1M]

        20020000的存储器(32位、不可预取)[size=64K]

        总线:primary=00、secondary =01、subordinate=01、sec-latiter=0

        桥后的 I/O:00001000-00001fff

        桥后内存:20200000-202fff

        桥后可预取存储器:20300000-203ffff

        功能:[40]电源管理版本3

        功能:[50] MSI:ENABLE+ Count=1/1可屏蔽- 64位以上

        功能:[70]快速根端口(插槽-)、MSI 00

        功能:[100]高级错误报告

        正在使用的内核驱动程序:pcieport

    01:00.0 SATA 控制器:Marvell Technology Group Ltd. 88SE9172 SATA 6Gb/秒控制器(修订版13)(prog-if 01 [AHCI 1.0])

        子系统:Marvell Technology Group Ltd. 88SE9172 SATA 6Gb/秒控制器

        标志:总线主控、快速选择器、延迟0、IRQ 436

        输入/输出端口位于1010 [size=8]

        1020处的 I/O 端口[size=4]

        1018处的 I/O 端口[SIZE=8]

        1024时的 I/O 端口[SIZE=4]

        I/O 端口为1000 [size=16]

        20200000 (32位、不可预取)时的存储器[size=512]

        20300000时的扩展 ROM [已禁用][大小=64K]

        功能:[40]电源管理版本3

        功能:[50] MSI:ENABLE+ Count=1/1可屏蔽- 64位-

        功能:[70] Express Legacy Endpoint、MSI 00

        功能:[100]高级错误报告

        使用的内核驱动程序:AHCI

        内核模块:AHCI

    当我删除 C438和 C439并使用"lspci"命令时、仍然可以看到消息。

    e2e.ti.com/.../Removed-C437_2D00_438_4000_AM5728IDK_5F00_w_5F00_SDK03.02.00.05.txt

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

    Linux 内核中的 PCIe 使用内部时钟 SYSCLK。 有关时钟 配置的更多详细信息、请 参阅 dra7xx-clocks.dtsi。

           DPLL_PCIe_ref_ck:DPLL_PCIe_ref_ck{
                   #clock-cells =<0>;
                   兼容="ti、OMAP4-DPLL-时钟";
                   时钟=<&sys_clkin1>、<&sys_clkin1>;
                   reg =<0x0200>、<0x0204>、<0x020c>、<0x0208>;
           };

    雷克斯

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

    尊敬的 Rex:

    如何从 ACSPCIE (Rx 模式)配置 PHY 时钟?

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

    您好、Will、

    您可以对 CTRL_CORE_SMA_SW_6寄存器的位[17:16]进行编程。 有关详细信息、请参阅 AM572x TRM (SPRUHZ6H)。

    雷克斯

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Rex
    感谢您的建议!
    我在内核中配置寄存器、如下所示:
    devmem2 0x4a003c14
    devmem2 0x4a003c14 w 0x20000
    devmem2 0x4a00821c
    devmem2 0x4a00821c w 0x181

    但如何证明来自 ACSPCIE?的 PCIe PHY 时钟
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Will、

    我假设您意识到、一旦通过删除 c438和 c439来禁用外部时钟、PCIe SS 即使配置为 Rx 模式、也不会从 ACSPCIE 获取时钟源。

    要验证 Rx 模式下的 ACSPCIE、需要禁用内部时钟。 我们的 RTOS 团队能够使用 RTOS ProcSDK 中 PDK 软件包中的 PCIe 示例验证 Rx 模式下的 ACSPCIE。

    雷克斯