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 -VM PCIe DMA 问题

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1513440/tda4vm-tda4--vm-pcie-dma-issue

器件型号:TDA4VM
Thread 中讨论的其他器件:PROCESSOR-SDK-J721E、TDA4VH、 AM69DRA821

工具/软件:

TI、您好

​1.在 e2e.ti.com/.../processor-sdk-j721e-pci_epf_test-pci_epf_test-1-failed-to-get-private-dma-rx-channel-falling-back-to-generic-one 的线程中、您提到了这个问题 ​​“PROCESSOR-SDK-J721E:PCI_EPF_TEST PCI_EPF_TEST.1:无法获取专用 DMA Rx 通道。 回到通用模式“ ​​中的电流是固定的 ​​SDK 10 时间范围 ​​。 此问题是否已在当前中解决 ​​步骤 ​​发布?

2.我们正在使用 ​​RK3588 (RC) ​​和 ​​TDA4 (EP) ​​和 PCIe 通信。

    1. 如果没有 DMA、直接 ioread32_repmemcpy_fromio 在 RC 侧驱动程序中使用/可以正确地从 EP 中读取数据 ​​酒吧空间 ​​。
    2. 在调用时 ​​DMA ​​在 RC 侧 PCIe 设备驱动程序中、从 EP 读取数据 ​​酒吧空间 ​​、出现错误:只有前 4 个字节正确、后续数据不正确。
      • 和的帮助 ​​RK FAE ​​、调试日志显示 TDA4 返回 ​​“不支持的请求完成“ ​​RK3588 出错。
      • 他们建议检查 ​​入站配置 ​​EP 的条形空间。
    3. 使用类似的代码来实现的 ​​RK3588 ​​通过 PCIe (RC Left right arrowEP ) 互连、控制 RC 侧 PCIe DMA、可成功实现与 EP 的数据通信。

问题 ​​:在情况 2.b 中,错误的原因可能是什么,如何解决?

3.我们已经确定了具体的操作 ​​ATU 入站寄存器 ​​PCIe EP 背面。 这里是否有所有的入站配置操作?

PCI_EPF_TEST_SET_BAR(结构 PCI_EPF *EPF) -->
PCI_EPC_SET_BAR(结构 PCI_EPC *EPC、u8 func_no、结构 PCI_EPF_BAR *EPF_BAR)-->


//pcie-cadence-EP.c
静态内部 CDN _ PCIe _ EP _ SET _ BAR(结构 PCI_EPC * EPC、u8 fn、
结构 PCI_EPF_BAR *EPF_BAR)

