One final set of questions on ATA
Posted: Mon Jan 13, 2020 9:23 pm
I have a couple more questions on ATA. I would've posted them in the topic about it returning 0xFF, but I had already hijacked that topic enough and thought it might go better in a new topic. My questions are:
1) The ATA spec mentions several protocols (DMA, DMA Queued, Execute Device Diagnostic, ...) that it doesn't cover. The ATA/ATAPI through DMA article on the wiki answers the DMA protocol question (very good article, by the way), but what are the others? Is it worth supporting any of them in my kernel and if so, what document(s) should I purchase/read to learn about them?
And finally, 2) All of the commands that take "count" as an "argument" to them indicate that 0000h is 256 sectors (for LBA28) and 65536 sectors (for LBA48), and that "count" indicates how many sectors to "<insert action here>". Is a "sector" in this instance an actual LBA, and if so, would I just read 256*count words on the data port?
Edit: to clarify, the protocols I'm specifically asking about are:
Edit 2: fixed typo and changed "FPDMA" to "DMA queued".
1) The ATA spec mentions several protocols (DMA, DMA Queued, Execute Device Diagnostic, ...) that it doesn't cover. The ATA/ATAPI through DMA article on the wiki answers the DMA protocol question (very good article, by the way), but what are the others? Is it worth supporting any of them in my kernel and if so, what document(s) should I purchase/read to learn about them?
And finally, 2) All of the commands that take "count" as an "argument" to them indicate that 0000h is 256 sectors (for LBA28) and 65536 sectors (for LBA48), and that "count" indicates how many sectors to "<insert action here>". Is a "sector" in this instance an actual LBA, and if so, would I just read 256*count words on the data port?
Edit: to clarify, the protocols I'm specifically asking about are:
- Execute device diagnostic
- Non-data
- DMA queued
Edit 2: fixed typo and changed "FPDMA" to "DMA queued".