Scatter/Gather Capability

Tech Tip: Click here to run a free scan for Windows Errors and optimize PC performance



Hello

"Each mapping register corresponds to one page of DMA logical space, and a
group of consecutively numbered registers represents a contiguous range of
logical addresses. To perform a DMA transfer, a driver first allocates enough
contiguous mapping registers to account for all the pages in the caller's
buffer. It then loads consecutive mapping registers with the physical
addresses of the caller's buffer pages. This has the effect of mapping the
physically noncontiguous user buffer into a contiguous area of logical space.
Finally, the driver loads the DMA controller with the starting address of the
buffer in logical space and starts the device. While the operation is in
progress, the DMA controller generates sequential, logical addresses that the
scatter/gather hardware maps to appropriate physical page references."
The Windows 2000 Device Driver Book, A Guide for Programmers

1-) IS that means if device hasn't got a Scatter/Gather Capability, map
registers aren't allocated? Map Registers can be used only Scatter/Gather
Capability devices?

2-) Also the book shows DMA controller's address register points buffer in
logical space. We know that in virtual memory management, page tables reside
in system memory and a translation algorthim is applied to find a physical
address.

Is there also a translation algortihm to find physical address from logical
address?

Thanks...


.



Relevant Pages

  • Re: WDF Dma Transaction Issue
    ... One set of registers are mapped to PCI space which includes DMA ADDR ... DMA control registers[these registers are used to initiate DMA ...
    (microsoft.public.development.device.drivers)
  • Re: WDF Dma Transaction Issue
    ... Did you call MmProbeAndLockPagesor BuildMdlFromScatterGatherListfor the memory you allocated? ... If you haven't built the PFN array for the MDL then you won’t be able to do DMA to it. ... One set of registers are mapped to PCI space which includes DMA ADDR ...
    (microsoft.public.development.device.drivers)
  • Re: WDF Dma Transaction Issue
    ... One set of registers are mapped to PCI space which includes DMA ADDR ... Coming back to original questions in my first post, ...
    (microsoft.public.development.device.drivers)
  • Re: WDF Dma Transaction Issue
    ... I think the issue might be the memory to get ... Use h/w analyzers to see if dma transaction actually takes place ... One set of registers are mapped to PCI space which includes DMA ADDR ...
    (microsoft.public.development.device.drivers)
  • Re: WDF Dma Transaction Issue
    ... We have some registers mapped from PCI space separately which includes DMA ... "WdfDmaTransactionCreate SUCCESS\n"); ...
    (microsoft.public.development.device.drivers)