SATA: Difference between revisions

From OSDev.wiki
Jump to navigation Jump to search
[unchecked revision][unchecked revision]
Content added Content deleted
No edit summary
No edit summary
Line 5: Line 5:
==Introduction==
==Introduction==


SATA, short for Serial ATA, is a new method of connecting disk drives, optical drives, etc. to the motherboard. SATA provides higher transfer rates than PATA and is backward compatible. If an OS does not recognize SATA, it can use drives like ordinary PATA drives with no issues.
SATA, short for Serial ATA, is a bus interface for communicating with mass storage devices (such asdisk drives, optical drives, etc). SATA provides higher transfer rates than PATA and is backward compatible. If an OS does not recognize SATA, it can use drives like ordinary PATA drives with no issues. The SATA specification is split into three distinct protocol 'layers'.

* Physical Layer - Information relating to the physical connectors, etc. Not especially relevant here.
* Link Layer
* Transport Layer


==Detection and Initialization==
==Detection and Initialization==
Line 19: Line 23:


===External Links===
===External Links===
*[http://www.sata-io.org/ The Serial ATA International Organization]
* http://www.ata-atapi.com -- Public Domain C driver sourcecode, including SATA, Busmatering DMA, ATAPI -- not perfect, but good.
* http://www.ata-atapi.com -- Public Domain C driver sourcecode, including SATA, Busmatering DMA, ATAPI -- not perfect, but good.

*[http://www.serialata.org The Serial ATA International Organization]


{{stub}}
{{stub}}

Revision as of 22:52, 20 October 2012

Apparently, there are three supposedly definitive, conflicting standards for SATA. It may be best to wait for the industry to shake out a little more completely, before trying to write SATA drivers.

If you want to try anyway, then get the ATA7, and ATA8 technical docs from www.t13.org. Then maybe try paying $25 to get the technical specs from www.sata-io.org. Hopefully, the discrepancies between the standards aren't too bad.

Introduction

SATA, short for Serial ATA, is a bus interface for communicating with mass storage devices (such asdisk drives, optical drives, etc). SATA provides higher transfer rates than PATA and is backward compatible. If an OS does not recognize SATA, it can use drives like ordinary PATA drives with no issues. The SATA specification is split into three distinct protocol 'layers'.

  • Physical Layer - Information relating to the physical connectors, etc. Not especially relevant here.
  • Link Layer
  • Transport Layer

Detection and Initialization

Send a standard IDENTIFY command to the drive (0xEC). The drive should respond with an error in the ERR bit of the Status Register, and a pair of "signature bytes". On the Primary ATA bus, you get the signature bytes by reading IO ports 0x1F4 and 0x1F5, and you should see values of 0x3C and 0xC3.

x86 Examples

Comments

See Also

AHCI

External Links


This page is a stub.
You can help the wiki by accurately adding more contents to it.