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/TDA2EVM5777:PCIe 根复合体示例应用

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/663270/linux-tda2evm5777-pcie-root-complex-example-application

器件型号:TDA2EVM5777
主题中讨论的其他器件: TDA2Sx

工具/软件:Linux

您好!

在 TDA2x Linux 上运行 PCIe 模块配置为默认 PCIe RC 器件的 PCIe 回波应用是否有示例 Linux 软件?   我在 tda2evm5777 Vayu EVM 上运行 processor_sdk_vision_03_01_00_00 Linux。

我想将 Vayu EVM 连接到 PCIe 端点器件。  PCIe 端点器件作为具有回波应用的 PCIe EP 器件运行。  Vayu EVM 上的 Vision SDK 预构建 Linux TDA2x 可检测外部 PCIe EP 器件、但我不知道如何传输数据、以便能够接收来自该器件的回波。   如何向外回显 PCIe 设备并侦听回路?

感谢你的帮助。  我无法找到有关如何测试 EP 器件的 Linux PCIe RC 通信的任何文档。  我只能找到有关如何测试 Linux 端点连接的文档、但不能找到根复合体。 我将遵循以下文档:processor_sdk_vision_03_01_00_00/ti_compons/os_tools/linux/kernel/omap/Documentation/pci...  

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

    我已将您的问题转交给一位专家征求意见。

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

    感谢您的回复、我正在对该问题进行更多研究、并遇到在检测到 PCIe EP 器件时 Linux 启动时出现的问题。 它仍然可以检测到端点器件、但 Linux 驱动程序也发出 PCIe 错误消息、这会导致我相信任何 PCIe 回波应用都无法通过此内核和 EP 器件正常执行、并且需要一些帮助来克服这一消息。 有什么想法吗?

    下面粘贴了错误消息:
    [0.627198] PCI 0000:00:00.0:bar 9:没有空间容纳[mem 大小0x18000000 pref]
    [0.627209] PCI 0000:00:00.0:bar 9:分配[mem 大小0x18000000 pref]失败





    [0.590184] PCI 主机桥/ocp/axi@0/PCIE_RC@51000000范围:
    [0.590197]使用[bus 00-ff]找不到/ocp/axi@0/PCIE_RC@51000000的总线范围
    [0.611505] dra7-PCIe 51000000.PCIe_RC:PCI 主机桥至总线0000:00
    [0.611518] PCI_BUS 0000:00:根总线资源[bus 00-ff]
    [0.611529] PCI_BUS 0000:00:根总线资源[IO 0x0000-0xFFF]
    [0.611538] PCI_BUS 0000:00:根总线资源[mem 0x20013000-0x2fffffff]
    [0.611572] PCI 0000:00:00.0:[104C:888]类型01类0x060400
    [0.611613] PCI 0000:00:00.0:寄存器0x10:[MEM 0x00000000-0x000fff]
    [0.611635] PCI 0000:00:00.0:寄存器0x14:[MEM 0x00000000-0x0000FFF]
    [0.611700] PCI 0000:00:00.0:支持 D1
    [0.611710] PCI 0000:00:00.0:D0 D1 D3hot 支持 PME#
    [0.612119] PCI 0000:01:00.0:[104C:888]类型00类0x000000
    [0.612247] PCI 0000:01:00.0:寄存器0x10:[MEM 0xa0000000-0xaffffffffff pref]
    [0.612284] PCI 0000:01:00.0:寄存器0x14:[MEM 0x00000000-0x0000FFFF 前置 f]
    [0.612319] PCI 0000:01:00.0:寄存器0x18:[MEM 0x00000000-0x000fff pref]
    [0.612355] PCI 0000:01:00.0:寄存器0x1c:[MEM 0x00000000-0x0000FFFF 前置 f]
    [0.612391] PCI 0000:01:00.0:寄存器0x20:[MEM 0x00000000-0x00000fff pref]
    [0.612425] PCI 0000:01:00.0:寄存器0x24:[MEM 0x00000000-0x0000FFFF 前置 f]
    [0.612615] PCI 0000:01:00.0:支持 D1
    [0.612624] PCI 0000:01:00.0:D0 D1 D3hot 支持 PME#
    [0.627198] PCI 0000:00:00.0:bar 9:没有空间容纳[mem 大小0x18000000 pref]
    [0.627209] PCI 0000:00:00.0:bar 9:分配[mem 大小0x18000000 pref]失败
    [0.627221] PCI 0000:00:00.0:条0:已分配[mem 0x20100000-0x201fff]
    [0.627234] PCI 0000:00:00.0:条1:已分配[mem 0x2000000-0x2002FFF]
    [0.627246] PCI 0000:00:00.0:PCI 桥至[bus 01]
    [0.627476] pcieport 0000:00:00.0:通过 PCIe PME 中断向 PME 发送信号
    [0.627486] PCI 0000:01:00.0:通过 PCIe PME 中断向 PME 发送信号
    [0.627497] PCIe_PME 0000:00:00.0:pcie01:已加载服务驱动程序 PCIe_PME
    [0.627613] aer 0000:00:00.0:pcie02:service driver aer loaded







    是否有方法可以在我正在运行的预编译 Linux 中轻松修复此问题、或者是否必须通过编译内核来修复此问题?


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

    非常感谢您的帮助!

    我正在签入以查看是否有任何更新。

    谢谢、
    iFer
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 IFer、
    是的、有 PCIe 根复合体驱动程序。
    以下是 PCIe 用户指南供您参考: processors.wiki.ti.com/.../Linux_Core_PCIe_EP_User's_Guide

    您连接的终端设备是什么? 功能、模型等
    对于广泛可用的卡(如英特尔卡(wifi、eth、SATA 等)、默认情况下应启用大量网络和存储驱动程序。

    此致、
    RK
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 IFer、
    您是否还可以共享引导日志并将"lspci -v"输出为附件?

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

    感谢您的回答、


    我决定尝试将 Linux 作为端点器件、而不是将其用作根复合体器件、以查看是否有一种简单的方法来使回波示例正常工作。

    我已经按照 PCIe EP 用户指南操作、 但我似乎无法确定如何从根复合体接收数据。 除了  初始命令"mount -t configfs none /sys/kernel/config "之外、我可以按照第4.4节"内核"进行操作。 我收到错误 消息:mount:none already mounted or /sys/kernel/config busy  

    无论出现何种错误、我仍然能够继续、 /sys/kernel/config  目录中也存在一个名为  PCIe_EP 的目录。 当我遵循 第4.4节内核的其余部分时、我在  PCIe_EP 目录下创建了 PCI_EPF_TEST.0目录。  






    为什么在运行  mount  命令时会出现该错误、以及如何从根复合体器件接收数据并与之通信?


    此外, PCI-ENT-TEST.0 函数设备不在 /dev/目录 下。  这不是我应该用来与另一个 PCIe 设备通信的功能设备吗?  
     

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

    您好!

    很抱歉耽误你的时间。

    您是否检查是否已安装"configfs"? 在某些情况下、它已在启动期间安装。

    只需检查/sys/kernel/config 目录中是否有任何内容。

    如果没有、也请尝试"mount -t configfs configfs /sys/kernel/config "

    此致、
    RK

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

    您好、RK、

    感谢你的答复。

    /sys/kernel/configdirectory calledpci_ep 下已经有一个目录

    当我运行命令 mount -t configfs configfs /sys/kernel/config.时

    这是输出:

    root@dra7xx-EVM:~# mount -t configfs configfs /sys/kernel/config
    mount:configfs 已装载或/sys/kernel/config 忙
    configfs 已安装在/sys/kernel/config 上

    顺便说一下、我给您发送了一封私人邮件、其中包含更多详细信息。


    如果您需要更多信息、请告诉我。


    谢谢、
    iFer

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

    如果讨论可以继续公开进行(只要您的业务逻辑允许)、我将不胜感激、因为我想在 Linux 下的 TDA2SX 上测试相同的东西、但之前没有看到过这篇文章。 我在这里发布了类似的问题: e2e.ti.com/.../680131

    提前感谢:)
    此致、Nick
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    伊费尔、
    如果已安装 configfs 并看到目录"pcie_ep"、则可以跳过" mount -t configfs configfs /sys/kernel/config "步骤、然后继续执行其余步骤。

    此致、
    RK
x 出现错误。请重试或与管理员联系。