各位 NXP 工程师和社区朋友,
我正在使用两块8MP开发板进行 PCIe Endpoint 测试(一块做 RC,一块做 EP)。链路可以正常 Link Up,但 DMA 传输失败。
环境信息:
- 开发板:8mp
- BSP 版本:linux 6.1.36
- PCIe 配置:RC <-> EP 交叉线缆连接
问题现象:
- lspci 能正常看到 EP 设备(1131:0000)
- 中断测试正常
- 但执行 pcitest -d -w -s 4096000 等 DMA 测试时失败
- EP 端出现以下错误:
- Failed to get private DMA rx channel...
- imx-sdma Timeout waiting for CH0 ready
- Failed to prepare DMA memcpy
求助问题:
- 如何正确启用 i.MX8MP PCIe 的 DMA 通道?
- 使用 pci_epf_test 做 DMA 测试需要哪些关键配置或额外 patch?
- AN13164 中提到的较高 DMA 带宽如何稳定复现?
非常感谢大家的帮助!
Dear NXP Engineers and Community,
I am using two i.MX 8M Plus development boards to test PCIe Endpoint functionality (one as RC, one as EP). The PCIe link comes up successfully, but DMA transfers are failing.
Environment Information:
- Board: i.MX 8M Plus
- BSP Version: Linux 6.1.36
- PCIe Configuration: RC ↔ EP connected via crossover cable
Problem Description:
- lspci can detect the EP device correctly (1131:0000)
- Interrupt test (pcitest -i 1) works fine
- DMA Write/Read tests fail when using larger sizes (e.g. pcitest -d -w -s 4096000)
- The following errors appear on the EP side:
Failed to get private DMA rx channel. Falling back to generic one
imx-sdma 30bd0000.dma-controller: Timeout waiting for CH0 ready
pci_epf_test pci_epf_test.0: Failed to prepare DMA memcpy
pci_epf_test pci_epf_test.0: Data transfer failed
Questions:
- How to correctly enable and use the DMA channel (especially Embedded DMA / eDMA) for PCIe Endpoint on i.MX 8M Plus?
- What key configurations or additional patches are required to make pci_epf_test DMA testing work stably?
- How can we stably reproduce the high DMA bandwidth results mentioned in AN13164?
Any help or suggestions would be greatly appreciated!
Thank you very much!
Hi,
请参考消息中的附件。
Best Regards,
Zhiming