Results 1 to 1 of 1
Dear all,
I implement a PCIe device driver that needs a huge amount of contiguous (dma-capable) memory.
1. I use alloc_bootmem_low_pages to allocate that memory at boot time; that memory ...
- 03-02-2009 #1Just Joined!
- Join Date
- Jan 2009
- Posts
- 2
alloc_bootmem_low_pages & pci_map_single ?
Dear all,
I implement a PCIe device driver that needs a huge amount of contiguous (dma-capable) memory.
1. I use alloc_bootmem_low_pages to allocate that memory at boot time; that memory region is mapped to user space thanks to mmap; so far, so good, it works fine.
2. The problem arises when I start to play with DMA ... I just call pci_map_single on the buffer returned by alloc_bootmem_low_pages, and give that address to my device; my device writes at that address. When completed, I receive an IT and calls pci_unmap_single. I then access that memory in user-space.
Problem is: Most of the data is correctly written, but there remains some small areas that are *not* written, leaving bunches of memory garbage in my buffer ... It does not always happen at the same memory address ...
Any clues is warmly welcomed
Best regards,
Marc


Reply With Quote