...
dma_addr_t bar_phys = EPF_bar->phys_addr;
...
addr0 = lower_32_bits (bar_phys);
ADDR1 = UPPER_32_bits (bar_phys);
...
cdns_pcie_writel (PCIe、cdns_pcie_at_iB_EP_FUNC (fn、bar)、
addr0);
CDNS_PCIE_writel (PCIe、CDNS_PCIE_AT_IB_EP_FUNC (fn、bar)、
地址 1);
...
}

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

    尊敬的 Wang:

    1.是的,问题已解决。 警告日志仍会打印出来、但由于上游 Linux 的 PCI_EPF_TEST 示例而导致的警告为 PCIe 控制器上具有内部 DMA 的特定器件添加了新功能。 对于 TDA4VM、SoC 内部有 DMA 通道、但 PCIe 控制器内部没有、因此警告消息会打印出来。 在功能上、它与 8.6 SDK 中相同、此时不会打印警告消息。

    2.如果没有 DMA 读/写功能、但使用 DMA 读/写功能无法正常工作->可能是缓存问题? DMA 与 CPU 没有高速缓存一致性、因此可能需要存在显式失效/刷新才能读取/写入以与 DMA 搭配使用。

    3.对于第三个问题、是否正在使用 PCI_EPF_TEST 内核驱动程序? 请发送“lspci -vv“的输出、该输出应显示哪个内核驱动程序绑定到 PCIe 设备。

    此致、

    Takuma

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

    RK3588 和 TDA4-VH:10k Ω 的测试结果

    root@ok3588:/opt# ./pcitest.sh
    BAR tests
    
    BAR0:           OKAY
    BAR1:           OKAY
    BAR2:           OKAY
    BAR3:           OKAY
    BAR4:           OKAY
    BAR5:           OKAY
    
    Interrupt tests
    
    SET IRQ TYPE TO LEGACY:         OKAY
    LEGACY IRQ:     OKAY
    SET IRQ TYPE TO MSI:            OKAY
    MSI1:           OKAY
    MSI2:           OKAY
    MSI3:           NOT OKAY
    M...
    MSI32:          NOT OKAY
    
    SET IRQ TYPE TO MSI-X:          OKAY
    MSI-X1:         OKAY
    MSI-X2:         OKAY
    MSI-X3:         NOT OKAY
    MSI-X4:         NOT OKAY
    MSI-X5:         NOT OKAY
    MSI-X6:         NOT OKAY
    ...
    MSI-X31:                NOT OKAY
    MSI-X32:                NOT OKAY
    
    Read Tests
    
    SET IRQ TYPE TO MSI:            OKAY
    READ (      1 bytes):           OKAY
    READ (   1024 bytes):           OKAY
    READ (   1025 bytes):           OKAY
    READ (1024000 bytes):           OKAY
    READ (1024001 bytes):           OKAY
    
    Write Tests
    
    WRITE (      1 bytes):          OKAY
    WRITE (   1024 bytes):          OKAY
    WRITE (   1025 bytes):          OKAY
    WRITE (1024000 bytes):          OKAY
    WRITE (1024001 bytes):          OKAY
    
    Copy Tests
    
    COPY (      1 bytes):           OKAY
    COPY (   1024 bytes):           OKAY
    COPY (   1025 bytes):           OKAY
    COPY (1024000 bytes):           OKAY
    COPY (1024001 bytes):           OKAY

    TDA4 EP 侧的输出:

    [  214.783085] pci_epf_test pci_epf_test.0: Invalid MSIX IRQ number 29 / 2
    [  215.795084] pci_epf_test pci_epf_test.0: Invalid MSIX IRQ number 30 / 2
    [  216.815128] pci_epf_test pci_epf_test.0: Invalid MSIX IRQ number 31 / 2
    [  217.827083] pci_epf_test pci_epf_test.0: Invalid MSIX IRQ number 32 / 2
    [  218.839116] pci_epf_test pci_epf_test.0: WRITE => Size: 1 B, DMA: NO, Time: 0.000000370 s, Rate: 2702 KB/s
    [  218.855105] pci_epf_test pci_epf_test.0: WRITE => Size: 1024 B, DMA: NO, Time: 0.000002805 s, Rate: 365062 KB/s
    [  218.875099] pci_epf_test pci_epf_test.0: WRITE => Size: 1025 B, DMA: NO, Time: 0.000002815 s, Rate: 364120 KB/s
    [  218.902914] pci_epf_test pci_epf_test.0: WRITE => Size: 1024000 B, DMA: NO, Time: 0.002999535 s, Rate: 341386 KB/s
    [  218.930869] pci_epf_test pci_epf_test.0: WRITE => Size: 1024001 B, DMA: NO, Time: 0.003001720 s, Rate: 341138 KB/s
    [  218.951095] pci_epf_test pci_epf_test.0: READ => Size: 1 B, DMA: NO, Time: 0.000001475 s, Rate: 677 KB/s
    [  218.967235] pci_epf_test pci_epf_test.0: READ => Size: 1024 B, DMA: NO, Time: 0.000139240 s, Rate: 7354 KB/s
    [  218.983234] pci_epf_test pci_epf_test.0: READ => Size: 1025 B, DMA: NO, Time: 0.000140080 s, Rate: 7317 KB/s
    [  219.154154] pci_epf_test pci_epf_test.0: READ => Size: 1024000 B, DMA: NO, Time: 0.138952775 s, Rate: 7369 KB/s
    [  219.326113] pci_epf_test pci_epf_test.0: READ => Size: 1024001 B, DMA: NO, Time: 0.138913850 s, Rate: 7371 KB/s
    [  219.343103] pci_epf_test pci_epf_test.0: COPY => Size: 1 B, DMA: NO, Time: 0.000002045 s, Rate: 488 KB/s
    [  219.359242] pci_epf_test pci_epf_test.0: COPY => Size: 1024 B, DMA: NO, Time: 0.000142190 s, Rate: 7201 KB/s
    [  219.375242] pci_epf_test pci_epf_test.0: COPY => Size: 1025 B, DMA: NO, Time: 0.000143500 s, Rate: 7142 KB/s
    [  219.549143] pci_epf_test pci_epf_test.0: COPY => Size: 1024000 B, DMA: NO, Time: 0.142000500 s, Rate: 7211 KB/s
    [  219.717312] pci_epf_test pci_epf_test.0: COPY => Size: 1024001 B, DMA: NO, Time: 0.142166685 s, Rate: 7202 KB/s
     
    root@j784s4-evm:~# uname -a
    Linux j784s4-evm 6.6.44-ti-01478-g541c20281af7-dirty #1 SMP PREEMPT Thu Nov 14 19:20:24 UTC 2024 aarch64 GNU/Linux
     
    

    TDA4 SDK 版本: 10.01.00.05
    dr-download.ti.com/.../ti-processor-sdk-linux-adas-j784s4-evm-10_01_00_05-Linux-x86-Install.bin

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

    尊敬的 Wang:

    您能为 SDK 9.X 提供任何相关补丁吗?

    没有特定的补丁。 日志是一条类似于错误消息的警告消息。 所以,没有问题开始。

    [引述 userid=“627397" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1513440/tda4vm-tda4--vm-pcie-dma-issue/5820060 #5820060“]

    “lspci -v“命令不会在 EP 器件上生成任何输出、但 dmesg 中有部分调试日志。

    [/报价]

    您发送的日志很好。 我看到“pcie-tda4ep"是“是正在使用的驱动程序、我假设它是自定义 PCI-EPF-test 的名称。 对 PCI-EPF-TEST 所做的修改、我不确定已经做了什么、但 如果您认为我们应该审查这些修改、请告诉我。

    [引用 userid=“627397" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1513440/tda4vm-tda4--vm-pcie-dma-issue/5820706 #5820706“]

    TDA4 EP 侧的输出:

    [/报价]

    我看到 DMA:对测试不进行、但要澄清的是、当 DMA 不正确使用时、您没有看到任何问题?

    是否 也可以共享 DMA 正在使用中的日志?

    此致、

    Takuma

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

    嗨、Takuma。  感谢您的迅速回复。

    pci_epf_test.0: WRITE => Size: 1 B, DMA: YES, Time: 0.000269575 s, 		Rate: 3 KB/s
    pci_epf_test.0: WRITE => Size: 1024 B, DMA: YES, Time: 0.000242295 s,	Rate: 4226 KB/s
    pci_epf_test.0: WRITE => Size: 1025 B, DMA: YES, Time: 0.000238220 s, 	Rate: 4302 KB/s
    pci_epf_test.0: WRITE => Size: 1024000 B, DMA: YES, Time: 0.002597025 s, Rate: 394297 KB/s
    pci_epf_test.0: WRITE => Size: 1024001 B, DMA: YES, Time: 0.002601000 s, Rate: 393695 KB/s
    
    pci_epf_test.0: READ => Size: 1 B, DMA: YES, Time: 0.000243155 s, 		Rate: 4 KB/s
    pci_epf_test.0: READ => Size: 1024 B, DMA: YES, Time: 0.000243590 s, 	Rate: 4203 KB/s
    pci_epf_test.0: READ => Size: 1025 B, DMA: YES, Time: 0.000245355 s, 	Rate: 4177 KB/s
    pci_epf_test.0: READ => Size: 1024000 B, DMA: YES, Time: 0.012860460 s, Rate: 79623 KB/s
    pci_epf_test.0: READ => Size: 1024001 B, DMA: YES, Time: 0.012867580 s, Rate: 79579 KB/s
    
    pci_epf_test.0: COPY => Size: 1 B, DMA: YES, Time: 0.000244310 s, 		Rate: 4 KB/s
    pci_epf_test.0: COPY => Size: 1024 B, DMA: YES, Time: 0.000244210 s, 	Rate: 4193 KB/s
    pci_epf_test.0: COPY => Size: 1025 B, DMA: YES, Time: 0.000246355 s, 	Rate: 4160 KB/s
    pci_epf_test.0: COPY => Size: 1024000 B, DMA: YES, Time: 0.012864615 s, Rate: 79598 KB/s
    pci_epf_test.0: COPY => Size: 1024001 B, DMA: YES, Time: 0.012860930 s, Rate: 79621 KB/s

    日志表明 DMA 已在使用中、最大速度接近 80 MB/秒

    与您在此处显示的相关数据相比、存在很大差距:TDA4VH-Q1:PCIe SEC/RC 传输速度性能慢 — 处理器论坛-处理器 — TI EP 支持论坛

    您有任何优化建议吗?

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

    尊敬的 Wang:

    PCI_EPF_TEST 在测试性能方面受到限制。 主要是用于演示功能的应用。

    我们使用另一个称为 FiO 的应用程序、它内置了更多功能来测试接口。 在以下主题中可以找到 FiO 的影响及其如何准备数据以进行传输: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1478254/tda4vh-q1-slow-writing-speed-in-nvme-ssd/5683346#5683346。 您可以使用类似的数据准备方式(如 FiO)来优化您的应用程序。

    此致、

    Takuma

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

     您好、 Takuma、感谢您的回复。

    1. 您是否使用 DMA 与进行了测试 pci-epf-test? 您获得的结果与我们的结果之间是否存在显著差异?
    2. 我们希望在 TDA4 上配置 vntb (9.9. PCI 非透明桥 (NTB) 端点功能(EPF) 用户指南—Linux 内核文档)。 是否需要先配置 NTB (9.7. PCI 非透明桥 (NTB) 端点功能(EPF) 用户指南—Linux 内核文档)? 也就是说、要在 EP 端实现 vntb、我们是否需要先配置 NTB 函数?

    此致、

    Wang

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

    尊敬的 Wang:

    您是否使用 DMA 进行了测试 pci-epf-test? 您获得的结果与我们的结果之间是否存在显著差异?

    对两个问题都是。 结果位于您找到的 E2E 主题中。 不过、TDA4VM 和 TDA4VH 之间的串行器/解串器 PHY 不同。 因此会存在一些差异、例如有多少个串行器/解串器通道可用(2 个通道与 4 个通道)。

    我们希望在 TDA4 上配置 vntb (9.9. PCI 非透明桥 (NTB) 端点功能(EPF) 用户指南—Linux 内核文档)。 是否需要先配置 NTB (9.7. PCI 非透明桥 (NTB) 端点功能(EPF) 用户指南—Linux 内核文档)? 也就是说、要在 EP 端实现 vntb、我们是否需要先配置 NTB 函数?

    必须先启动 EP。 我认为下面提供了此文档更适合参考、因为它更专门针对 Foundational_Components 和 TI EVM 板: https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-jacinto7/10_01_00_04/exports/docs/linux/EVM/Kernel/EVM-PCIe/PC Kernel_Drivers Ie_Backplane .html

    此致、

    Takuma

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

    嗨、 Takuma。

    有哪些限制、可以使用哪些方法来消除这些限制? 上述线程中提到的 FIO 工具适合 磁盘设备,不是很适合我们的场景。 如果我要在这种情况下测量最大速度、我可以做什么?

    此致、

    Wang

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

    嗨、Takuma。

    我们还使用了  与上述线程相同的电路板、此测试是在 AM69-SK 作为 RC、J784S4-EVM 作为 EP 的情况下执行的。 为什么数据与您提供的数据有很大差异?

    pci_epf_test pci_epf_test.0: WRITE => Size: 1024000 B, DMA: YES, Time: 0.002635460 s, Rate: 388546 KB/s
    pci_epf_test pci_epf_test.0: WRITE => Size: 1024000 B, DMA: YES, Time: 0.002636335 s, Rate: 388418 KB/s
    
    pci_epf_test pci_epf_test.0: READ => Size: 1024000 B, DMA: YES, Time: 0.014152295 s, Rate: 72355 KB/s
    pci_epf_test pci_epf_test.0: READ => Size: 1024000 B, DMA: YES, Time: 0.014225955 s, Rate: 71981 KB/s
    
    pci_epf_test pci_epf_test.0: COPY => Size: 1024000 B, DMA: YES, Time: 0.014304825 s, Rate: 71584 KB/s
    pci_epf_test pci_epf_test.0: COPY => Size: 1024000 B, DMA: YES, Time: 0.014331155 s, Rate: 71452 KB/s

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

    尊敬的 Wang:

    为什么数据与您提供的数据有很大差异?

    TDA4VM 和不同串行器/解串器 PHY 上可用的 PCIe 通道更少。

    如果我要测量这种情况下的最大速度、我该怎么办?

    创建适合您的设备的类似 FiO 的工具。 从本质上讲、数据在 FiO 中的准备和写入方式非常重要。 即事务如何排队和并行进行。

     上述更简单的替代方法是尝试使用 PCIe PCIe/RC 示例启动多个 EP 事务、即一次在所有 6 个物理功能上开始通信。 这将模拟与您的器件的并行通信、性能应随并行事务的数量线性扩展。  

    此致、

    Takuma

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

    感谢您的有效建议,我们 已开始与所有 6 个物理功能同时进行沟通,测试结果比以前更好。

    1. 我们计划 在 AM69 (RC) TDA4 VH (EP) 上配置 VNTB、如下所示。 您是否曾验证过此配置? 如果是、使用 DMA 时 VNTB 的最大可实现网络速度是多少?
    2. 在 RC 方面、“PCI NTB EPF 驱动程序“是否实施为 ntb_hw_epf.ko
      在 EP 方面、“PCI EP NTB FN 驱动程序“ pci-epf-vntb.ko?和哪个内核模块对应于“PCI 虚拟 NTB 驱动程序“?

    1. 在 RC 和 EP 上,我们可以看到由 NTB_netdev.ko 生成的网络接口。 但是、我们无法在设置 IP 地址后对其执行 ping 操作。

    [   69.693785] Software Queue-Pair Transport over NTB, version 4
    [   69.715743] pci-vntb 0000:10:00.0: NTB Transport QP 0 created
    [   69.727127] pci-vntb 0000:10:00.0: eth2 created
    

    此致、

    Wang

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

    尊敬的 Wang:

    很高兴听到性能的提高。  

    至于 NTB 示例、我自己没有运行此示例。 与 EP /RC 示例相比、开发人员使用此示例的情况非常少见。 但我知道这方面的文档: https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-j784s4/11_00_00_08/exports/docs/linux/Foundational_Components /内核/ Kernel_Drivers /PCIe/PC Ie_Backplane 

    需要 NTB 并使用虚拟 PCI 总线来使用 NTB 示例而不是第二个物理 PCIe 器件的用例是什么?

    此致、

    Takuma

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

    由于这里只有两个电路板、因此一个电路板 (TDA4) 会收集大量视频数据、这些数据需要通过 PCIe 发送到 AM69。

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

    尊敬的 Wang:

    所描述的用例听起来更像是标准 EP 用例/RC 用例。 NTB 示例主要用于 2 个 RC、这些 RC 通过第三个 PCIe 器件相互通信、该器件能够充当 2 个 EP 器件、总共有 3 个器件((2 个 RC、1 个 EP,带两个端口)。

    可以参考 FIO/RC 示例了解如何设置器件、然后可以参考 EP 等应用程序、了解应用程序代码如何通过排队和并行事务来优化事务。

    此致、

    Takuma

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗨、Takuma。
    是的、这就是我们喜欢使用 VNTB 而非 NTB 的原因。 VNTB 更适合此场景。 我们计划将其封装为网络接口的形式、以实现上层应用程序的无缝移植。
    此致、
    Wang
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Wang:

    好的、明白。 因此、使用 NTB(特别是 vNTB)的主要目的是利用在 NTB/RC EP 示例基础上构建的网络接口。  

    我可以用 1 周时间来研究这个问题吗?

    此致、

    Takuma

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

    嗨、 Takuma。

    当然、 感谢您的努力、谢谢。  

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

    尊敬的 Wang:

    感谢您的耐心。

    此致、

    Takuma

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

    你好, Takuma , 我可以问一个星期前关于这个问题的研究的进展情况吗?

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

    关于一些故障排除建议:

    1. 在 EP 端、为 EP 完成所有配置后、运行“ zcat /proc/config.gz | grep -i NTB “。 示例日志如下:
      root@j784s4-evm:/sys/kernel/config/pci_ep# zcat /proc/config.gz | grep -i ntb
      CONFIG_PCI_EPF_NTB=y
      CONFIG_PCI_EPF_VNTB=y
      CONFIG_NTB=y
      # CONFIG_NTB_MSI is not set
      # CONFIG_NTB_IDT is not set
      CONFIG_NTB_EPF=m
      # CONFIG_NTB_SWITCHTEC is not set
      # CONFIG_NTB_PINGPONG is not set
      # CONFIG_NTB_TOOL is not set
      # CONFIG_NTB_PERF is not set
      # CONFIG_NTB_TRANSPORT is not set
      root@j784s4-evm:/sys/kernel/config/pci_ep# zcat /proc/config.gz | grep -i vntb
      CONFIG_PCI_EPF_VNTB=y
      root@j784s4-evm:/sys/kernel/config/pci_ep# zcat /proc/config.gz | grep -i ntb
      CONFIG_PCI_EPF_NTB=y
      CONFIG_PCI_EPF_VNTB=y
      CONFIG_NTB=y
      # CONFIG_NTB_MSI is not set
      # CONFIG_NTB_IDT is not set
      CONFIG_NTB_EPF=m
      # CONFIG_NTB_SWITCHTEC is not set
      # CONFIG_NTB_PINGPONG is not set
      # CONFIG_NTB_TOOL is not set
      # CONFIG_NTB_PERF is not set
      # CONFIG_NTB_TRANSPORT is not set
      root@j784s4-evm:/sys/kernel/config/pci_ep#


    2. 在 RC 端、完成 EP 和 RC 的所有配置后、运行“ lspci -k “。 下面是示例日志(请注意“使用的内核驱动程序“)
      root@j7200-evm:~# lspci -k
      00:00.0 PCI bridge: Texas Instruments Device b00f
      Kernel driver in use: pcieport
      Kernel modules: pci_endpoint_test
      01:00.0 RAM memory: Texas Instruments Device b00d
      Kernel driver in use: ntb_hw_epf
      Kernel modules: pci_endpoint_test
      root@j7200-evm:~#


    如果上面在您的系统上看起来不同/相同、那么我可以就接下来要检查的内容提供建议。

    此致、

    Takuma

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

    您好、Takuma、 感谢您的患者回复。

    RC 和 EP 之间是否成功相互 ping 通? 在上述内容中、我只看到 RC ping 其自己的 IP、没有 RC 和 EP 之间相互 ping 的任何记录。

    如果它们可以成功地相互 ping 通、请共享由 ethtool 在 RC 和 EP 端检查的 NTB/vntb 网络接口的状态。

    此致、

    Wang

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

    尊敬的 Wang:

    我了解了问题。 让我尝试进一步研究一下。 我会再更新一天。

    此致、

    Takuma

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

    尊敬的 Wang:

    这需要另一天。 对延迟深表歉意。

    此致、

    Takuma

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

    尊敬的 Takuma:

    感谢您的答复。  完全没问题! 请随时按照您自己的节奏解决问题。

    此致、

    Wang

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

    尊敬的 Wang:

    到目前为止、该示例似乎不适用于 Jacinto 平台。 我看到的行为与创建网络时的行为相同、但 ping 失败。 此示例来自上游、而不是 TI、因此可能缺少一个用于启用虚拟 NTB 的部分。  

    出于您的目的、建议参考底层的 EP /RC 示例并在此基础上进行构建。 否则、如果虚拟 NTB 是您希望采用的路径、则建议联系 Linux 社区以获取有关此 vNTB 示例的更多信息。

    此致、

    Takuma