Thread 中讨论的其他器件:PROCESSOR-SDK-J721E、TDA4VH、 AM69、 DRA821
工具/软件:
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 通信。
-
- 如果没有 DMA、直接
ioread32_rep
memcpy_fromio
在 RC 侧驱动程序中使用/可以正确地从 EP 中读取数据 酒吧空间 。 - 在调用时 DMA 在 RC 侧 PCIe 设备驱动程序中、从 EP 读取数据 酒吧空间 、出现错误:只有前 4 个字节正确、后续数据不正确。
- 和的帮助 RK FAE 、调试日志显示 TDA4 返回 “不支持的请求完成“ RK3588 出错。
- 他们建议检查 入站配置 EP 的条形空间。
- 使用类似的代码来实现的 RK3588 通过 PCIe (RC
EP ) 互连、控制 RC 侧 PCIe DMA、可成功实现与 EP 的数据通信。
- 如果没有 DMA、直接
问题 :在情况 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);
...
}