DMA / UDMA

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
User avatar
mark3094
Member
Member
Posts: 164
Joined: Mon Feb 14, 2011 10:32 pm
Location: Australia
Contact:

DMA / UDMA

Post by mark3094 »

I've been reading a little about DMA, as I'm planning to implement an FDC driver, and eventually a HDC driver.
I have read that UDMA may be better, so I was wondering if it's worth learning and using ISA DMA at all, or whether it's best to go for UDMA from the start.

To add to my confusion, I couldn't find any (dedicated) articles on UDMA in the Wiki...

(hope this isn't a stupid question)
Thanks
gerryg400
Member
Member
Posts: 1801
Joined: Thu Mar 25, 2010 11:26 pm
Location: Melbourne, Australia

Re: DMA / UDMA

Post by gerryg400 »

A HDD device driver is a lot simpler to get going than a FDD driver. Because of that, unless you have a special need for a floppy drive, I would recommend you start with a simple PIO mode HDD driver.

With a working PIO mode driver and a mature OS adding additional features like bus-mastering DMA and UDMA is a relative breeze.
If a trainstation is where trains stop, what is a workstation ?
User avatar
mark3094
Member
Member
Posts: 164
Joined: Mon Feb 14, 2011 10:32 pm
Location: Australia
Contact:

Re: DMA / UDMA

Post by mark3094 »

Sounds perfect!

I have no real need for a floppy controller, but I was under the impression that it was easier.
So far I have only been using a floppy, but HDD sounds like a better option.

So, the best idea would be to learn more about PIO, and implement the HDC driver using that, then convert to DMA / UDMA later?
Sounds good. Saved wasting time on old tech!
gerryg400
Member
Member
Posts: 1801
Joined: Thu Mar 25, 2010 11:26 pm
Location: Melbourne, Australia

Re: DMA / UDMA

Post by gerryg400 »

Check out the wiki, especially the ATA PIO article. The IDE article has good information too but I would recommend against using the code examples on that page. It's seriously overcomplicated.
If a trainstation is where trains stop, what is a workstation ?
Post Reply