aboutsummaryrefslogtreecommitdiff
path: root/sys/doc/ata/ata-6
diff options
context:
space:
mode:
Diffstat (limited to 'sys/doc/ata/ata-6')
-rw-r--r--sys/doc/ata/ata-6337
1 files changed, 337 insertions, 0 deletions
diff --git a/sys/doc/ata/ata-6 b/sys/doc/ata/ata-6
new file mode 100644
index 000000000000..1bce4866f5b5
--- /dev/null
+++ b/sys/doc/ata/ata-6
@@ -0,0 +1,337 @@
+6. Physical Interface
+
+6.1 Signal Conventions
+
+Signal names are shown in all upper case letters. Signals can be asserted
+(active, true) in either a high (more positive voltage) or low (less positive
+voltage) state. A dash character (-) at the beginning or end of a signal name
+indicates it is asserted at the low level (active low). No dash or a plus
+character (+) at the beginning or end of a signal name indicates it is
+asserted high (active high). An asserted signal may be driven high or low by
+an active circuit, or it may be allowed to be pulled to the correct state by
+the bias circuitry.
+
+Control signals that are asserted for one function when high and asserted for
+another function when low are named with the asserted high function name
+followed by a slash character (/), and the asserted low function name followed
+with a dash (-) e.g. BITENA/BITCLR- enables a bit when high and clears a bit
+when low. All signals are TTL compatible unless otherwise noted. Negated means
+that the signal is driven by an active circuit to the state opposite to the
+asserted state (inactive, or false) or may be simply released (in which case
+the bias circuitry pulls it inactive, or false), at the option of the
+implementor.
+
+6.2 Signal Summary
+
+The physical interface consists of single ended TTL compatible receivers and
+drivers communicating through a 40-conductor flat ribbon nonshielded cable
+using an asynchronous interface protocol. The pin numbers and signal names
+are shown in Table 6-1. Reserved signals shall be left unconnected.
+
+ TABLE 6-1: INTERFACE SIGNALS
+ +----------------------------------+ +-----------+
+ | HOST I/O | | DRIVE I/O |
+ | CONNECTOR | | CONNECTOR |
+ | | | |
+ | HOST RESET 1 | ----- RESET- -------->| 1 |
+ | 2 | ----- Ground -------- | 2 |
+ | HOST DATA BUS BIT 7 3 |<----- DD7 ----------->| 3 |
+ | HOST DATA BUS BIT 8 4 |<----- DD8 ----------->| 4 |
+ | HOST DATA BUS BIT 6 5 |<----- DD6 ----------->| 5 |
+ | HOST DATA BUS BIT 9 6 |<----- DD9 ----------->| 6 |
+ | HOST DATA BUS BIT 5 7 |<----- DD5 ----------->| 7 |
+ | HOST DATA BUS BIT 10 8 |<----- DD10 ---------->| 8 |
+ | HOST DATA BUS BIT 4 9 |<----- DD4 ----------->| 9 |
+ | HOST DATA BUS BIT 11 10 |<----- DD11 ---------->| 10 |
+ | HOST DATA BUS BIT 3 11 |<----- DD3 ----------->| 11 |
+ | HOST DATA BUS BIT 12 12 |<----- DD12 ---------->| 12 |
+ | HOST DATA BUS BIT 2 13 |<----- DD2 ----------->| 13 |
+ | HOST DATA BUS BIT 13 14 |<----- DD13 ---------->| 14 |
+ | HOST DATA BUS BIT 1 15 |<----- DD1 ----------->| 15 |
+ | HOST DATA BUS BIT 14 16 |<----- DD14 ---------->| 16 |
+ | HOST DATA BUS BIT 0 17 |<----- DD0 ----------->| 17 |
+ | HOST DATA BUS BIT 15 18 |<----- DD15 ---------->| 18 |
+ | 19 | ----- Ground -------- | 19 |
+ | 20 | ----- (keypin) ------ | 20 |
+ | DMA REQUEST 21 |<----- DMARQ --------- | 21 |
+ | 22 | ----- Ground -------- | 22 |
+ | HOST I/O WRITE 23 | ----- DIOW- --------->| 23 |
+ | 24 | ----- Ground -------- | 24 |
+ | HOST I/O READ 25 | ----- DIOR- --------->| 25 |
+ | 26 | ----- Ground -------- | 26 |
+ | I/O CHANNEL READY 27 |<----- IORDY --------- | 27 |
+ | SPINDLE SYNC 28 |*----- SPSYNC --------*| 28 |
+ | DMA ACKNOWLEDGE 29 | ----- DMACK- -------->| 29 |
+ | 30 | ----- Ground -------- | 30 |
+ | HOST INTERRUPT REQUEST 31 |<----- INTRQ --------- | 31 |
+ | HOST 16 BIT I/O 32 |<----- IOCS16- ------- | 32 |
+ | HOST ADDRESS BUS BIT 1 33 | ----- DA1 ----------->| 33 |
+ | PASSED DIAGNOSTICS 34 |*----- PDIAG- --------*| 34 |
+ | HOST ADDRESS BUS BIT 0 35 | ----- DAO ----------->| 35 |
+ | HOST ADDRESS BUS BIT 2 36 | ----- DA2 ----------->| 36 |
+ | HOST CHIP SELECT 0 37 | ----- CS1FX- -------->| 37 |
+ | HOST CHIP SELECT 1 38 | ----- CS3FX- -------->| 38 |
+ | DRIVE ACTIVE/DRIVE 1 PRESENT 39 |<----- DASP- ---------*| 39 |
+ | 40 | ----- Ground -------- | 40 |
+ +----------------------------------+ +-----------+
+
+ * Drive Intercommunication Signals
+
+ +---HOST---+ +-Drive 0-+ +-Drive 1-+
+ | 28 | ----->| 28 28 |<----- SPSYNC ---->| 28 |
+ | 34 | ----- | 34 34 |<----- PDIAG- ---- | 34 |
+ | 39 |<----- | 39 39 |<----- DASP- ----- | 39 |
+ +----------+ +---------+ +---------+
+
+6.3 Signal Descriptions
+
+The interface signals and pins are described in more detail than shown in
+Table 6-1. The signals are listed according to function, rather than in
+numerical connector pin order. Table 6-2 lists signal name mnemonic, connector
+pin number, whether input to (I) or output from (O) the drive, and full signal
+name.
+
+ TABLE 6-2: INTERFACE SIGNALS DESCRIPTION
+ +--------+----+-----+
+ | Signal | Pin| I/O |
+ +--------+----+-----+-----------------------------------------------------+
+ | CS1FX- | 37 | I | Drive chip Select 0 |
+ | CS3FX- | 38 | I | Drive chip Select 1 |
+ | DA0 | 35 | I | Drive Address Bus - Bit 0 |
+ | DA1 | 33 | I | - Bit 1 |
+ | DA2 | 36 | I | - Bit 2 |
+ | DASP- | 39 | I/O | Drive Active/Drive 1 Present |
+ | DD0 | 17 | I/O | Drive Data Bus - Bit 0 |
+ | DD1 | 15 | I/O | - Bit 1 |
+ | DD2 | 13 | I/O | - Bit 2 |
+ | DD3 | 11 | I/O | - Bit 3 |
+ | DD4 | 9 | I/O | - Bit 4 |
+ | DD5 | 7 | I/O | - Bit 5 |
+ | DD6 | 5 | I/O | - Bit 6 |
+ | DD7 | 3 | I/O | - Bit 7 |
+ | DD8 | 4 | I/O | - Bit 8 |
+ | DD9 | 6 | I/O | - Bit 9 |
+ | DD10 | 8 | I/O | - Bit 10 |
+ | DD11 | 10 | I/O | - Bit 11 |
+ | DD12 | 12 | I/O | - Bit 12 |
+ | DD13 | 14 | I/O | - Bit 13 |
+ | DD14 | 16 | I/O | - Bit 14 |
+ | DD15 | 18 | I/O | - Bit 15 |
+ | DIOR- | 25 | I | Drive I/O Read |
+ | DIOW- | 23 | I | Drive I/O Write |
+ | DMACK- | 29 | I | DMA Acknowledge |
+ | DMARQ | 21 | O | DMA Request |
+ | INTRQ | 31 | O | Drive Interrupt |
+ | IOCS16-| 32 | O | Drive 16-bit I/O |
+ | IORDY | 27 | O | I/O Channel Ready |
+ | PDIAG- | 34 | I/O | Passed Diagnostics |
+ | RESET- | 1 | I | Drive Reset |
+ | SPSYNC | 28 | - | Spindle Sync |
+ | keypin | 20 | - | Pin used for keying the interface connector. |
+ +--------+----+-----+-----------------------------------------------------+
+
+6.3.1 CS1FX- (Drive chip Select 0)
+
+This is the chip select signal decoded from the host address bus used to
+select the Command Block Registers.
+
+6.3.2 CS3FX- (Drive chip Select 1)
+
+This is the chip select signal decoded from the host address bus used to
+select the Control Block Registers.
+
+6.3.3 DA0-2 (Drive Address Bus)
+
+This is the 3-bit binary coded address asserted by the host to access a
+register or data port in the drive.
+
+6.3.4 DASP- (Drive Active/Drive 1 Present)
+
+This is a time-multiplexed signal which indicates that a drive is active, or
+that Drive 1 is present. This signal shall be an open collector output and
+each drive shall have a 10K pull-up resistor.
+
+During power on initialization or after RESET- is negated, DASP- shall be
+asserted by Drive 1 within 400 msec to indicate that Drive 1 is present.
+
+Drive 0 shall allow up to 450 msec for Drive 1 to assert DASP-. If Drive 1 is
+not present, Drive 0 may assert DASP- to drive an activity LED.
+
+DASP- shall be negated following acceptance of the first valid command by
+Drive 1 or after 31 seconds, whichever comes first.
+
+Any time after negation of DASP-, either drive may assert DASP- to indicate
+that a drive is active.
+
+..rm102
+ NOTE: Prior to the development of this standard, products were introduced
+ which did not time multiplex DASP-. Some used two jumpers to indicate
+ to Drive 0 whether Drive 1 was present. If such a drive is jumpered to
+ indicate Drive 1 is present it should work successfully with a Drive 1
+ which complies with this standard. If installed as Drive 1, such a
+ drive may not work successfully because it may not assert DASP- for a
+ long enough period to be recognized. However, it would assert DASP-
+ to indicate that the drive is active.
+
+6.3.5 DD0-DD15 (Drive Data Bus)
+
+This is an 8- or 16-bit bidirectional data bus between the host and the drive.
+The lower 8 bits are used for 8-bit transfers e.g. registers, ECC bytes.
+
+6.3.6 DIOR- (Drive I/O Read)
+
+This is the Read strobe signal. The falling edge of DIOR- enables data from a
+register or the data port of the drive onto the host data bus, DD0-DD7 or DD0-
+DD15. The rising edge of DIOR- latches data at the host.
+
+6.3.7 DIOW- (Drive I/O Write)
+
+This is the Write strobe signal. The rising edge of DIOW- clocks data from the
+host data bus, DD0-DD7 or DD0-DD15, into a register or the data port of the
+drive.
+
+6.3.8 DMACK- (DMA Acknowledge) (Optional)
+
+This signal shall be used by the host in response to DMARQ to either
+acknowledge that data has been accepted, or that data is available.
+
+6.3.9 DMARQ (DMA Request) (Optional)
+
+This signal, used for DMA data transfers between host and drive, shall be
+asserted by the drive when it is ready to transfer data to or from the host.
+The direction of data transfer is controlled by DIOR- and DIOW-. This signal
+is used in a handshake manner with DMACK- i.e. the drive shall wait until the
+host asserts DMACK- before negating DMARQ, and re-asserting DMARQ if there is
+more data to transfer.
+
+When a DMA operation is enabled, IOCS16-, CS1FX- and CS3FX- shall not be
+asserted and transfers shall be 16-bits wide.
+
+..rm102
+ NOTE: ATA products with DMA capability require a pull-down resistor on this
+ signal to prevent spurious data transfers. This resistor may affect
+ driver requirements for drives sharing this signal in systems with
+ unbuffered ATA signals.
+
+6.3.10 INTRQ (Drive Interrupt)
+
+This signal is used to interrupt the host system. INTRQ is asserted only when
+the drive has a pending interrupt, the drive is selected, and the host has
+cleared nIEN in the Device Control Register. If nIEN=1, or the drive is not
+selected, this output is in a high impedance state, regardless of the presence
+or absence of a pending interrupt.
+
+INTRQ shall be negated by:
+
+ - assertion of RESET- or
+ - the setting of SRST of the Device Control Register, or
+ - the host writing the Command Register or
+ - the host reading the Status Register
+
+..rm102
+ NOTE: Some drives may negate INTRQ on a PIO data transfer completion, except
+ on a single sector read or on the last sector of a multi-sector read.
+
+On PIO transfers, INTRQ is asserted at the beginning of each data block to be
+transferred. A data block is typically a single sector, except when
+declared otherwise by use of the Set Multiple command. An exception occurs on
+Format Track, Write Sector(s), Write Buffer and Write Long commands - INTRQ
+shall not be asserted at the beginning of the first data block to be
+transferred.
+
+On DMA transfers, INTRQ is asserted only once, after the command has
+completed.
+
+6.3.11 IOCS16- (Drive 16-bit I/O)
+
+Except for DMA transfers, IOCS16- indicates to the host system that the 16-bit
+data port has been addressed and that the drive is prepared to send or receive
+a 16-bit data word. This shall be an open collector output.
+
+ - When transferring in PIO mode, If IOCS16- is not asserted, transfers shall
+ be 8-bit using DD0-7.
+ - When transferring in PIO mode, if IOCS16- is asserted, transfers shall be
+ 16-bit using DD0-15.
+ for 16-bit data transfers.
+ - When transferring in DMA mode, the host shall use a 16-bit DMA channel and
+ IOCS16- shall not be asserted.
+
+6.3.12 IORDY (I/O Channel Ready) (Optional)
+
+This signal is negated to extend the host transfer cycle of any host register
+access (Read or Write) when the drive is not ready to respond to a data
+transfer request. When IORDY is not negated, IORDY shall be in a high
+impedance state.
+
+6.3.13 PDIAG- (Passed Diagnostics)
+
+This signal shall be asserted by Drive 1 to indicate to Drive 0 that it has
+completed diagnostics. A 10K pull-up resistor shall be used on this signal by
+each drive.
+
+Following a power on reset, software reset or RESET-, Drive 1 shall negate
+PDIAG- within 1 msec (to indicate to Drive 0 that it is busy). Drive 1 shall
+then assert PDIAG- within 30 seconds to indicate that it is no longer busy,
+and is able to provide status. After the assertion of PDIAG-, Drive 1 may be
+unable to accept commands until it has finished its reset procedure and is
+Ready (DRDY=1).
+
+Following the receipt of a valid Execute Drive Diagnostics command, Drive
+1 shall negate PDIAG- within 1 msec to indicate to Drive 0 that it is busy
+and has not yet passed its drive diagnostics. If Drive 1 is present then
+Drive 0 shall wait for up to 5 seconds from the receipt of a valid Execute
+Drive Diagnostics command for Drive 1 to assert PDIAG-. Drive 1 should
+clear BSY before asserting PDIAG-, as PDIAG- is used to indicate that
+Drive 1 has passed its diagnostics and is ready to post status.
+
+..
+If DASP- was not asserted by Drive 1 during reset initialization, Drive 0
+shall post its own status immediately after it completes diagnostics, and
+clear the Drive 1 Status Register to 00h. Drive 0 may be unable to accept
+commands until it has finished its reset procedure and is Ready (DRDY=1).
+
+6.3.14 RESET- (Drive Reset)
+
+This signal from the host system shall be asserted for at least 25 usec after
+voltage levels have stabilized during power on and negated thereafter unless
+some event requires that the drive(s) be reset following power on.
+
+6.3.15 SPSYNC (Spindle Synchronization) (Optional)
+
+This signal may be either input or output to the drive depending on a vendor-
+defined switch. If a drive is set to Master the signal is output, and if a
+drive is set to slave the signal is input.
+
+There is no requirement that each drive implementation be plug-compatible to
+the extent that a multiple vendor drive subsystem be operable. Mix and match
+of different manufacturers drives is unlikely because rpm, sync fields, sync
+bytes etc need to be virtually identical. However, if drives are designed to
+match the following recommendation, controllers can operate drives with a
+single implementation.
+
+There can only be one master drive at a time in a configuration. The host or
+the drive designated as master can generate SPSYNC at least once per rotation,
+but may be at a higher frequency.
+
+SPSYNC received by a drive is used as the synchronization signal to lock the
+spindles in step. The time to achieve synchronization varies, and is indicated
+by the drive setting DRDY i.e. if the drive does not achieve synchronization
+following power on or a reset, it shall not set DRDY.
+
+A master drive or the host generates SPSYNC and transmits it.
+
+A slave drive does not generate SPSYNC and is responsible to synchronize its
+index to SPSYNC.
+
+If a drive does not support synchronization, it shall ignore SPSYNC.
+
+In the event that a drive previously synchronized loses synchronization, but
+is otherwise operational, it does not clear DRDY.
+
+Prior to the introduction of this standard, this signal was defined as DALE
+(Drive Address Latch Enable), and used for an address valid indication from
+the host system. If used, the host address and chip selects, DAO through DA2,
+CS1FX-, and CS3FX- were valid at the negation of this signal and remained
+valid while DALE was negated, therefore, the drive did not need to latch these
+signals with DALE.
+