Originally posted by imirkin
View Post
Do you know who initiates the DMA transfer?
The drivers might ask the host to push the data to the card, or the driver might issue GPU command that would initiate pull transfer.
I guess it is the latter, otherwise it would be trivial to dump the dma buffer before initiating transfer, since it should be calling internal kernel functions to do that (and the specific host driver).
I took a quick look at IOMMU, it seems that it needs buffers to be dma_map()-ed before use and dma_unmap()-ed they are no longer needed. The buffer could be dumped at map and mmiotrace could track the access to the buffer memory.
I'm quite surprised that you've managed to get so far by just mmio without dma intercept.
For example Radeons fetch Command Stream with DMA.
Originally posted by imirkin
View Post
And I do agree with you. Get AMD.
Leave a comment: