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:如何实现两个 TDA4之间的 PCIe 通信

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/952260/tda4vm-how-to-realize-pcie-communication-between-two-tda4

器件型号:TDA4VM

您好,

我们需要测试标记为 TDA4_A、TDA4_B 的两个 TDA4芯片之间的 PCIe 通信、并通过 PCIe 接口在两个 TDA4芯片之间传输图像数据。

我们硬件上的 PCIe 时钟 TDA4_A 为 TDA4_B 提供时钟 电路原理图如下:


同时、我们还可以选择使用 R3004和 R3006通过外部时钟为 TDA4_A 和 TDA4_B 的 PCIe 接口提供时钟。

使用外部时钟时、我们遵循 ti-processor-sdk-linux-Automotive J7-EVM-07_00_00用户指南第3.2.2.8节中的方法。 TDA4_A 使用 RC 模式,TDA4_B 使用 EP 模式,TDA4_A 可以正确读取 TDA4_B 的节点。

但是、当我们使用 TDA4_A 为 TDA4_B 提供时钟时、TDA4_A 使用 RC 模式、TDA4_B 使用 EP 模式、TDA4_A 无法读取 TDA4_B 的节点

问题如下

使用 TDA4_A 为 TDA4_B 提供时钟、我们需要修改哪些内容才能实现 TDA4_A 和 TDA4_B PCIe 通信?的功能

2.在用户指南《使用 PCIe 背板的多芯片视频捕获应用 PSDK_RTOS_auto_J7_06_02_00_21的 VISION_APP 示例》中、我可以在两个 TDA4之间实现图像传输。 但两个 TDA4处于 RC 模式、需要使用 TDA4作为背板。

如果我的 TDA4_A 配置为 RC、TDA4_B 配置为 EP、是否有任何相关示例可实现两者的图像传输? 如果没有、我们如何修改多芯片视频捕捉应用示例以实现此功能?

此致!

Kepei

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

    是否有专家可以回答我的问题?

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

    Buawkp、  

    当前 SDK 不支持输出 REFCLK。 我们有内部工作来启用和测试它、但尚未完成。  

    在  使用 PCIe 背板示例的多芯片视频采集应用演示用户指南中、您能否向我发送直接链接?  

    要将其中一个 SOC 用作背板、您可以参考:

    https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-jacinto7/latest/exports/docs/linux/Foundational_Components/Kernel/Kernel_Drivers/PCIe/PCIe_Backplane.html

    本指南参考 Linux 驱动程序、但如何在 Backplan 器件中配置条形图的概念也适用于 RTOS 示例。  

    如果您有关于 Visionapp 模块的其他问题、我可以让我的一位同事在您向我发送直接链接后回答。

    此致

    Jian

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

    您好 Jian,

    感谢您的回复!

    这是 PSDK06_02_00_21中"使用 PCIe 背板的多芯片视频采集应用示例"的链接:

    https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/06_02_00_21/exports/docs/vision_apps/docs/user_guide/APP_PCIE_VIDEO.html

    在 PSDK_RTOS_auto_J7_07_00_00_11中、删除了此示例。

    在本示例中、需要首先使用 NTB_PEER 模块、但会在 ti-processor-sdk-linux-Automotive J7-EVM-07_00_00内核中删除此模块。

    我的问题是:
    一个 TDA4_A 段用作 RC、另一个 TDA4_B 段用作 EP。 是否可以在 VISION_APPS/内核/SAMPLE/r5f/中使用 PCIe_TX_node 和 PCIe_Rx_node 来实现视频传输?

    2.我需要对 Linux 内核和驱动程序进行哪些更改?

    谢谢!

    Kepei

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

    Kepei、  

    您可以使用 RC-EP 配置在每侧执行显示捕捉功能。 但我认为您不能按原样使用这些节点。 我将要求我的同事检查脚本的内容:

    采集 EVM:

    run_app_pcie_video_source.sh

    显示 EVM:

    run_app_pcie_video_sink.sh

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

    您好 Jian,

    谢谢!

    我根据您的建议对其进行了测试、并将其用于接收和显示 EP 侧的图像、但 EP 侧发生了以下错误:
    地址转换地址看起来不正确:

    [MCU2_0]   100.280481 s:TranslationCfg.sizeInBytes 为0x10000、baseAddress 为0xadff0000、translatedAddress 为0xffffffffff
    [MCU2_0]   100.280572 s:appPcieSetupRat ():CSL_ratConfigRegionTranslation ()中的错误

    在 NTB_PEER 驱动程序中、在 net_peer modprobe 期间配置了 translatedAddress 地址。

    此致。

    Kepei

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

    您好、Kebi、

    为了在 RC 和 EP 之间实现与 NTB 相似的功能、应该编写一个新的"端点功能"和一个新的"主机端驱动器"、这两个功能都提供与 NTB 对等器件相似的功能。

    端点功能驱动程序:

    您可以参考 drivers/PCI/端点/函数/PCI-EPF-test.c 并编写 驱动程序、以提供与端点端点端点端点的 NTB_PEER 功能相似的功能。

    在这里、您必须使用 PCI_EPC_MAP_addr ()来映射远程地址、 并使用 PCI_EPC_SET_bar ()来允许 RC 访问 EP 存储器。

    主机侧驱动器:

    您可以参考 drivers/MISC/PCI-endpoint-test.c 并 编写一个驱动程序、以提供与主机端的 NTB_PEER 功能相似的功能。

    struct pci_dev *pdev (资源成员)将具有访问 EP 存储器的物理地址。 您可以在 pci_endpoint_test_copy ()、 pci_endpoint_test_read ()、 pci_endpoint_test_write ()中引用如何将本地地址传递给远程设备

    谢谢

    Kishon

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

    你(们)好,Kishon

    非常感谢您的建议!

    我们实现了 RC 和 EP 的功能。 目前、我们的问题是如何生成内部时钟

    谢谢

    Kepei

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

    您好、Kebi、

    感谢您的确认、我们正在积极处理与内部时钟相关的另一个线程、我们应该在接下来的几天内进行更新。

    让我们继续讨论。

    现在关闭此主题。

    此致

    Karthik