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:如何将 AM5728配置为两个 PCIe RC 单通道 RC

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

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/595948/linux-am5728-how-to-configure-am5728-as-two-pcie-rc-single-lane-rcs

器件型号:AM5728

工具/软件:Linux

我们使用的 AM5728设计与 EVM 类似。

我们要将 PCIe SS1 SS2设置为两个单独的单通道 RC。

1) 1) dra7驱动程序是否支持此配置?

2) 2)您能否为如何实现这一目标提供帮助?

我们让单控制器双通道模式工作。  我怀疑将其分解为两个控制器需要更改 dra7.dtsi 部分:

pcie1_RC:pcie_rc@51000000{
兼容="ti、dra7-pcie";
REG =<0x51000000 0x2000>、<0x51002000 0x14c>、$
reg-names ="RC_dbics"、"ti_conf"、"config";
中断=<0 232 0x4>、<0 233 0x4>;
#address-cells =<3>;
大小单元格=<2>;
DEVICE_TYPE ="PCI";
范围=<0x81000000 0 0 0x03000 0 0x0$
0x82000000 0 0x20013000 0x13000 0 0xF$
#interrupt-cells =<1>;
通道数=<1>;
Linux、PCI 域=<0>;
ti、hwmds ="pcie1";
PHY =<&pcie1_phy>;
PHY-names ="PCIe-phy0";
中断映射屏蔽=<0 0 0 7>;
中断映射=<0 0 1 &pcie1_INTC 1>、
<0 0 0 2 &pcie1_intc 2>、
<0 0 0 3 &pcie1_intc 3>、
<0 0 0 4 &pcie1_intc 4>;
STATUS ="禁用";
pcie1_intc:中断控制器{
中断控制器;
#address-cells =<0>;
#interrupt-cells =<1>;
};
};

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在文件中进一步发现一个看起来可以配置为 AXI@1中的第二个 RC 的引用:


    AXI@1{
    兼容="简单总线";
    大小单元格=<1>;
    #address-cells =<1>;
    范围=<0x51800000 0x51800000 0x3000
    0x0 0x30000000 0x10000000>;
    STATUS ="禁用";
    PCIe@5180000{
    兼容="ti、dra7-pcie";
    REG =<0x51800000 0x2000>、<0x51802000 0x14c>、<0x1000 0x2000>;
    reg-names ="RC_dbics"、"ti_conf"、"config";
    中断=<0 355 0x4>、<0 356 0x4>;
    #address-cells =<3>;
    大小单元格=<2>;
    DEVICE_TYPE ="PCI";
    范围=<0x81000000 0 0 0x03000 0 0x00010000
    0x82000000 0 0x30013000 0x13000 0 0x0xffffff000>;
    #interrupt-cells =<1>;
    通道数=<1>;
    Linux、PCI 域=<1>;
    ti、hwmds ="PCIe2";
    PHY =<&PCIe2_phy>;
    PHY-names ="PCIe-phy0";
    中断映射屏蔽=<0 0 0 7>;
    中断映射=<0 0 1 &PCIe2_INTC 1>、
    <0 0 2 &PCIe2_INTC 2>、
    <0 0 0 3 &PCIe2_INTC 3>、
    <0 0 4 &PCIe2_INTC 4>;
    PCIe2_INTC:中断控制器{
    中断控制器;
    #address-cells =<0>;
    #interrupt-cells =<1>;
    };
    };
    };

    我将尝试在 axi@0部分将其设置为 PCIe2_RC。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    还不高兴,请提供任何建议。 谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尝试使第二个 PCIe RC 正常工作。 禁用 pcie1_RC 并仅启用 SS2配置。 设备驱动程序失败。 下面是工作日志输出与非工作 dmesg 日志输出之间的比较。

    工作 pcie1_RC (SS1):

    [1.842894] pinctrl-single 4a00340.00.pinmux:在 PA fc003400大小为1128时为282个引脚
    [1.846509] PCI 主机桥/ocp/axi@0/PCIE_RC@51000000范围:
    [1.846521]使用[bus、找不到/ocp/axi@0/PCIE_RC@51000000的总线范围
    00-关]
    [1.846555] IO 0x20003000.0x20012fff -> 0x00000000
    [1.846576] MEM 0x20013000..0x2ffffff -> 0x20013000
    [1.848891] dra7-PCIe 51000000.PCIe_RC:PCI 主机桥至总线0000:00
    [1.848905] PCI_BUS 0000:00:根总线资源[bus 00-ff]
    [1.848916] PCI_BUS 0000:00:根总线资源[IO 0x0000-0xFFF]
    [1.848927] PCI_BUS 0000:00:根总线资源[mem 0x20013000-0x2fffffff]
    [1.848962] PCI 0000:00:00.0:[104C:888]类型01类0x060400
    [1.849005] PCI 0000:00:00.0:寄存器0x10:[MEM 0x00000000-0x000fff]
    [1.849027] PCI 0000:00:00.0:寄存器0x14:[MEM 0x0000-0x0000FFF]
    [1.849092] PCI 0000:00:00.0:支持 D1
    [1.849102] PCI 0000:00:00.0:D0 D1 D3hot 支持 PME#
    [1.849356] PCI:总线0:禁用快速背对背传输
    [1.849521] PCI 0000:01:00.0:[10b5:8606]类型00类0x060400
    [1.849551] PCI 0000:01:00.0:忽略类0x060400 (与标头 t 不匹配
    类型00)
    [1.849791] PCI:总线1:禁用快速背对背传输
    [1.849872] PCI 0000:00:00.0:条0:已分配[mem 0x20100000-0x201fff]
    [1.849886] PCI 0000:00:00.0:条形码1:已分配[mem 0x2000000-0x2002FFF]
    [1.849899] PCI 0000:00:00.0:PCI 桥至[bus 01]
    [1.850136] pcieport 0000:00:00.0:通过 PCIe PME 中断向 PME 发送信号
    [1.850146] PCI 0000:01:00.0:通过 PCIe PME 中断向 PME 发送信号
    [1.850158] PCIe_PME 0000:00:00.0:pcie01:服务驱动程序 PCIe_PME 已加载
    [1.850313] aer 0000:00:00.0:pcie02:service driver aer loaded
    [1.851267 ]未找到使用虚拟稳压器的背光电源

    故障 PCIe2_RC (使用 axi@1部分、只需将 PCIe2_RC 标签添加到 PCIe_RC 配置):

    [1.842885] pinctrl-single 4a00340.00.pinmux:在 PA fc003400大小为1128时为282个引脚
    [1.846184] dra7-PCIe 518000.pcie:不支持探头延迟
    [1.847099]未找到使用虚拟稳压器的背光电源
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尚未完全测试解决方案、但似乎使其正常工作。 现在、在它们下面看到两个桥接器和我们的 PCI 开关。

    1) 1)在 dra7.dtsi 中、修改 axi@1部分、注释掉 status ="disabled"并将其移至中断映射部分下方、类似于 pcie1_RC 的设置方式。 将 PCIE@51800000更改为 PCIe2_RC:pcie@51800000。

    2)在上层.dtsi 文件(本例中为 am57xx-evmcommon.dtsi)中添加以下内容:

    PCIe2_phy{
    /* 状态="禁用";*/
    状态="正常";
    };

    &PCIe2_RC{
    /* 状态="禁用";*/
    状态="正常";
    };

    PCIe2_phy 与 pcie1_phy 不同、默认情况下会禁用、因此需要在第二个 RC 工作之前启用它。 未启用 PCIe2_phy 会导致错误 dra7-PCIe 518000.pcie:不支持探头延迟。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Chris:

    感谢您分享解决方案。

    此致、
    帕维尔