Messages in this thread | | | Date | Tue, 03 May 2011 09:05:30 -0700 | From | Dan Williams <> | Subject | Re: Can I/OAT DMA engineer access PCI MMIO space |
| |
On 5/2/2011 7:21 PM, 康剑斌 wrote: > >>> I try to use ioatdam to copy data from system memory to pci MMIO space: >>> If dst points to a memory space, the operation would pass. >>> But if dst points to a pci MMIO space, it failed with kernel oops. >>> It seems the code: >>> BUG_ON(is_ioat_bug(chanerr)); >>> in drivers/dma/ioat/dma_v3.c, line 365 cause the oops. >>> Is there anyway to access pci MMIO space using ioat? >>> The datasheet says that ioat supports MMIO access. >> Did you map the IO memory in kernel using ioremap and friends first? >> > yes, I had used 'ioremap_nocache' to map the IO memory and I can use > memcpy to copy data to this region. The async_tx should have been > correctly configured as > I can use aync_memcpy to copy data between different system memory address. >
ioremap maps mmio space for the cpu not bus mastering devices. You need to program the physical address into the descriptor.
-- Dan -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |