Page 1 of 1

OSDev Series Chapter 21

Posted: Sat Oct 10, 2009 8:28 pm
by Mike
Hello everyone,

The pre-release of chapter 21 of our OS development series has been released. It can be found here at http://www.brokenthorn.com/Resources/OSDev21.html Sorry, no demo yet. Demo is finished, however we plan on updating the chapter and demo a little more. It should be released tomorrow.

It covers:

*DMA concepts
*DMA hardware
*DMA Ports, Registers, Commands
*DMA programming topics

Please let us know if there are any comments or suggestions.

Re: OSDev Series Chapter 21

Posted: Sun Oct 11, 2009 9:00 pm
by Insightsoft
Thanks. As you know, I'm checking your website, precisely, every single day!!! (and this is, absolutely, a huge achievement)

One question: Your example codes are incremental projects?

Re: OSDev Series Chapter 21

Posted: Mon Oct 12, 2009 6:46 am
by Mike
Hello,

I am glad to hear that you like the site :D The series chapters all build off of the previous demos, yes.

Re: OSDev Series Chapter 21

Posted: Sat Aug 20, 2011 10:16 am
by chibicitiberiu
I noticed some errors in this chapter:

1. According to http://wiki.osdev.org/DMA, the mask channel function is bugged.
Single Channel Mask Registers 0x0A and 0xD4 (Write):
Bit2: ON/OFF
Bit0-1: Channel
In the tutorial, you were in fact using the bit mask for the MultiChannel Mask Register (0x0F). The unmask function is however correct.

2. The dma_unmask_all function is bugged... address 0x0E corresponds to DMA0, not DMA1.

3. There might be a small performance issue in the dma_set_address and dma_set_count functions, because of writing to the same port consecutively. You should outport something to address 0x80 (usually used as an IO delay port).