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.

[参考译文] TDA4VM-Q1:TDA4通过 PCIe 连接到开关

Guru**** 2405385 points
Other Parts Discussed in Thread: TDA4VM

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1476868/tda4vm-q1-tda4-connects-to-switch-via-pcie

器件型号:TDA4VM-Q1
主题中讨论的其他器件:TDA4VM

工具与软件:

您好!

 根据您的建议、我们在 TDA4Vm 上进行 PCIe 调试、更改器件树、我们使用 serders3、但在配置后、系统在加载到 PCIe3_RC 后卡住、下面是启动日志。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

      添加一些新信息。 我们将使用 SDK 10.0、SPL 启动、并在客户的开发板上对其进行测试。

    此致、

    Yang

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

    尊敬的 Yang:

    很高兴见到您回来。  

    我在共享日志中看到 SERDES 初始化失败、这 也会导致 PCIe 失败、因为 PCIe 依赖于先初始化 SERDES PHY。

    我怀疑这是计时问题。 是否有像 TI EVM 上一样提供100MHz 参考时钟的外部时钟发生器? 或者、定制电路板是否没有 SERDES/PCIe 连接器的外部参考时钟?

    如果没有外部时钟、则有一个常见问题解答讨论了使用内部参考时钟时发生的变化: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1004565/faq-tda4vm-tda4vm-dra829v-routing-pcie-reference-clock-externally 

    此致、

    Takuma

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
      非常感谢您目前的答复、卡住的设备问题已得到解决、但发现了新问题。 启动完成后、输入 lspci 命令时、没有设备节点。 您可以帮助检查此问题吗?
     以下是日志:
    此致、
    Yang
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

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

    您好!

     添加 DTS 配置:

    e2e.ti.com/.../PCIE_5F00_newdts.txt

    此致、

    Yang

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

    尊敬的 Yang:

    目前、卡滞设备的问题已得到解决、但发现了新问题。

    卡住的设备问题是如何解决的? 新日志和旧日志在 SERDES 和 PCIe 方面看起来相同、因此我想知道已实现了哪些更改、以便提供更好的建议。

    在任何情况下、我都有几个问题:

    • PCIe3_REFCLK3P -连接在哪里? 它是直接连接到 PCIe 连接器还是时钟发生器?
    • 您是否可以使用"devmem2 0x0010807C"转储寄存器?

    至于 DTS、如果使用内部参考时钟、则会发现有问题。 如果使用外部时钟发生器、则会出现其他问题。 如果您能回答以上问题、我可以给出正确的建议。

    此致、

    Takuma

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、
     添加了这两行内容
    +&wiz3_pll1_refclk {
    + Assigned-Clocks =<&wiz3_pll1_refclk>;
    + assigned-clock-paraments =<&CMN_refclk1>;
    +};
    +
    +&wiz3_REFCLK_dig {
    + Assigned-Clocks =<&wiz3_REFCLK_DIG>;
    + assigned-clock-paraments =<&CMN_refclk1>;
    +};
    解决了冻结问题、这不需要在 SDK 8.6上进行配置、但需要在 SDK 10.0上添加。
    这是我们的电路图、包括 PCIe3-REFCLK3P 的连接状态。 附件是修改后的 DTS、以及日志和校验寄存器值。
    此致、
    Yang
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

      我再读取几个寄存器、希望它会有所帮助。
    此致、
    Yang
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
     在调试过程中、我发现了一种现象、即 EVM 板和定制板上的同一程序具有不同行为。 在 EVM 板上、PCIe0、PCIE1和 PCIe2都可以运行、而在定制板上、PCIe0、PCIE1和 PCIe2都报告 phy poweron 故障错误、这让我感到非常困惑。 以下是我的调试日志(EVM 和自定义日志)、希望对我们分析问题有所帮助。
    此致、
    Yang
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Yang:

    感谢您的原理图。 这种连接方式好像是通过 PCIe 参考时钟从 SoC 直接连接到 PCIe 连接器。 TI EVM 的默认硬件配置是使用外部时钟发生器、因此该硬件差异很可能是导致该问题的原因。

    您是否可以尝试添加应影响 PCIe0、1和2的此补丁?

     e2e.ti.com/.../4643.0001_2D00_DTS_2D00_changes_2D00_for_2D00_internal_2D00_PCIe_2D00_refclk_2D00_needed_2D00_on_2D00_top_2D00_o.patch

    如果这会导致冻结、则可能需要启用时钟。

    此致、

    Takuma

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
     这是根据您提供的补丁进行的更改、但 serdes3的 PCIe3仍不能正常工作。 以下日志和相关修改。
    此致、
    Yang
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

     您是否可以为我提供任何补丁以尝试解决此问题? 我们目前正在为客户的开发板开发 Bringp。 请尽快答复这一问题。 非常感谢!
    此致、
    Yang
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Yang:

    [报价 userid="572765" url="~/support/processors-group/processors/f/processors-forum/1476868/tda4vm-q1-tda4-connects-to-switch-via-pcie/5676971 #5676971"]
     这是根据您提供的补丁进行的更改、但 serdes3的 PCIe3仍不能正常工作。 以下日志和相关修改。
    [报价]

    我看到所有4个 PCIe 的错误、因此我认为不仅 PCIe3有问题。 或者、PCIe3是唯一需要考虑的问题吗、我们可以忽略 PCIe0、1和2?

    您是否有可以为我提供的任何补丁程序来尝试解决此问题?

    我已在5天前分享了包含补丁的常见问题解答。 我将在此处复制补丁:

     e2e.ti.com/.../0083.0001_2D00_PCIe_2D00_internal_2D00_refclk_2D00_patches_2D00_for_2D00_8.6_2D00_SDK_2D00_on_2D00_TDA4VM_2D00_J.patch

    我认为它不会完全适用于最新的 SDK、但请参考此补丁来更改最新的 SDK。

    此致、

    Takuma

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢您的支持、我昨天提供的日志有误。 该程序似乎未被替换。
    PCIE0、PCIE1和 PCIe2未报告任何错误、但当加载到 PCIe3时、器件冻结、这是上一个票证中提到的错误。
    如果已添加
    +&wiz3_pll1_refclk {
    + Assigned-Clocks =<&wiz3_pll1_refclk>;
    + assigned-clock-paraments =<&CMN_refclk1>;
    +};
    +
    +&wiz3_REFCLK_dig {
    + Assigned-Clocks =<&wiz3_REFCLK_DIG>;
    + assigned-clock-paraments =<&CMN_refclk1>;
    +};

    虽然它不会卡住、但会报告以下错误
    j721e-PCIe 2920000.PCIe:错误-ETIMEDOUT:无法初始化 phy
    [ 1.717913] j721e-PCIe:2920000.PCIe 的探测器出现故障、错误为-110
    [ 1.724516] j721e-PCIe 2930000.PCIe:主机桥/bus@100000/PCIe@2930000范围:
    [ 1.732006] j721e-PCIe 2930000.PCIe:IO 0x4410001000..0x4410010fff -> 0x0000001000
    [ 1.740086] j721e-PCIe 2930000.PCIe:MEM 0x441001111000..0x4417ffff -> 0x0000011000
    [ 1.748164] j721e-PCIe 2930000.PCIe:IB MEM 0x0000000000..0xffffffff -> 0x0000000000
    [ 1.857602] cdns-serra-phy 5030000.serdes:等待 PHY 状态就绪超时
    [ 1.864988] phy phy-5030000.serdes.11: phy 开机失败-->-110
    [ 1.871154] j721e-pcie 2930000.pcie:error -etimedout:无法初始化 phy
    [ 1.878040] j721e-pcie:2930000.pcie 的探测器失败、错误为-110
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好, 这是添加一个补丁: 0083.0001-PCIe-internal-REFCLK-patches-for-8.6-SDK-on-TDA4VM-J.patch 收集的日志

      

    e2e.ti.com/.../pcieerror_5F00_0226.txt

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

    您好!

     在之前的内容中、添加一个 PCIe3卡住的相关信息。

    此致、

    Yang

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

    尊敬的 Yang:

    新日志看起来更好、但正如您提到的、日志似乎停止在 PCIe3。  

    有两点:

    出于推理、PCIe 初始化会非常早地停止、因此建议检查复位引脚和时钟问题、因为这些是在 PCIe 内核驱动程序中初始化的一些首要任务。

    此致、

    Takuma

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

    您好!

    这是关于 PCIe_RSTn 的硬件连接图和代码的修改点、但在修改后、在启动到 PCIe3时仍然会卡住。
    这是 serdes3中 PCIe-REFCLK3P 引脚和 PCIe-REFCLK3N 引脚的波形、但看起来不是很正确。
    Regadrs、
    Yang
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Yang:

    PCIe 时钟似乎未设置。 我可以在3个工作日内对此进行调查吗?  

    我怀疑驾驶员被卡在驾驶员的574线附近: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/pci/controller/cadence/pci-j721e.c?h=ti-linux-6.6.y#n574

    您可以在这里放置一些调试语句、以查看导致问题的确切代码行。

    此致、

    Takuma

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

    尊敬的 Yang:

    在这方面仍然需要一些时间、但想要分享一些发现。  

    我已经重现了 TI EVM 上的挂起。 TI J721E EVM 没有 PCIe3引脚输出、它用于 USB、但定义 PCIe3仍然应该是可以的、它应该只是错误并继续前进(只是不起作用、因为实际上 EVM 板上没有 PCIe3)。

    在8.6 SDK 中看起来像、在 devicetree 中定义 PCIe3不会导致挂起、但在10.1中执行相同的操作会导致挂起。 8.6 SDK 和10.x SDK 之间会发生一个很大的变化、那就是在 U-Boot 中需要进行一些 SERDES 初始化。 我目前怀疑 U-Boot 和 Linux 中的 SERDES 初始化不匹配导致 SERDES3挂起。

    此致、

    Takuma

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

    您好!

     非常感谢您的调查。 我在这里也在进行调查。 如果有任何进展、请随时向我通报最新情况。
    此致、
    Yang
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Yang:

    抱歉、需要1~2多个工作日才能在此方面取得进展。

    目前通过尝试修改 U-Boot devicetree 中的 serdes3节点和 serdes_ln_ctrl 来匹配 Linux devicetree 进行了实验、但到目前为止、挂起似乎仍然存在。 我计划继续使用 devicetree 和 U-Boot 配置进行一些实验。

    此致、

    Takuma

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

    尊敬的 Yang:

    仍然没有找到"修复"、但在这个问题上取得了一些进展。 我可以多获得2个工作日、以便取得更多进展。

    我发现、使用9.2 SDK 中的 U-Boot 和10.1 SDK 中的 Linux 内核、可完全引导至终端、而不会在 PCIe 驱动程序中挂起。 如果您有兴趣、也可以尝试相同的实验、方法是安装9.2 SDK、仅覆盖 U-Boot 二进制文件、同时保留10.1 SDK 中的 Linux 内核。

    这使更多人确信问题出在9.x 和10.x SDK 之间的 U-Boot 更改中。 我做了一个实验、从 U-Boot config 中注释掉 Sierra SerDes 和 Wiz 驱动程序、这样它们不会在10.x 中初始化、但在这些更改后问题仍然存在。 我将继续研究该问题、重点关注 U-Boot 的更改、以便查看我们是否可以启动。  

    此致、

    Takuma

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

    您好!

     好的,谢谢你的分享。 SDk10中。 x、我还在 uboot 上禁用了 SerDes、这与您的情况一致。
    此致、
    Yang
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Yang:

    感谢您的确认。  

    此致、

    Takuma

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

    尊敬的 Yang:

    您是否能够在 sdk10.x 上共享完整日志(包括 U-Boot 日志)并在 uboot 上禁用串行器/解串器?

    我想查看在 U-Boot 中禁用 SerDes 时是否看到以下日志:

    CDN、Sierra SerDes@5000000:未找到 PHY 0x7364与0x0
    Sierra 初始化失败:-22

    此致、

    Takuma

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

    您好!

      以下是在 U-boot 中关闭串行器/解串器后的 Linux 引导日志:

    e2e.ti.com/.../PCIE_5F00_Log.txt

    此致、

    Yang

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

    尊敬的 Yang:

    U-Boot 有两个初始化 Sierra SerDes 的不同位置。 一个位置是 devicetre、另一个位置是由某些 U-Boot 配置控制的特定于电路板的驱动器。 您是否可以尝试应用以下补丁:

    e2e.ti.com/.../0001_2D00_remove_2D00_Sierra_2D00_SERDES_2D00_init.patch

    此致、

    Takuma

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

    您好!

    上一个日志是关于我禁用 SerDes 爬行在 uboot ,我已经尝试了以下链接的内容:
    Reagards,
    Yang
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Yang:

    看起来更新后的 U-Boot 未构建或未刷写。 这两个日志 来自为 Sierra 或 Wiz 启用的 U-Boot 配置。

    CDN、Sierra SerDes@5000000:未找到 PHY 0x7364与0x0
    Sierra 初始化失败:-22

    此致、

    Takuma

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

    尊敬的 Yang:

    除此之外、您还可以做另外两件事:

    • k3conf 转储时钟295.
    • 而不是以下选项:

      +&wiz3_pll1_refclk {
      + assigned-clocks = <&wiz3_pll1_refclk>;
      
      + assigned-clock-parents = <&cmn_refclk1>;
      
      +};
      
      +
      
      +&wiz3_refclk_dig {
      
      + assigned-clocks = <&wiz3_refclk_dig>;
      
      + assigned-clock-parents = <&cmn_refclk1>;
      
      +};


      您是否可以在内核 devicetree 中添加以下内容:

      +&wiz3_pll0_refclk {
      + assigned-clocks = <&wiz3_pll0_refclk>;
      
      + assigned-clock-parents = <&cmn_refclk1>;
      
      +};
      
      +
      
      +&wiz3_refclk_dig {
      
      + assigned-clocks = <&wiz3_refclk_dig>;
      
      + assigned-clock-parents = <&cmn_refclk1>;
      
      +};

    此致、

    Takuma

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

    您好、

    已根据您的建议修改了代码、以下是修改后的日志、单独修改了+&wiz3_pll1_REFCLK{+ assigned-clocks =<&wiz3_pll1_REFCLK>;+ assigned-clock-parents =<&cmn_refclk1>+++&ref3_refclk_dig =<&clk_dig;+&clk_clk_dig;<&clk;<&cln;
    此致、
    Yang
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Yang、

    您能否共享以下命令的输出:
    k3conf 转储时钟295.
    如果您能够引导至 Linux 提示符(即使用前面的 diff、其中使用的是 wiz3_pll1_refclk)?

    此致、
    Siddharth。

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

    您好!

    1.这是在不修改 PCIe3的情况下捕获的 k3conf 转储时钟295日志、因为添加给定的补丁会导致命令输入冻结。
    2.in 您可以引导至 Linux 提示符的情况(即使用先前的 diff、其中使用的是 wiz3_pll1_refclk)? 我以前在 DTS 中添加过这段代码、但代码仍然冻结。
    3.我们希望您可以在 EVK 上对其进行测试。 我们将重现此问题并更高效地进行修改。
    此致、
    Yang
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Yang、

    感谢您分享的输出 k3conf 转储时钟295 . 该输出指示 SERDES3 REFCLK 已启用 不是100 MHz 这是 PCIe 需要使用的元件。 外部参考时钟 CMN_refclk1 用作 SERDES3的参考时钟的时钟似乎具有192 MHz 的频率。 请重新检查并告诉我。

    或者、 295 4. 295 13. 具有所需的100 MHz 频率。 您能否尝试以下差异并检查它是否起作用?

    +&wiz3_pll0_refclk {
    + assigned-clocks = <&wiz3_pll0_refclk>;
    + assigned-clock-parents = <&k3_clks 295 13>;
    +};
    +
    +&wiz3_refclk_dig {
    + assigned-clocks = <&wiz3_refclk_dig>;
    + assigned-clock-parents = <&k3_clks 295 13>;
    +};


    此致、
    Siddharth。

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

    您好!

    我更改了代码
    +&wiz3_pll0_REFCLK {
    + Assigned-Clocks =<&wiz3_pll0_REFCLK>;
    + assigned-clock-parents =<&K3_CLKS 295 13>;
    +};
    +
    +&wiz3_REFCLK_dig {
    + Assigned-Clocks =<&wiz3_REFCLK_DIG>;
    + assigned-clock-parents =<&K3_CLKS 295 13>;
    +};
    和代码
    +&wiz3_pll0_REFCLK {
    + Assigned-Clocks =<&wiz3_pll0_REFCLK>;
    + assigned-clock-parents =<&K3_CLKS 295 4>;
    +};
    +
    +&wiz3_REFCLK_dig {
    + Assigned-Clocks =<&wiz3_REFCLK_DIG>;
    + assigned-clock-parents =<&K3_CLKS 295 4>;
    +};
    但结果完全相同、两者都会卡住:
    此致、
    Yang
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Yang、

    请尝试以下差异:

    +&wiz3_pll1_refclk {
    +	assigned-clocks = <&wiz3_pll1_refclk>;
    +	assigned-clock-parents = <&cmn_refclk1>;
    +};
    +
    +&wiz3_refclk_dig {
    +	assigned-clocks = <&wiz3_refclk_dig>;
    +	assigned-clock-parents = <&cmn_refclk1>;
    +};
    +&serdes3 {
    +	assigned-clocks = <&serdes3 CDNS_SIERRA_PLL_CMNLC>;
    +	assigned-clock-parents = <&wiz3_pll1_refclk>;
    +};

    此致、
    Siddharth。

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

    您好!

    1.很抱歉之前登录时出错。 我正在修改代码+&wiz3_pll0_REFCLK{+ assigned-clocks =<&3_pll0_REFCLK>;+ assigned-clocks-parents =<&K3_CLKS 295 13>;+};++&wiz3_REFCLK_DIG{+ assigned-clocks =<&3_REFCLK_parents =<&13>、但随后不会执行与 PCIK3-DIG 相关的设备。 lspci 只包含器件 pcie0、pcie1、PCIe2。
    以下是截取的日志:
    2.以下是修改后的代码+&ref3_pll1_refclk{+ assigned-clocks =<&wiz3_pll1_REFCLK>;+ assigned-clocks =<&CMN_refclk1>;+;++&wiz3_REFCLK_DIG{+ assigned-clocks =
    日志:
    此致、
    Yang
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Yang:

    看起来两个日志都没有清理引导、并且 PCIe3正在正确探测。 第二个名为"add_wiz3_REFCLK"的日志似乎在 PCIe3初始化中更进一步,所以它看起来使用 wiz3_pll1_refclk 是正确的。

    在第二个日志中、我看到:

    [    5.937282] cdns-sierra-phy 5030000.serdes: Timeout waiting for PHY status ready
    [    5.944668] phy phy-5030000.serdes.12: phy poweron failed --> -110
    [    5.950836] j721e-pcie 2930000.pcie: error -ETIMEDOUT: Failed to init phy
    [    5.957620] j721e-pcie: probe of 2930000.pcie failed with error -110

    您能分享输出吗  k3conf 转储时钟295.  再次使用用于生成 "add_wiz3_refclk" 日志的 devicetree"。

    此致、

    Takuma

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

    您好!

     我在16天前进行了这项实验、您的回答与这项实验不同。 我希望我们不要做重复和无用的工作。
    此致、
    Yang
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Yang、

    由于使用 SERDES2的 PCIe2在您的设置中似乎可用、因此我们能否检查以下各项的输出:
    第294章一个男人
    这将为我们提供参考、用于与 SERDES3的故障情况进行比较。

    此致、
    Siddharth。

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

    您好!

      下图显示了执行该命令的结果:

    此致、

    Yang

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

    尊敬的 Yang:

    我希望我们不要做重复和无用的工作。

    对此深表歉意。 您的补丁是正确的。

    最新消息是、DEV_SERDES_16G_IP2_LN0/1_TXCLK 均为 CLK_STATE_NOT_READY。 Siddharth 可能有不同的想法、但我们可以再次检查以下寄存器、并添加其他 PCIe 寄存器来进行比较吗?

    • 0x00118090
    • 0x00118094
    • 0x00108070
    • 0x00108074
    • 0x00108078
    • 0x0010807C

    此致、

    Takuma

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

    您好!

      下图显示了我读取的寄存器值:

      

    此致、

    Yang

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

    尊敬的 Yang:

    这些显示都正确。 我来和 Siddharth 核对一下。

    此致、

    Takuma

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

    尊敬的 Yang:

    我发现一些有趣的事情可能是导致该问题的根本原因。

    目前、使用10.1 SDK U-Boot + Linux 内核、我能够启动 PCIe0、1、2和3控制器(不过、由于 PCIe3没有引脚输出、因此无法测试它是否可以枚举 PCIe 卡)。 下面是我看到的内容:

    root@j721e-evm:~# lspci
    0000:00:00.0 PCI bridge: Texas Instruments Device b00d
    0001:00:00.0 PCI bridge: Texas Instruments Device b00d
    0002:00:00.0 PCI bridge: Texas Instruments Device b00d
    0003:00:00.0 PCI bridge: Texas Instruments Device b00d
    root@j721e-evm:~# uname -a
    Linux j721e-evm 6.6.44-ti-gdf658b1b226e-dirty #3 SMP PREEMPT Tue Mar 11 18:25:17 CDT 2025 aarch64 GNU/Linux
    root@j721e-evm:~#
    

    该更改是对 U-Boot 配置进行了一行更改:

    e2e.ti.com/.../0001_2D00_disable_2D00_CONFIG_5F00_OF_5F00_LIBFDT_5F00_OVERLAY_2D00_due_2D00_to_2D00_conflict_2D00_for.patch

    在 Linux 内核中、我进行了以下更改:

    e2e.ti.com/.../0001_2D00_adding_2D00_pcie3_2D00_to_2D00_dts.patch

    您能否对其进行测试?

    此致、

    Takuma

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

    您好、

      该函数似乎运行良好、稍后我会进行测试。 非常感谢您的支持。

    此致、

    Yang

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

    尊敬的 Yang:

    很高兴听到这个消息!

    PCIe 控制器似乎在工作。

    使用以太网交换机等实际 PCIe 器件进行测试时、仍需要注意以下两点:

    1. PCIe*_RC 节点下的 RESET-GPIO 属性需要进行引脚多路复用并正确分配。 这将特定于您的定制电路板。
      1. 您 之前已在此论坛主题中设置此功能、但请确保它仍在您当前的 devicetree 中
    2. PCIe REFCLK 应将100MHz 输出到 PCIe 连接器
      1.  自我们3天前检查相关寄存器后、此方法应该已经生效
      2. 但是 、如果 PCIe 开关未显示、则最好探测 PCIe REFCLK 信号

    此致、

    Takuma