Linked by Eugenia Loli on Wed 21st Nov 2001 17:39 UTC
Permalink for comment
To read all comments associated with this story, please click here.
To read all comments associated with this story, please click here.
News
Linked by Thom Holwerda on 05/24/13 14:44 UTC
Linked by Thom Holwerda on 05/23/13 23:22 UTC
Linked by Thom Holwerda on 05/23/13 22:04 UTC
Linked by Thom Holwerda on 05/23/13 22:01 UTC
Linked by Thom Holwerda on 05/23/13 17:52 UTC
Linked by Thom Holwerda on 05/22/13 22:23 UTC
Linked by Thom Holwerda on 05/22/13 13:38 UTC
Linked by Thom Holwerda on 05/22/13 13:30 UTC, submitted by JRepin
Linked by Thom Holwerda on 05/21/13 22:06 UTC
Linked by Thom Holwerda on 05/21/13 21:45 UTC
More News »
Sponsored Links



I'm surprised that Kurt hasn't done at least an IDE driver.
Kurt,
A PIO driver is very easy to write. The core of my IDE driver in petros is very simple - the IDE controller is programmed in the context of the thread that's executing and then all the ISR does is set a semaphore to let the thread know to continue at strategic points. The whole lot is wrapped in a kernel mutex to stop the pio calls getting out of sequence. Granted it doesn't do fancy stuff like queuing requests or sorting by track number, but these type of things can be done by a higher layer in the kernel. If you're simply doing bios calls it really wouldn't take much more work to get native IDE into the kernel. The only other hassle you might have is dealing with sector translation and othe bios extension stuff. We have a headache with partition table issues when dos extenders or sector translation is active.
An ATAPI driver is a minor abstraction of the IDE driver - not much more work there except to write the CDROM file system drivers - but I presume you already have that bit or are already working on it.
For FDC, it's a bit trickier - you have to manage DMA (watch out for 16 meg limitations on legacy hardware) and I have found that programming the controller is much more finicky (need to refer to data sheets when writing). However, I did manage to get it working quite well without blocking the entire system. You can read the floppy to your heart's content without locking up other parts of the system.
Just a few handy hints
P
P.S. with the collection of talent that shows up at OSnews, it would be cool for us all to pool our knowledge regarding devices, controllers, OS techniques etc and put a lot of the stuff together in one place. I spend days digging up stuff like datasheets and specs like IDE etc.