Hello, I'm new forum member! My english isn't very good, so please, forgive my mistakes. ;)
My question isn't directly related to asm coding, but I think that there are some members with hardware programming experience.
I have to write IDE controller driver, it must handle PIO and DMA modes. My only problem is that I can't find documentation. There is some specification available, but I have to know which ports I must use, etc. Also, I have generally no experience in hardware programming and I want to know how to use DMA. Maybe somebody will show me direction/some links? Everything will be written under control of new actually-in-development OS, so I must do everything manually.
Greetings, Grzegorz.
http://suif.stanford.edu/~csapuntz/ide.html
looks promising....[bottom of web page]
Good luck (u're gonna need it !)
Draakie
Transcendencja,
Check out http://www.osdever.net/documents.php?cat=0&sort=1 and http://www.osdev.org/osfaq2/ These two sites should be in your bookmarks if you are getting into OS and/or driver development.
Regards,
Bryant Keller
PS: If you check osdever.net's links section you would find http://www.ata-atapi.com/hiw.htm which is what your looking for I think. But in general both of those sites are good to have bookmarked. If you need more details then check the other sites listed in osdever's links section, although this one seems to cover most of your basis.
Transcendencja,
You can get most of the I/O port assignments, and a lot of related information from PORTS.LST in the download version of Ralf Brown's Interrupt list, available here:
http://www-2.cs.cmu.edu/~ralf/files.html
If I recall correctly, the I/O ports can be deduced from information in the standards, if you know the standard names of the interface signals, as used in the standards, but it's been too long for me to recall any details.
I posted some source code and two applications that may be of use to you here:
http://www.masm32.com/board/index.php?topic=6874.msg51027#msg51027
In case you don't already know, the standards, which in my opinion will be absolutely essential for what you are trying to do, are here:
http://www.t13.org
And you can get the source code for a more or less complete PM operating system, with some new patches and updates, here:
http://www.sensorypublishing.com/mmurtl.html
Thanks a lot!
I know almost all of these sites, but I simply (don't know why) overlooked informations that I need. Now I see what I have to read and code. ;)
Greetings!