小编soh*_*soh的帖子

在PCIE linux内核驱动程序中流式传输DMA

我正在研究用于Linux内核的FPGA驱动程序.代码似乎在x86上工作正常,但在x86_64上我遇到了一些问题.我实现了流式DMA.所以它就像

get_user_pages(...);
for (...) {
    sg_set_page();
}
pci_map_sg();
Run Code Online (Sandbox Code Playgroud)

pci_map_sg返回的地址就像是0xbd285800,它们没有对齐PAGE_SIZE,所以我无法发送完整的第一页,因为PCIE规范说

"请求不得指定地址/长度组合,这会导致内存空间访问跨越4 KB边界."

有没有办法获得对齐的地址,还是我错过了一些重要的东西?

DMA的源代码.

linux drivers dma pci

6
推荐指数
1
解决办法
3283
查看次数

标签 统计

dma ×1

drivers ×1

linux ×1

pci ×1