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/DRA7XX (Linux、Vision 3.02):ptest 和 EDMA

Guru**** 2551110 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/683533/tda2sx-tda2xx-dra7xx-linux-vision-3-02-pcitest-and-edma

大家好、我将在 Ubuntu 14.04上使用 processor_sdk_vision_03_02_00_00和一个自定义 TDA2XX 板、其中2个 SoC 通过 PCIe 连接。

我已按照以下指南成功运行了 pcitest: processors.wiki.ti.com/.../Linux_Core_PCIe_EP_User's_Guide。

现在、我对测试本身以及 EDMA 有一些问题、涉及以下文件:

> processor_sdk_vision_03_02_00_00/ti_componels/os_tools/linux/kernel/omap/drivers/misc/pci_endpoint_test.c

> processor_sdk_vision_03_02_00_00/ti_compons/os_tools/linux/kernel/omap/drivers/dma/edma.c

 问题:

1) 1)当目的缓冲区和源缓冲区都分配在 RC 侧时、如何对 RC 到 EP 通信进行 PCI_end点_test_copy()函数测试? 在 EP 侧处理数据的代码部分在哪里? 即使这确实测试了 RC 到 EP 通信、速度也很糟糕、根据我的测量结果、速度大约为4Mbps (在 x1模式下、相比之下、在 RTOS 中、我得到的值为370MBps、与 TI 官方测量值相当)。 此外、当我在器件树中启用2个通道时、执行时间没有任何变化。

2) 2)我看到在 pci_endpoint_test.c 中未使用 EDMA、这可能是导致性能不佳的原因。 我想使用 EDMA.c 中的 API、但有很多函数和结构、我不知道从哪里开始。 在 RTOS 中、这一切都变得更加简单和清晰。 我希望获得一个简单的复制示例、该示例使用与 RTOS 中类似的过程(初始化 EDMA、请求通道、准备参数集、触发、等待完成、 空闲通道、取消初始化 EDMA)。

我希望得到任何帮助,因为这种情况变得有点令人沮丧。

提前感谢您。

此致、Nick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗨、Nick、
    如果没有 DMA 支持、吞吐量就会非常糟糕。
    EPF 测试只是一个参考代码。 我们正在努力向 EPF 测试函数添加 DMA 支持、但正式版本(上游版本或作为下一版本的一部分)将需要时间。

    同时,您可以从此处获取添加此支持的修补程序的当前版本:
    review.omapzoom.org

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

    尊敬的 Ravikumar:

    很抱歉、我是在度假、回复很晚。

    我非常感谢你的努力。 但是、我仍然不了解测试是如何工作的。 LF 我是对的、您在此补丁中提供的代码适用于在 EP 端执行的 PCI-EPF-test.c。 pci_endpoint_test.c 是否只是一个代码、用于从 RC 远程调用 EP 上的函数? PCIe EP wiki 上的测试实际测试了什么? 我知道你在上一篇文章中说这是临区局与 EP 之间的沟通,但我希望得到一些澄清。

    期待收到您的回复。

    此致、
    Nick