6.Physical Interface 6.1Signal 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. Control signals that may be used for two mutually exclusive functions are identified with their two names separated by a colon e.g. SPSYNC:CSEL can be used for either the Spindle Sync or the Cable Select functions. 6.2Signal 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 +----------------------------------++-----------+ |HOSTI/O|| DRIVE I/O | |CONNECTOR|| CONNECTOR | |||| | HOST RESET1 | -----RESET--------->| 1| |2 | -----Ground-------- | 2| | HOST DATA BUS BIT 73 |<-----DD7----------->| 3| | HOST DATA BUS BIT 84 |<-----DD8----------->| 4| | HOST DATA BUS BIT 65 |<-----DD6----------->| 5| | HOST DATA BUS BIT 96 |<-----DD9----------->| 6| | HOST DATA BUS BIT 57 |<-----DD5----------->| 7| | HOST DATA BUS BIT 108 |<-----DD10---------->| 8| | HOST DATA BUS BIT 49 |<-----DD4----------->| 9| | HOST DATA BUS BIT 1110 |<-----DD11---------->| 10| | HOST DATA BUS BIT 311 |<-----DD3----------->| 11| | HOST DATA BUS BIT 1212 |<-----DD12---------->| 12| | HOST DATA BUS BIT 213 |<-----DD2----------->| 13| | HOST DATA BUS BIT 1314 |<-----DD13---------->| 14| | HOST DATA BUS BIT 115 |<-----DD1----------->| 15| | HOST DATA BUS BIT 1416 |<-----DD14---------->| 16| | HOST DATA BUS BIT 017 |<-----DD0----------->| 17| | HOST DATA BUS BIT 1518 |<-----DD15---------->| 18| |19 | -----Ground-------- | 19| |20 | -----(keypin)------ | 20| | DMA REQUEST21 |<-----DMARQ--------- | 21| |22 | -----Ground-------- | 22| | HOST I/O WRITE23 | -----DIOW---------->| 23| |24 | -----Ground-------- | 24| | HOST I/O READ25 | -----DIOR---------->| 25| |26 | -----Ground-------- | 26| | I/O CHANNEL READY27 |<-----IORDY--------- | 27| | SPINDLE SYNC or CABLE SELECT28 |*---- SPSYNC:CSEL-----*| 28| | DMA ACKNOWLEDGE29 | -----DMACK--------->| 29| |30 | -----Ground-------- | 30| | HOST INTERRUPT REQUEST31 |<-----INTRQ--------- | 31| | HOST 16 BIT I/O32 |<-----IOCS16-------- | 32| | HOST ADDRESS BUS BIT 133 | -----DA1----------->| 33| | PASSED DIAGNOSTICS34 |*-----PDIAG---------*| 34| | HOST ADDRESS BUS BIT 035 | -----DAO----------->| 35| | HOST ADDRESS BUS BIT 236 | -----DA2----------->| 36| | HOST CHIP SELECT 037 | -----CS1FX--------->| 37| | HOST CHIP SELECT 138 | -----CS3FX--------->| 38| | DRIVE ACTIVE/DRIVE 1 PRESENT39 |<-----DASP----------*| 39| |40 | -----Ground-------- | 40| +----------------------------------++-----------+ * Drive Intercommunication Signals +---HOST---++-Drive 0-++-Drive 1-+ |28 | ----->| 2828 |<-- SPSYNC:CSEL-->| 28| |34 | ----- | 3434 |<----- PDIAG----- | 34| |39 |<----- | 3939 |<----- DASP------ | 39| +----------++---------++---------+ 6.3Signal 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| | CSEL| 28 |-| Cable Select| | 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 ohm 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. 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 and, if the drive supports the Features Register capability to enable 8-bit-only data transfers (see 9.21). 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. 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 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 ohm 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.15SPSYNC:CSEL (Spindle Synchronization/Cable Select) (Optional) This signal shall have a 10K ohm pull-up resistor. This is a dual purpose signal and either or both functions may be implemented. If both functions are implemented then they cannot be active concurrently: the choice as to which is active is made by a vendor-defined switch. All drives connected to the same cable should have the same function active at the same time. If SPSYNC and CSEL are mixed on the same cable, then drive behaviour is undefined. 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. 6.3.15.1SPSYNC (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. 6.3.15.2CSEL (Cable Select) (Optional) The drive is configured as either Drive 0 or Drive 1 depending upon the value of CSEL: - If CSEL is grounded then the drive address is 0 - If CSEL is open then the drive address is 1 Special cabling can be used by the system manufacturer to selectively ground CSEL e.g. CSEL of Drive 0 is connected to the CSEL conductor in the cable, and is grounded, thus allowing the drive to recognize itself as Drive 0. CSEL of Drive 1 is not connected to CSEL because the conductor is removed, thus the drive can recognize itself as Drive 1. ______ CSEL Conductor _________________________ ||Open |Ground|| +------++---------++---------+ | Host || Drive 0 || Drive 1 | +------++---------++---------+ ______ CSEL Conductor _________________________ |Open| |Ground|| +------++---------++---------+ | Host || Drive 1 || Drive 0 | +------++---------++---------+ FIGURE 6-1:Cable Select 7.Logical Interface 7.1General 7.1.1Bit Conventions Bit names are shown in all upper case letters except where a lower case n precedes a bit name. This indicates that when nBIT=0 (bit is zero) the action is true and when nBIT=1 (bit is one) the action is false. If there is no preceding n, then when BIT=1 it is true, and when BIT=0 it is false. A bit can be set to one or cleared to zero and polarity influences whether it is to be interpreted as true or false: TrueBIT=1nBIT=0 FalseBIT=0nBIT=1 7.1.2Environment The drives using this interface shall be programmed by the host computer to perform commands and return status to the host at command completion. When two drives are daisy chained on the interface, commands are written in parallel to both drives, and for all except the Execute Diagnostics command, only the selected drive executes the command. On an Execute Diagnostics command addressed to Drive 0, both drives shall execute the command, and Drive 1 shall post its status to Drive 0 via PDIAG-. Drives are selected by the DRV bit in the Drive/Head Register (see 7.2.8), and by a jumper or switch on the drive designating it as either a Drive 0 or as Drive 1. When DRV=0, Drive 0 is selected. When DRV=1, Drive 1 is selected. When drives are daisy chained, one shall be set as Drive 0 and the other as Drive 1. When a single drive is attached to the interface it shall be set as Drive 0. Prior to the adoption of this standard, some drives may have provided jumpers to indicate Drive 0 with no Drive 1 present, or Drive 0 with Drive 1 present. Throughout this document, drive selection always refers to the state of the DRV bit, the position of the Drive 0/Drive 1 jumper or switch, or use of the CSEL pin. A drive can operate in either of two addressing modes, CHS or LBA, on a command by command basis. A drive which can support LBA mode indicates this in the Identify Drive Information. If the host selects LBA mode in the Drive/Head register, Sector Number, Cylinder Low, Cylinder High and HS3-HS0 of the Drive/Head Register contains the zero based-LBA. In LBA mode, the sectors on the drive are assumed to be linearly mapped with an Inital definition of: LBA 0 = Cylinder 0/Head 0/Sector 1. Irrespective of translate mode geometry set by the host, the LBA address of a given sector does not change: LBA = [ (Cylinder * No of Heads + Heads) * Sectors/Track ] + (Sector-1) 7.2I/O Register Descriptions Communication to or from the drive is through an I/O Register that routes the input or output data to or from registers (selected) by a code on signals from the host (CS1FX-, CS3FX-, DA2, DA1, DA0, DIOR- and DIOW-). The Command Block Registers are used for sending commands to the drive or posting status from the drive. The Control Block Registers are used for drive control and to post alternate status. Table 7-1 lists these registers and the addresses that select them. Logic conventions are:A = signal asserted N = signal negated x = does not matter which it is TABLE 7-1:I/O PORT FUNCTIONS/SELECTION ADDRESSES +-------------------------------+-----------------------------------------+ |Addresses|Functions| |CS1FX-|CS3FX-| DA2 | DA1 | DA0 |READ (DIOR-)|WRITE (DIOW-)| +------+------+-----+-----+-----+---------------------+-------------------+ |Control Block Registers| +------+------+-----+-----+-----+---------------------+-------------------+ |N|N|x|x|x| Data Bus High Imped | Not used| |N|A|0|x|X| Data Bus High Imped | Not used| |N|A|1|0|x| Data Bus High Imped | Not used| |N|A|1|1|0| Alternate Status| Device Control| |N|A|1|1|1| Drive Address| Not used| +------+------+-----+-----+-----+---------------------+-------------------+ |Command Block Registers| +------+------+-----+-----+-----+---------------------+-------------------+ |A|N|0|0|0| Data| Data| |A|N|0|0|1| Error Register| Features| |A|N|0|1|0| Sector Count| Sector Count| |A|N|0|1|1| Sector Number| Sector Number| |A|N|0|1|1| * LBA Bits0- 7| * LBA Bits0- 7| |A|N|1|0|0| Cylinder Low| Cylinder Low| |A|N|1|0|0| * LBA Bits8-15| * LBA Bits8-15| |A|N|1|0|1| Cylinder High| Cylinder High| |A|N|1|0|1| * LBA Bits 16-23| * LBA Bits 16-23| |A|N|1|1|0| Drive/Head| Drive/Head| |A|N|1|1|0| * LBA Bits 24-27| * LBA Bits 24-27| |A|N|1|1|1| Status| Command| |A|A|x|x|x| Invalid Address| Invalid Address| +------+------+-----+-----+-----+---------------------+-------------------+ * Mapping of registers in LBA Mode 7.2.1Alternate Status Register This register contains the same information as the Status Register in the command block. The only difference being that reading this register does not imply interrupt acknowledge or clear a pending interrupt. 76543210 +-------+-------+-------+-------+-------+-------+-------+-------+ |BSY| DRDY|DWF|DSC|DRQ| CORR|IDX|ERR| +-------+-------+-------+-------+-------+-------+-------+-------+ See 7.2.13 for definitions of the bits in this register. 7.2.2Command Register This register contains the command code being sent to the drive. Command execution begins immediately after this register is written. The executable commands, the command codes, and the necessary parameters for each command are listed in Table 9-1. 7.2.3Cylinder High Register This register contains the high order bits of the starting cylinder address for any disk access. At the end of the command, this register is updated to reflect the current cylinder number. The most significant bits of the cylinder address shall be loaded into the cylinder high Register. In LBA Mode this register contains Bits 16-23. At the end of the command, this register is updated to reflect the current LBA Bits 16-23. NOTE: Prior to the introduction of this standard, only the lower 2 bits of this register were valid, limiting cylinder address to 10 bits i.e. 1,024 cylinders. 7.2.4Cylinder Low Register This register contains the low order 8 bits of the starting cylinder address for any disk access. At the end of the command, this register is updated to reflect the current cylinder number. In LBA Mode this register contains Bits 8-15. At the end of the command, this register is updated to reflect the current LBA Bits 8-15. 7.2.5Data Register This 16-bit register is used to transfer data blocks between the device data buffer and the host. It is also the register through which sector information is transferred on a Format Track command. Data transfers may be either PIO or DMA. 7.2.6Device Control Register The bits in this register are as follows: 76543210 +-------+-------+-------+-------+-------+-------+-------+-------+ |x|x|x|x|1| SRST|nIEN |0| +-------+-------+-------+-------+-------+-------+-------+-------+ - SRST is the host software reset bit. The drive is held reset when this bit is set. If two disk drives are daisy chained on the interface, this bit resets both simultaneously. Drive 1 is not required to execute the DASP- handshake procedure. - nIEN is the enable bit for the drive interrupt to the host. When nIEN=0, and the drive is selected, INTRQ shall be enabled through a tri-state buffer. When nIEN=1, or the drive is not selected, the INTRQ signal shall be in a high impedance state. 7.2.7Drive Address Register This register contains the inverted drive select and head select addresses of the currently selected drive. The bits in this register are as follows: 76543210 +-------+-------+-------+-------+-------+-------+-------+-------+ |HiZ|nWTG |nHS3 |nHS2 |nHS1 |nHS0 |nDS1 |nDS0 | +-------+-------+-------+-------+-------+-------+-------+-------+ - HiZ shall always be in a high impedance state. - nWTG is the Write Gate bit. When writing to the disk drive is in progress, nWTG=0. - nHS3 through nHS0 are the one's complement of the binary coded address of the currently selected head. For example, if nHS3 through nHS0 are 1100b, respectively, head 3 is selected. nHS3 is the most significant bit. - nDS1 is the drive select bit for drive 1. When drive 1 is selected and active, nDS1=0. - nDS0 is the drive select bit for drive 0. When drive 0 is selected and active, nDS0=0. NOTE: Care should be used when interpreting these bits, as they do not always represent the expected status of drive operations at the instant the status was put into this register. This is because of the use of cacheing, translate mode and the Drive 0/Drive 1 concept with each drive having its own embedded controller. 7.2.8Drive/Head Register This register contains the drive and head numbers. The contents of this register define the number of heads minus 1, when executing an Initialize Drive Parameters command. 76543210 +-------+-------+-------+-------+-------+-------+-------+-------+ |1|L|1|DRV|HS3|HS2|HS1|HS0| +-------+-------+-------+-------+-------+-------+-------+-------+ - L is the binary encoded address mode select. When L=0, addressing is by CHS mode. When L=1, addressing is by LBA mode. - DRV is the binary encoded drive select number. When DRV=0, Drive 0 is selected. When DRV=1, Drive 1 is selected. - If L=0, HS3 through HS0 contain the binary coded address of the head to be selected e.g. if HS3 through HS0 are 0011b, respectively, head 3 will be selected. HS3 is the most significant bit. At command completion, these bits are updated to reflect the currently selected head. If L=1, HS3 through HS0 contain bits 24-27 of the LBA. At command completion, these bits are updated to reflect the current LBA bits 24-27. 7.2.9Error Register This register contains status from the last command executed by the drive or a Diagnostic Code. At the completion of any command except Execute Drive Diagnostic, the contents of this register are valid when ERR=1 in the Status Register. Following a power on, a reset, or completion of an Execute Drive Diagnostic command, this register contains a Diagnostic Code (see Table 9-2). 76543210 +-------+-------+-------+-------+-------+-------+-------+-------+ | BBK|UNC|MC|IDNF |MCR| ABRT| TK0NF |AMNF | +-------+-------+-------+-------+-------+-------+-------+-------+ - BBK (Bad Block Detected) indicates a bad block mark was detected in the requested sector's ID field. - UNC (Uncorrectable Data Error) indicates an uncorrectable data error has been encountered. - MC (Media Changed) indicates that the removable media has been changed i.e. there has been a change in the ability to access the media. - IDNF (ID Not Found) indicates the requested sector's ID field could not be found. - ABRT (Aborted Command) indicates the requested command has been aborted due to a drive status error (Not Ready, Write Fault, etc.) or because the command code is invalid. - MCR (Media Change Requested) indicates that the release latch on a removable media drive has been pressed. This means that the user wishes to remove the media and requires an action of some kind e.g. have software issue a Media Eject or Door Unlock command. - TK0NF (Track 0 Not Found) indicates track 0 has not been found during a Recalibrate command. - AMNF (Address Mark Not Found) indicates the data address mark has not been found after finding the correct ID field. 7.2.10Features Register This register is command specific and may be used to enable and disable features of the interface e.g. by the Set Features Command to enable and disable cacheing. This register may be ignored by some drives. Some hosts, based on definitions prior to the completion of this standard, set values in this register to designate a recommended Write Precompensation Cylinder value. 7.2.11Sector Count Register This register contains the number of sectors of data requested to be transferred on a read or write operation between the host and the drive. If the value in this register is zero, a count of 256 sectors is specified. If this register is zero at command completion, the command was successful. If not successfully completed, the register contains the number of sectors which need to be transferred in order to complete the request. The contents of this register may be defined otherwise on some commands e.g. Initialize Drive Parameters, Format Track or Write Same commands.
作者:computer00 2005-10-12 12:32:00 |