OSDev Series Chapter 21

News discussions

Moderator: Moderators

OSDev Series Chapter 21

Postby Mike » Sat Oct 10, 2009 8:28 pm

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.
Lead Programmer for BrokenThorn Entertainment, Co.
Website: http://www.brokenthorn.com
Email: webmaster@brokenthorn.com
User avatar
Mike
Site Admin
 
Posts: 463
Joined: Sat Oct 20, 2007 7:58 pm

Re: OSDev Series Chapter 21

Postby Insightsoft » Sun Oct 11, 2009 9:00 pm

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?
_____________
Think it, build it, bit by bit...
Insightsoft
 
Posts: 63
Joined: Wed Jul 22, 2009 6:44 am

Re: OSDev Series Chapter 21

Postby Mike » Mon Oct 12, 2009 6:46 am

Hello,

I am glad to hear that you like the site :D The series chapters all build off of the previous demos, yes.
Lead Programmer for BrokenThorn Entertainment, Co.
Website: http://www.brokenthorn.com
Email: webmaster@brokenthorn.com
User avatar
Mike
Site Admin
 
Posts: 463
Joined: Sat Oct 20, 2007 7:58 pm

Re: OSDev Series Chapter 21

Postby chibicitiberiu » Sat Aug 20, 2011 10:16 am

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).
chibicitiberiu
 
Posts: 22
Joined: Sat Jul 17, 2010 7:55 am


Return to News Discussion

Who is online

Users browsing this forum: No registered users and 2 guests

cron