Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Before Posting...
Please check out the Community Guidelines in the Announcements and Administration Category.

Re: DMA question

David_J._CraigDavid_J._Craig Member Posts: 1,885
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. ;)


> "Marvin(Fan) Zhang" <xxxxx@gmail.com> 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

Comments

  • OSR_Community_UserOSR_Community_User Member Posts: 110,217
    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. ;)
    >
    >
    > "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
    >
  • OSR_Community_UserOSR_Community_User Member Posts: 110,217
    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. ;)
    >
    >
    > "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
    >
  • David_J._CraigDavid_J._Craig Member Posts: 1,885
    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. ;)



    "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
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Upcoming OSR Seminars
Developing Minifilters 29 July 2019 OSR Seminar Space
Writing WDF Drivers 23 Sept 2019 OSR Seminar Space
Kernel Debugging 21 Oct 2019 OSR Seminar Space
Internals & Software Drivers 18 Nov 2019 Dulles, VA