Re: DMA question

  1. This has been asked and answered several times in the past, but I am in
    the mood to answer today.
  2. Forget “System DMA”, it is a pathetic, slow, and greatly restricted form
    of DMA currently only used by the floppy controller and programmers who are
    not too bright. This DMA is limited to only a few MB of addressability.
  3. Bus-Master DMA is what all PCI devices support and this also include
    PCIe. Depending upon the chip or logic in your FPGA/ASIC can address the
    full 64-bit address space of current CPUs and chipsets. Yes, I know most,
    really all, do not really do a full 64-bits in either the CPU memory address
    lines or in the chipset, but the expandability is present with Bus-Master
    DMA. How you use your chip’s DMA capabilities must be documented by the
    ASIC/FPGA designers. If you bought the logic from another company, ask for
    documentation on how to setup DMA. Read the book from OSR from NT4 days
    that describes DMA and then use KMDF to use the newer OS interfaces for DMA.
    If you are working with a floppy controller, my condolences. :wink:

“Marvin(Fan) Zhang” wrote in message
> news:xxxxx@ntdev…
> Hi all,

> I have looked DMA topic on MSDN many times. However, I’m also confused
> about the difference
> between System DMA(subordinate DMA) and bus-master DMA.
> Could anyone help me to explain it?
> Thanks.

> Fan

Hi David,

Thanks for your nice explanation. I really appreciate your help!
Another question is how to judge a device sport ScatterGather or not?

Fan

2010/11/15 David Craig

> 1. This has been asked and answered several times in the past, but I am in
> the mood to answer today.
> 2. Forget ?System DMA?, it is a pathetic, slow, and greatly restricted
> form of DMA currently only used by the floppy controller and programmers who
> are not too bright. This DMA is limited to only a few MB of addressability.
> 3. Bus-Master DMA is what all PCI devices support and this also include
> PCIe. Depending upon the chip or logic in your FPGA/ASIC can address the
> full 64-bit address space of current CPUs and chipsets. Yes, I know most,
> really all, do not really do a full 64-bits in either the CPU memory address
> lines or in the chipset, but the expandability is present with Bus-Master
> DMA. How you use your chip?s DMA capabilities must be documented by the
> ASIC/FPGA designers. If you bought the logic from another company, ask for
> documentation on how to setup DMA. Read the book from OSR from NT4 days
> that describes DMA and then use KMDF to use the newer OS interfaces for DMA.
> If you are working with a floppy controller, my condolences. :wink:
>
>
> “Marvin(Fan) Zhang” wrote in message
>> news:xxxxx@ntdev…
>> Hi all,
>>
>
> I have looked DMA topic on MSDN many times. However, I’m also confused
>> about the difference
>> between System DMA(subordinate DMA) and bus-master DMA.
>> Could anyone help me to explain it?
>> Thanks.
>>
>
> Fan
>>
>
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>

Hi David,

Thanks for your nice explanation. I really appreciate your help!
Another question is how to judge a device support ScatterGather or not?

Fan

2010/11/15 David Craig

> 1. This has been asked and answered several times in the past, but I am in
> the mood to answer today.
> 2. Forget ?System DMA?, it is a pathetic, slow, and greatly restricted
> form of DMA currently only used by the floppy controller and programmers who
> are not too bright. This DMA is limited to only a few MB of addressability.
> 3. Bus-Master DMA is what all PCI devices support and this also include
> PCIe. Depending upon the chip or logic in your FPGA/ASIC can address the
> full 64-bit address space of current CPUs and chipsets. Yes, I know most,
> really all, do not really do a full 64-bits in either the CPU memory address
> lines or in the chipset, but the expandability is present with Bus-Master
> DMA. How you use your chip?s DMA capabilities must be documented by the
> ASIC/FPGA designers. If you bought the logic from another company, ask for
> documentation on how to setup DMA. Read the book from OSR from NT4 days
> that describes DMA and then use KMDF to use the newer OS interfaces for DMA.
> If you are working with a floppy controller, my condolences. :wink:
>
>
> “Marvin(Fan) Zhang” wrote in message
>> news:xxxxx@ntdev…
>> Hi all,
>>
>
> I have looked DMA topic on MSDN many times. However, I’m also confused
>> about the difference
>> between System DMA(subordinate DMA) and bus-master DMA.
>> Could anyone help me to explain it?
>> Thanks.
>>
>
> Fan
>>
>
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>

You don?t!!! That is information you need from the ASIC/FLGA designers. If you are trying to write code for some device where you are not part of the company, I know some people use the Linux drivers to understand how it works. Your questions are far too simplistic and you should provide the missing information. If you don?t have to access to the chip specifications, give up. I believe any device connected via PCI or PCIe must do Scatter Gather, but there are some chips do not have it because the amount of data being transferred is so small.

“Marvin(Fan) Zhang” wrote in message news:xxxxx@ntdev…
Hi David,

Thanks for your nice explanation. I really appreciate your help!
Another question is how to judge a device support ScatterGather or not?

Fan

2010/11/15 David Craig

1. This has been asked and answered several times in the past, but I am in the mood to answer today.
2. Forget ?System DMA?, it is a pathetic, slow, and greatly restricted form of DMA currently only used by the floppy controller and programmers who are not too bright. This DMA is limited to only a few MB of addressability.
3. Bus-Master DMA is what all PCI devices support and this also include PCIe. Depending upon the chip or logic in your FPGA/ASIC can address the full 64-bit address space of current CPUs and chipsets. Yes, I know most, really all, do not really do a full 64-bits in either the CPU memory address lines or in the chipset, but the expandability is present with Bus-Master DMA. How you use your chip?s DMA capabilities must be documented by the ASIC/FPGA designers. If you bought the logic from another company, ask for documentation on how to setup DMA. Read the book from OSR from NT4 days that describes DMA and then use KMDF to use the newer OS interfaces for DMA. If you are working with a floppy controller, my condolences. :wink:

“Marvin(Fan) Zhang” wrote in message news:xxxxx@ntdev…
Hi all,

I have looked DMA topic on MSDN many times. However, I’m also confused about the difference
between System DMA(subordinate DMA) and bus-master DMA.
Could anyone help me to explain it?
Thanks.

Fan


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit: http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer