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.

[参考译文] TDA2SX/TDA2XX (Linux):在 VSDK 链接中使用 PCIe 驱动程序

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/691932/tda2sx-tda2xx-linux-using-pcie-drivers-in-vsdk-links

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

大家好、我将在 Linux 下使用 VSDK 3.02、并使用一个定制板、通过 PCIe 连接两个 TDA2XX/TDA2SX。

我想获得一些有关如何在 VSDK 链接中使用 PCIe 驱动程序(内核代码中存在)的建议。

我已通过提供的 PCIe 测试功能成功测试了 PCIe 传输。 问题是、我希望能够提供从 EP 端运行的链路中的输出缓冲器地址获取的源地址。 我不知道如何从用户空间访问 EP 驱动程序代码、因为未实现 ioctl、我不确定如何执行、因为此驱动程序未作为标准 Linux 模块实现 (没有包含 ioctl 函数指针的 file_operations 结构、也没有指定 file_operations 结构指针的结构)。 至于 RC 侧、我认为这是可行的、因为它是作为标准 Linux 模块实现的、我可以通过 ioctl 向 RC 侧提供目标地址(用例应将数据从 EP 发送到 RC)。

另一个问题是、在 EP 驱动器接收到来自 RC 侧的信号以开始传输之前、我不确定如何阻止 EP 链路的 processData 函数。

总之、我需要从 RTOS 上执行的链路获取视频帧、该帧将通过 Linux 上的 PCIe EP 链路发送、然后在 Linux 上的另一个 SoC 的 PCIe RC 链路上接收、并显示在 RTOS 中执行的链路中。

我希望我想实现的目标是明确的、但如果需要、我可以做更多的澄清。

提前感谢您。

此致、

Nick

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

    我了解用例。 要实现此更改、需要在以下组件中进行:

    1.更改 EP-SINK 链路以向 PCIe 端点驱动程序发送 ioctl 命令
    2.在端点功能框架中进行修改(类似于 RC 测试功能驱动程序):
    a)将端点功能注册为器件
    b)从用户空间接收 ioctls
    3.修改 EP-Source 链接以将 ioctl 命令发送到 PCI-RC 驱动程序。
    4.修改 PCI-RC 驱动程序以处理来自 EP-Source 链接的特定 ioctl 调用。

    当前的端点功能驱动程序是一个用于从 RC 和 EP 交换信息的示例实现。 如果要使用现有的 EPF 框架、可以将条目添加到 configfs (文件驱动程序/PCI/端点/PCI-EP-CFS.c)中。 您仍需要在其他三个组件中进行修改。

    此致
    Shravan