News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

Hard disk DMA (hardware programming)

Started by xenon, June 05, 2005, 06:04:10 AM

Previous topic - Next topic

xenon

Can someone point to me a direction to start on "Ultra DMA"?
I tried to google... I think it is a kind of "PCI DMA". But I cannot find the hardware programming information that i need.

What is the difference between Multi-word DMA and Ultra DMA?
I have the experience of programming PIO mode. And Sound Blaster DMA (but i think this DMA is different from Ultra DMA).

MichaelW

You can get some information on the drive/controller-related aspects of UDMA from the ATA/ATAPI standards. The draft versions, the last of which is usually very close to the finished standard, are available for download here (the finished standards are also available, but for a substantial fee):

http://www.t13.org

For information on the DMA aspects you could try the Intel documentation for the relevant chipset component.
eschew obfuscation

xenon

I already have the draft ATA standards from www.t13.org

Now, is programming the DMA very chipset dependent? or most chipset follow a "standard"?
Programming the DMA is what I need to know now.

MichaelW

I think it is fairly well standardized, with the other chipset makers following Intel's lead.
eschew obfuscation

xenon

Can anyone tell me what keyword to search for the intel documentation?

MichaelW

For the recent chipsets the component that contains the IDE controller and the DMA controller that the IDE controller uses is the I/O Controller Hub (ICHx, where x is a version number).

You can find chipsets listed under products on the home page, and the documentation on the "technical documents" tab on the page for the particular chipset.

IntelĀ® 82801EB (ICH5), 82801ER (ICH5R), 82801DB (ICH4), 82801CA (ICH3), 82801BA (ICH2), 82801AA (ICH), and 82801AB (ICH0) IDE Controller Programmer's Reference Manual:

http://www.intel.com/design/chipsets/manuals/298600.htm
eschew obfuscation