At API
At API
SFF-8020i
Point of Contact:I. Dal Allan Chairman SFF Committee ENDL 14426 Black Walnut Court Saratoga, CA 95070 Ph: (408) 867-6630 Fax: (408) 867-2115 E-Mail: [email protected] SFF FaxAccess: (408) 741-1600
Technical Editors:Tom Hanan Western Digital Corporation 8105 Irvine Center Drive Irvine Calif. 92718 Ph: (714) 932-7472 Fax: (714) 932-7312 E-Mail: [email protected] Devon Worrell Western Digital Corporation 8105 Irvine Center Drive Irvine Calif 92718 Ph: (714) 932-7042 Fax: (714) 932-7796 E-Mail: [email protected]
Table of Contents
1.0 Introduction . . . . . . . . . . . . . . . . . . . . 1.1 Abstract. . . . . . . . . . . . . . . . . . 1.2 Secretariat . . . . . . . . . . . . . . . . 1.3 Summary of SFF Principals . . . . . . . 1.4 SFF Membership and Fees . . . . . . . . 1.5 Scope . . . . . . . . . . . . . . . . . . . 1.6 Audience . . . . . . . . . . . . . . . . . 1.7 Normative References . . . . . . . . . . 1.8 Prerequisites and Related Documents . . 1.9 Layout of the Document . . . . . . . . . 1.10 Patents . . . . . . . . . . . . . . . . . . 1.11 Unresolved Issues . . . . . . . . . . . . 1.12 Change History. . . . . . . . . . . . . . General. . . . . . . . . . . . . . . . . . . . . . . 2.1 Overview . . . . . . . . . . . . . . . . . 2.2 Feature Summary. . . . . . . . . . . . . Conventions . . . . . . . . . . . . . . . . . . . . 3.1 Document Conventions . . . . . . . . . 3.2 Signal Conventions. . . . . . . . . . . . 3.3 Definitions . . . . . . . . . . . . . . . . 3.3.1 Absolute F Field . . . . . . . . 3.3.2 Absolute M Field . . . . . . . . 3.3.3 Absolute S Field . . . . . . . . 3.3.4 ATA (AT Attachment) . . . . . 3.3.5 BCD . . . . . . . . . . . . . . 3.3.6 Block . . . . . . . . . . . . . . 3.3.7 Blocks Per Sector . . . . . . . . 3.3.8 CD-DA . . . . . . . . . . . . . 3.3.9 CD-ROM . . . . . . . . . . . . 3.3.10 CD-ROM Control Field . . . . 3.3.11 CD-ROM Data Mode. . . . . . 3.3.12 Changer . . . . . . . . . . . . . 3.3.13 CHS (Cylinder-Head-Sector) . . 3.3.14 CIRC . . . . . . . . . . . . . . 3.3.15 Command Packet (CP) . . . . . 3.3.16 Data Block . . . . . . . . . . . 3.3.17 DMA (Direct Memory Access). 3.3.18 Field . . . . . . . . . . . . . . 3.3.19 Frame . . . . . . . . . . . . . . 3.3.20 Hold Track State . . . . . . . . 3.3.21 Index . . . . . . . . . . . . . . 3.3.22 Invalid . . . . . . . . . . . . . 3.3.23 LBA (Logical Block Address) . 3.3.24 Logical Block . . . . . . . . . . 3.3.25 Lead-in Area . . . . . . . . . . 3.3.26 Lead-out Area . . . . . . . . . 3.3.27 L-EC . . . . . . . . . . . . . . 3.3.28 LUN . . . . . . . . . . . . . . 3.3.29 Mandatory . . . . . . . . . . . 3.3.30 MSF Address . . . . . . . . . . 3.3.31 One . . . . . . . . . . . . . . . 3.3.32 Optional. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 .1 .1 .2 .3 .4 .4 .4 .5 .5 .6 .6 .6 .9 .9 .9 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 13 13 13 13 13 13 13 13 13 13 14 14 14 14 14 14 14 14 14 14
2.0
3.0
Page 1
Table of Contents
3.3.33 Output Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.3.34 Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.3.35 Pause Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.3.36 PIO (Programmed Input/Output) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.3.37 Post-gap Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.3.38 Pre-gap Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.3.39 Relative F Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.3.40 Relative M Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.3.41 Relative S Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.3.42 SAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.3.43 Reserved . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.3.44 Sector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3.45 Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3.46 Sub-channel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3.47 TOC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3.48 Track . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3.49 Transition Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3.50 VU (Vendor Unique) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3.51 Zero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.4 Symbols and Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 ATAPI Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.1 ATA Signal Utilization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.2 ATA Command Utilization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.3 ATA Compatibility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.4 Packet Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.5 How SCSI is Used by ATAPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.5.1 Differences from the SCSI Standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.5.2 Redundant Command Functionality (Task File vs. Packet) . . . . . . . . . . . . . . . . 20 4.5.2.1 Door Lock and Door Unlock vs. Prevent / Allow Medium Removal . . . . . 20 4.5.2.2 ATAPI Identify Drive vs. Inquiry . . . . . . . . . . . . . . . . . . . . . . . 20 4.5.2.3 Initialize Drive Parameters and Set Features vs. Mode Sense and Mode Select 20 ATAPI Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 5.1 Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 5.2 ATAPI PACKET Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 5.3 Status Register Utilization for Packet Commands . . . . . . . . . . . . . . . . . . . . . . . . . . 22 5.4 Byte Count Register (Cylinder Low/High) Usage for Packet Commands. . . . . . . . . . . . . . 22 5.5 Sector Count (ATAPI Interrupt Reason) Register Usage for Packet Commands . . . . . . . . . . 23 5.6 Immediate Command Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.7 Overlapped Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 5.7.1 Example of ATAPI Overlap with only one ATAPI Peripheral . . . . . . . . . . . . . . 24 5.8 Flow of Packet Command, PIO Data In to Host . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 5.9 Flow of Overlapped Commands with Data Transfer In to Host . . . . . . . . . . . . . . . . . . . 27 5.10 Flow of Packet Command with PIO Data Out from the Host . . . . . . . . . . . . . . . . . . . . 30 5.11 Flow of Overlapped Commands with Data Transfer Out From Host . . . . . . . . . . . . . . . . 32 5.12 Flow of Non-Overlap DMA Data Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 5.13 Flow of Non-data Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 5.14 Timing of Non-Overlap Packet Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 5.15 Timing of Non-Overlap Data and Status Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . 37 5.16 Control Signal Timing Requirements and Relationships . . . . . . . . . . . . . . . . . . . . . . 38 5.17 Overlapped Command Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 5.17.1 Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 5.17.2 Service Command (A2h) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.0
5.0
Page 2
Table of Contents
5.17.3 Overlapped Operation, Legal Transitions . . . . . . . . . . . . . . . . . . . . . . . . . 5.17.4 Task File ownership . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.17.5 Error Handling with Overlapped Commands . . . . . . . . . . . . . . . . . . . . . . . 5.18 BIOS and ATAPI Driver Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.18.1 Reset Master/Slave Diagnostics Sequence . . . . . . . . . . . . . . . . . . . . . . . . . 5.18.2 SRST Initialization Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.18.2.1 SRST Sequence Device 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.18.2.2 SRST Sequence Device 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.18.2.3 Other SRST Related Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.18.3 Special Handling of ATA Read and Identify Drive Commands . . . . . . . . . . . . . . 5.18.4 ATAPI aware BIOS and Driver Considerations . . . . . . . . . . . . . . . . . . . . . . 5.18.5 Default Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ATAPI Transport Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1 Reset Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.1 Power On or Hardware Reset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 ATAPI Soft Reset Command and Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 ATAPI Implementation of ATA SRST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4 Physical Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.5 Single Drive Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.6 Register Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.7 ATAPI Register Map (Packet Command) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CD-ROM ATA (Task File) Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1 ATA (Task File) Command Implementation Requirements . . . . . . . . . . . . . . . . . . . . . 7.1.1 ATAPI Soft Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.2 Check Power Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.3 Execute Drive Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.4 Idle Immediate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.5 NOP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.6 Packet Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.7 ATAPI Identify Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.7.1 General Configuration Word (0) . . . . . . . . . . . . . . . . . . . . . . . . 7.1.7.2 Serial Number (Words 10 - 19). . . . . . . . . . . . . . . . . . . . . . . . . 7.1.7.3 Firmware Revision (Words 23-26) . . . . . . . . . . . . . . . . . . . . . . . 7.1.7.4 Model Number (Words 27 - 46) . . . . . . . . . . . . . . . . . . . . . . . . 7.1.7.5 Capabilities Word (Word 49). . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.7.6 PIO Data Transfer Cycle Timing (Word 51) . . . . . . . . . . . . . . . . . . 7.1.7.7 DMA Data Transfer Cycle Timing (Word 52) . . . . . . . . . . . . . . . . . 7.1.7.8 Field Validity (Word 53) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.7.9 Single Word DMA Transfer (Word 62) . . . . . . . . . . . . . . . . . . . . 7.1.7.10 Multi Word DMA Transfer (Word 63) . . . . . . . . . . . . . . . . . . . . . 7.1.7.11 Enhanced PIO Mode (Word 64) . . . . . . . . . . . . . . . . . . . . . . . . 7.1.7.12 Minimum Multi-word DMA Transfer Cycle Time per Word (Word 65) . . . 7.1.7.13 Manufacturers Recommended Multi-word DMA Cycle Time (Word 66) . . 7.1.7.14 Minimum PIO Transfer Cycle Time Without Flow Control (Word 67) . . . . 7.1.7.15 Minimum PIO Transfer Cycle Time with IORDY Flow Control (Word 68) . 7.1.7.16 Typical Time for the Release After Command Received (Word 71) . . . . . 7.1.7.17 Typical Time for the Clearing of Busy After SERVICE Command (Word 72) 7.1.7.18 Major Version Number (Word 73) . . . . . . . . . . . . . . . . . . . . . . . 7.1.7.19 Minor Version Number (Word 74) . . . . . . . . . . . . . . . . . . . . . . . 7.1.8 Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.9 Set Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.9.1 Set Transfer Mode (03h) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 45 45 46 46 46 46 46 47 47 47 48 49 49 49 50 50 52 52 54 54 59 59 60 60 60 61 61 62 62 63 64 64 64 65 65 65 65 66 66 66 66 66 66 67 67 67 67 67 68 68 69
6.0
7.0
Page 3
Table of Contents
7.1.9.2 Enable Interrupt for Release after receipt of Command Packet (5Dh) . 7.1.9.3 Enable Interrupt After Completion of Service Command (5Eh) . . . . 7.1.9.4 Disable Reverting to Power On Defaults (66h) . . . . . . . . . . . . 7.1.9.5 Enable Reverting to Power On Defaults (CCh) . . . . . . . . . . . . 7.1.9.6 Disable Interrupt for Release after receipt of Command Packet (DDh) 7.1.9.7 Disable Interrupt After Completion of Service Command (DEh) . . . 7.1.10 Sleep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.11 Standby Immediate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CD-ROM Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1 New Capabilities Since the SCSI-2 Standardization. . . . . . . . . . . . . . . . . . . . . 8.2 CD-ROM Media Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3 CD-ROM Physical Data Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.1 Frame Format for Audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.2 Sector Format for Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.3 Sub-channel Information Formats . . . . . . . . . . . . . . . . . . . . . . . . . 8.4 CD Audio Error Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.5 CD-ROM Ready Condition/Not Ready Condition. . . . . . . . . . . . . . . . . . . . . . 8.5.1 Packet Command Not Ready Status Utilization . . . . . . . . . . . . . . . . . . 8.6 CD-ROM Address Reporting Formats (MSF bit) . . . . . . . . . . . . . . . . . . . . . . 8.7 Error Reporting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Changer Model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.1 Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2 Changer Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3 Automatic Load and Unload Operations. . . . . . . . . . . . . . . . . . . . . . . . . . . 9.4 Delayed Disc load operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.5 Prevent / Allow processing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.6 Error Reporting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CD-ROM Packet Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1 Packet Command Implementation Requirements . . . . . . . . . . . . . . . . . . . . . . 10.1.1 Reserved . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.1.2 Operation Code Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2 ATAPI Command Packet Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.1 Operation Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.2 Logical Block Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.3 Transfer Length. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.4 Parameter List Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.2.5 Allocation Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.3 Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.4 Immediate Command Processing Considerations . . . . . . . . . . . . . . . . . . . . . . 10.5 Command Processing Considerations and Exception Conditions . . . . . . . . . . . . . . 10.5.1 Parameter Rounding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.6 Unit Attention Condition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.7 Commands and Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.8 ATAPI Packet Commands for CD-ROM Devices . . . . . . . . . . . . . . . . . . . . . . 10.8.1 INQUIRY Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.8.1.1 Standard INQUIRY Data . . . . . . . . . . . . . . . . . . . . . . . 10.8.1.2 Using the INQUIRY Command . . . . . . . . . . . . . . . . . . . . 10.8.2 LOAD/UNLOAD CD Command . . . . . . . . . . . . . . . . . . . . . . . . . 10.8.3 MECHANISM STATUS Command . . . . . . . . . . . . . . . . . . . . . . . . 10.8.4 MODE SELECT Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.8.5 MODE SENSE Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.8.5.1 Current Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 . 69 . 70 . 70 . 70 . 70 . 70 . 70 . 71 . 71 . 71 . 75 . 75 . 75 . 76 . 77 . 77 . 78 . 78 . 79 . 81 . 82 . 83 . 83 . 83 . 84 . 84 . 87 . 87 . 87 . 87 . 88 . 89 . 89 . 89 . 89 . 89 . 89 . 90 . 90 . 90 . 90 . 91 . 92 . 93 . 93 . 94 . 97 . 99 .103 .105 .106
8.0
9.0
10.0
Page 4
Table of Contents
10.8.5.2 Changeable Values . . . . . . . . . . . . . . . . . . . . . . 10.8.5.3 Default Values . . . . . . . . . . . . . . . . . . . . . . . . 10.8.5.4 Saved Values . . . . . . . . . . . . . . . . . . . . . . . . . 10.8.5.5 Initial Responses . . . . . . . . . . . . . . . . . . . . . . . 10.8.6 Mode Select/Sense Parameters . . . . . . . . . . . . . . . . . . . . . . 10.8.6.1 CD-ROM Audio Control Parameters Page . . . . . . . . . . 10.8.6.2 CD-ROM Device Parameters Page. . . . . . . . . . . . . . 10.8.6.3 Read Error Recovery Parameters Page . . . . . . . . . . . . 10.8.6.4 CD-ROM Capabilities and Mechanical Status Page . . . . . 10.8.7 PAUSE/RESUME Command . . . . . . . . . . . . . . . . . . . . . . 10.8.8 PLAY AUDIO Command . . . . . . . . . . . . . . . . . . . . . . . . 10.8.8.1 Play Audio with Immediate Packet Commands . . . . . . . 10.8.9 PLAY AUDIO MSF Command . . . . . . . . . . . . . . . . . . . . . 10.8.10 PLAY CD Command . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.8.11 PREVENT/ALLOW MEDIUM REMOVAL Command . . . . . . . . 10.8.12 READ (10) Command . . . . . . . . . . . . . . . . . . . . . . . . . . 10.8.13 READ (12) Command . . . . . . . . . . . . . . . . . . . . . . . . . . 10.8.14 READ CD-ROM CAPACITY Command . . . . . . . . . . . . . . . . 10.8.15 READ CD Command. . . . . . . . . . . . . . . . . . . . . . . . . . . 10.8.15.1 Description of Sub-channels R-W . . . . . . . . . . . . . . 10.8.16 READ CD MSF Command. . . . . . . . . . . . . . . . . . . . . . . . 10.8.17 READ HEADER Command . . . . . . . . . . . . . . . . . . . . . . . 10.8.18 READ SUB-CHANNEL Command . . . . . . . . . . . . . . . . . . . 10.8.18.1 CD-ROM Current Position Data Format . . . . . . . . . . . 10.8.18.2 Media Catalogue Number Data Format . . . . . . . . . . . 10.8.18.3 Track International Standard Recording Code Data Format . 10.8.18.4 Caching of Sub-Channel Data . . . . . . . . . . . . . . . . 10.8.19 READ TOC Command . . . . . . . . . . . . . . . . . . . . . . . . . . 10.8.19.1 Sub-channel Q TOC information . . . . . . . . . . . . . . . 10.8.19.2 Example Read TOC Operations . . . . . . . . . . . . . . . 10.8.20 REQUEST SENSE Command . . . . . . . . . . . . . . . . . . . . . . 10.8.20.1 Sense-key Specific . . . . . . . . . . . . . . . . . . . . . . 10.8.20.2 Deferred Errors . . . . . . . . . . . . . . . . . . . . . . . . 10.8.20.3 Sense-key and Sense Code Definitions. . . . . . . . . . . . 10.8.20.4 Using the REQUEST SENSE Command . . . . . . . . . . 10.8.21 SCAN Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.8.22 SEEK Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10.8.23 SET CD SPEED Command . . . . . . . . . . . . . . . . . . . . . . . 10.8.24 STOP PLAY / SCAN CD-ROM Command . . . . . . . . . . . . . . . 10.8.25 START/STOP UNIT Command . . . . . . . . . . . . . . . . . . . . . 10.8.26 TEST UNIT READY Command . . . . . . . . . . . . . . . . . . . . . 10.8.26.1 Using the TEST UNIT READY Command . . . . . . . . . Physical Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1 CD-ROM Digital Audio Connector (Optional) . . . . . . . . . . . . . . . . . . 11.2 CD-ROM Analog Audio Connector (Optional) . . . . . . . . . . . . . . . . . . 11.3 Device Configuration Jumper (Optional) . . . . . . . . . . . . . . . . . . . . . 11.4 Host IDE Interface Connector . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.5 Power Connector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106 .106 .106 .106 .108 .111 .113 .114 .118 .123 .125 .126 .128 .131 .135 .137 .139 .141 .143 .151 .155 .157 .161 .162 .165 .166 .168 .169 .175 .177 .179 .181 .182 .183 .183 .187 .191 .193 .195 .197 .199 .199 .201 .201 .201 .202 .202 .202
11.0
Annex A Play CD Decoder Types & Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .203 Annex B Connectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .205
Page 5
Page 6
List of Tables
Table 1 Table 2 Table 3 Table 4 Table 5 Table 6 Table 7 Table 8 Table 9 Table 10 Table 11 Table 12 Table 13 Table 14 Table 15 Table 16 Table 17 Table 18 Table 19 Table 20 Table 21 Table 22 Table 23 Table 24 Table 25 Table 26 Table 27 Table 28 Table 29 Table 30 Table 31 Table 32 Table 33 Table 34 Table 35 Table 36 Table 37 Table 38 Table 39 Table 40 Table 41 Table 42 Table 43 Table 44 Table 45 Table 46 Table 47 Table 48 Table 49 Table 50 Table 51 Table 52 Layout of the Document. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Generic Command and Status Usage for ATAPI Devices . . . . . . . . . . . . Byte Count Register Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . Registers after the Service Command . . . . . . . . . . . . . . . . . . . . . . . Legal Transitions for Overlapped Operation . . . . . . . . . . . . . . . . . . . Registers Controlled by BSY & DRQ. . . . . . . . . . . . . . . . . . . . . . . Preferred Drive Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . Shadow Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Shadowing for Single Drive Configurations . . . . . . . . . . . . . . . . . . . I/O Port Functions/Selection Addresses (Compatibility Model) . . . . . . . . . ATAPI Status Register (ATA Status Register) . . . . . . . . . . . . . . . . . . ATAPI Error Register (ATA Error Register) . . . . . . . . . . . . . . . . . . . ATAPI Feature Register (ATA Feature Register). . . . . . . . . . . . . . . . . ATAPI Byte Count Register (ATA Cylinder High/Low Register) . . . . . . . . ATAPI Interrupt Reason Register (ATA Sector Count Register). . . . . . . . . ATAPI Drive Select Register (ATA Drive / Head Select Register) . . . . . . . ATAPI Device Control Register (ATA Device Control Register) . . . . . . . . ATA Command and Status Usage for ATAPI CD-ROM Devices . . . . . . . . Identify Drive, Fields Supported by CD-ROM . . . . . . . . . . . . . . . . . . Identify Drive Data - General Configuration (Word 0) . . . . . . . . . . . . . . Identify Drive Data - Capabilities Word (49) . . . . . . . . . . . . . . . . . . . Contents of the Feature Register for Set Features Command . . . . . . . . . . . Set Feature Register Definitions . . . . . . . . . . . . . . . . . . . . . . . . . Feature Number Description for Set Feature Command . . . . . . . . . . . . . Example Mixed Mode CD-ROM Disc Layout . . . . . . . . . . . . . . . . . . Not Ready Error Reporting (by Command) . . . . . . . . . . . . . . . . . . . . MSF Address Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Error Conditions and Sense Keys . . . . . . . . . . . . . . . . . . . . . . . . . Commands that may cause delayed loads to occur . . . . . . . . . . . . . . . . Commands that will cause delayed loads to occur . . . . . . . . . . . . . . . . Commands that should not cause delayed loads to occur . . . . . . . . . . . . . Error Conditions and Sense Keys for Changer Mechanisms . . . . . . . . . . . Operation Code Types. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Typical Command Packet for Most Commands . . . . . . . . . . . . . . . . . Typical Command Packet for Some Extended Commands . . . . . . . . . . . . Operation Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Packet Commands Supported by CD-ROM Drives . . . . . . . . . . . . . . . . INQUIRY Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . INQUIRY Data Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Peripheral Device Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recommended Sense Key, ASC and ASCQ for Inquiry Command Errors. . . . Load / Unload Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Load/Unload or Optional Selection Operations . . . . . . . . . . . . . . . . . . recommended Sense Key, ASC and ASCQ for Load / Unload CD. . . . . . . . MECHANISM STATUS Command . . . . . . . . . . . . . . . . . . . . . . . Mechanism Status Parameter List . . . . . . . . . . . . . . . . . . . . . . . . . Mechanism Status Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Slot Table Response format . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recommended Sense Key, ASC and ASCQ for Mechanism Status . . . . . . . Mode Select Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recommended Sense Key, ASC and ASCQ for Mode Select Command Errors . Mode Sense command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 . 18 . 23 . 41 . 42 . 45 . 52 . 52 . 53 . 54 . 55 . 55 . 56 . 56 . 57 . 57 . 57 . 59 . 62 . 63 . 65 . 68 . 68 . 69 . 72 . 78 . 78 . 79 . 83 . 84 . 84 . 84 . 87 . 88 . 88 . 89 . 92 . 93 . 94 . 94 . 95 . 97 . 97 . 98 . 99 .100 .100 .101 .102 .103 .104 .105
Page 7
List of Tables
Table 53 Table 54 Table 55 Table 56 Table 57 Table 58 Table 59 Table 60 Table 61 Table 62 Table 63 Table 64 Table 65 Table 66 Table 67 Table 68 Table 69 Table 70 Table 71 Table 72 Table 73 Table 74 Table 75 Table 76 Table 77 Table 78 Table 79 Table 80 Table 81 Table 82 Table 83 Table 84 Table 85 Table 86 Table 87 Table 88 Table 89 Table 90 Table 91 Table 92 Table 93 Table 94 Table 95 Table 96 Table 97 Table 98 Table 99 Table 100 Table 101 Table 102 Table 103 Table 104 Page Control Field. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recommended Sense Key, ASC and ASCQ for Mode Sense Command Errors . . . Mode Parameter List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mode Page Codes for CD-ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . Mode Page Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mode Parameter Header. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CD-ROM Media Type Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CD-ROM Audio Control Mode Page Format . . . . . . . . . . . . . . . . . . . . . CDDA Output Port Channel Selection Codes. . . . . . . . . . . . . . . . . . . . . Attenuation Levels for Audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CD-ROM Parameters Page Format . . . . . . . . . . . . . . . . . . . . . . . . . . Inactivity Time Multiplier Values. . . . . . . . . . . . . . . . . . . . . . . . . . . Read Error Recovery Parameters Page Format . . . . . . . . . . . . . . . . . . . . Error Recovery Bit Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CD-ROM Error Recovery Descriptions . . . . . . . . . . . . . . . . . . . . . . . . CD-ROM Capabilities and Mechanical Status Page Format . . . . . . . . . . . . . Example Data Rates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PAUSE/RESUME Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recommended Sense Key, ASC and ASCQ for Pause/Resume Command Errors . . PLAY AUDIO Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recommended Sense Key, ASC and ASCQ for Play Audio Command Errors . . . Commands That Will Stop a Play or Scan Operation . . . . . . . . . . . . . . . . . Commands That Will Not Stop a Play or Scan Operation . . . . . . . . . . . . . . PLAY AUDIO MSF Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recommended Sense Key, ASC and ASCQ for Play Audio MSF Command Errors PLAY CD Command (LBA Form) . . . . . . . . . . . . . . . . . . . . . . . . . . PLAY CD Command (MSF Form) . . . . . . . . . . . . . . . . . . . . . . . . . . PLAY CD, Expected Sector Type Field Definition . . . . . . . . . . . . . . . . . . PLAY CD, Field Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recommended Sense Key, ASC and ASCQ for PLAY CD Command Errors . . . . PREVENT ALLOW MEDIUM REMOVAL Command . . . . . . . . . . . . . . . Actions for Lock / Unlock / Eject . . . . . . . . . . . . . . . . . . . . . . . . . . . Recommended Sense Key, ASC and ASCQ for Prevent/Allow Command Errors . . READ (10) Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recommended Sense Key, ASC and ASCQ for READ (10) Command Errors . . . READ (12) Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recommended Sense Key, ASC and ASCQ for READ (10) Command Errors . . . READ CD-ROM CAPACITY Command . . . . . . . . . . . . . . . . . . . . . . READ CAPACITY DATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recommended Sense Key, ASC and ASCQ for Read Capacity Command Errors . . READ CD Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . READ-CD, Expected Sector Type Field Definition . . . . . . . . . . . . . . . . . READ CD, Header(s) Code Field Definition . . . . . . . . . . . . . . . . . . . . . READ CD, Error Flag(s) Field Definition . . . . . . . . . . . . . . . . . . . . . . READ CD, Sub-channel Data Selection Field Definition . . . . . . . . . . . . . . Formatted Q-subcode Data (A Total of 16 Bytes) . . . . . . . . . . . . . . . . . . Number of Bytes Returned Based on Data Selection Field . . . . . . . . . . . . . . Recommended Sense Key, ASC and ASCQ for Read CD Command Errors. . . . . CD-DA (Digital Audio) Data Block Format . . . . . . . . . . . . . . . . . . . . . R-W Raw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . R-W De-Interleaved & Error Corrected. . . . . . . . . . . . . . . . . . . . . . . . Sub-channel R-W, Allowed Mode/Item Combinations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .105 .107 .108 .108 .108 .109 .109 .111 .112 .112 .113 .113 .114 .115 .115 .118 .121 .123 .123 .125 .126 .127 .127 .128 .129 .131 .131 .132 .132 .133 .135 .136 .136 .137 .138 .139 .140 .141 .141 .142 .143 .144 .144 .145 .145 .146 .147 .148 .149 .152 .152 .153
Page 8
List of Tables
Table 105 Table 106 Table 107 Table 108 Table 109 Table 110 Table 111 Table 113 Table 112 Table 114 Table 115 Table 116 Table 117 Table 118 Table 119 Table 120 Table 121 Table 122 Table 123 Table 124 Table 125 Table 126 Table 127 Table 128 Table 129 Table 130 Table 131 Table 132 Table 133 Table 134 Table 135 Table 136 Table 137 Table 138 Table 139 Table 140 Table 141 Table 142 Table 143 Table 144 Table 145 Table 146 Table 147 Table 148 Table 149 Table 150 Table 151 Table 152 Table 153 Table 154 Table 155 Table 156 READ CD MSF Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recommended Sense Key, ASC and ASCQ for Read CD MSF Command Errors. . . . . . READ HEADER Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . READ HEADER LBA Data Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . READ HEADER MSF Data Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CD-ROM Data Mode Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recommended Sense Key, ASC and ASCQ for Read Header Command Errors. . . . . . . Sub-channel Data Header Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . READ SUB-CHANNEL Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sub-channel Data Format Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CD-ROM Current Position Data Format (Format Code 01h). . . . . . . . . . . . . . . . . Audio Status Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ADR Sub-channel Q Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sub-channel Q Control Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Media Catalogue Number Data Format (Format Code 02h) . . . . . . . . . . . . . . . . . UPC Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Track International Standard Recording Code Data Format . . . . . . . . . . . . . . . . . Raw ISRC Format on the CD-ROM Disc . . . . . . . . . . . . . . . . . . . . . . . . . . . ISRC Format of Data Returned to Host . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recommended Sense Key, ASC and ASCQ for Read Sub-channel Command Errors . . . . READ TOC Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Read TOC Data Format (With Format Field = 00b) . . . . . . . . . . . . . . . . . . . . . Read TOC Data Format (With Format Field = 01b) . . . . . . . . . . . . . . . . . . . . . Read TOC Data Format (With Format Field = 10b) . . . . . . . . . . . . . . . . . . . . . TOC Track Descriptors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recommended Sense Key, ASC and ASCQ for Read TOC Command Errors . . . . . . . . Lead in Area (TOC), Sub-channel Q formats . . . . . . . . . . . . . . . . . . . . . . . . . Bit Definitions for the Control Field in Sub-channel Q . . . . . . . . . . . . . . . . . . . . Values for Control Field in Sub-channel Q . . . . . . . . . . . . . . . . . . . . . . . . . . Example Read TOC Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Values for Control Field in Read TOC . . . . . . . . . . . . . . . . . . . . . . . . . . . . Request Sense Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Request Sense Standard Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Field Pointer Bytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Field Pointer Bytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sense Key Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ASC and ASCQ Assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recommended Sense Key, ASC and ASCQ for Request Sense Command Errors . . . . . . SCAN Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Scan Starting Address in Logical Block Format . . . . . . . . . . . . . . . . . . . . . . . Scan Starting Address in AMIN, ASEC and AFRAME Format . . . . . . . . . . . . . . . Scan Starting Address in Track Number (TNO) Format . . . . . . . . . . . . . . . . . . . Recommended Sense Key, ASC and ASCQ for Scan Command Errors . . . . . . . . . . . SEEK Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recommended Sense Key, ASC and ASCQ for Seek Command Errors . . . . . . . . . . . SET CD-ROM SPEED Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recommended Sense Key, ASC and ASCQ for SET CD SPEED Command Errors . . . . STOP PLAY / SCAN CD-ROM Command . . . . . . . . . . . . . . . . . . . . . . . . . Recommended Sense Key, ASC and ASCQ for STOP PLAY CD-ROM Command Errors . START/STOP UNIT Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Start/Stop and Eject Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Actions for Eject/Load Disc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .155 .156 .157 .157 .158 .158 .159 .161 .161 .162 .162 .163 .163 .164 .165 .166 .166 .167 .167 .168 .169 .170 .171 .172 .173 .174 .175 .176 .176 .177 .178 .179 .180 .181 .182 .183 .184 .185 .187 .188 .188 .188 .189 .191 .191 .193 .193 .195 .195 .197 .197 .198
Page 9
Page 10
List of Figures
Figure 1 Figure 2 Figure 3 Figure 4 Figure 5 Figure 6 Figure 7 Figure 8 Figure 9 Figure 10 Figure 11 Figure 12 Figure 13 Figure 14 Figure 15 Figure 16 Figure 17 Figure 18 Example ATAPI Overlap Command Sequence . . . . . . . . . Packet Command with PIO Data In to Host. . . . . . . . . . . Overlapped Packet Command with PIO Data In to Host . . . . Packet Command with PIO Data Out from Host . . . . . . . . Overlapped Packet Command with PIO Data Out From Host . Timing of Command Packet Transfer . . . . . . . . . . . . . . Timing of Data and Status Transfer . . . . . . . . . . . . . . . State Diagram, Overlapped Operation . . . . . . . . . . . . . ATAPI Overlap, One ATA Device and One ATAPI Device . . DASP / PDIAG Sequence after Hardware Reset or Power On . CD-ROM Sector Formats . . . . . . . . . . . . . . . . . . . . Changer State Diagram . . . . . . . . . . . . . . . . . . . . . Read CD Data Stream Order . . . . . . . . . . . . . . . . . . Read CD Sub-channel, R-W (100b). . . . . . . . . . . . . . . Stop Play/Play Audio/Audio Scan/Pause/Resume Sequencing . Test Unit Ready State Diagram . . . . . . . . . . . . . . . . . CD-ROM Connectors (Rear View) . . . . . . . . . . . . . . . Device Configuration Jumper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 . 26 . 29 . 31 . 34 . 36 . 37 . 43 . 44 . 50 . 73 . 82 .150 .151 .196 .200 .201 .202
Page 11
Page 12
1.0 Introduction
The ATA/IDE interface has become a de facto industry standard for connection of disk drives in PCs. In the interest of simplicity and cost, the ATA/IDE interface was originally designed to support only a small subset of computer peripherals. The expanding use of multimedia, inexpensive program distribution on CD ROM, and faster and more powerful systems has created the need for enhancements to ATA. This specication is one of those enhancements and provides a simple and inexpensive CD-ROM interface through a superset of ATA.
1.1 Abstract
This document denes a standard method for interfacing to a CD-ROM Drive utilizing the existing ATA host computer hardware and cabling. This specication supplements the denitions of an ATA mass storage peripheral found in the ATA document. The ATAPI and CD-ROM interfaces described in this document are compatible with existing ATA hardware without any changes or additional pins.
1.2 Secretariat
The SFF Committee is an ad hoc group formed to address disk industry needs in a prompt manner. When formed in 1990, the original goals were limited to dening de facto mechanical envelopes for disk drives so they could t into laptop computers and other small products. In November 1992, the SFF Committee objectives were broadened to encompass areas other than mechanical form factors for drives, which needed prompt industry action. SFF Specications are narrow in scope, to reduce development time. The SFF Committee complements the formal standards process. Some industry needs cannot be addressed by standards because of timing, or charter, or some other consideration. This is a gap the Small Form Factor Committee lls. It is anticipated that most Specications will be Forwarded to an accredited standards body such as EIA (Electronic Industries Association) or ASC (Accredited Standards Committee) X3T10. They may be accepted for separate standards, or incorporated into other standards activities. The members decision to forward is based on a wide variety of factors, and a document can be forwarded at any stage in its development cycle. For example, if a proposal is under development within SFF, and a standards project begins in a similar area. The SFF members might submit the draft of the SFF Specication to the standards committee rather than operate a parallel effort. In the case of proposals submitted to SFF which now have a status of Fs, the proposal never became an SFF project or specication. Instead the proposal was forwarded to the appropriate standards body for further consideration. A copy of the proposal submitted to SFF remains available for historical purposes, however, the contents may no longer be valid. The latest documentation for forwarded SFF specications should be obtained from the committee the proposal was forwarded to. The best way to track standards activity is to subscribe to the document service for X3T10 subcommittees: CBEMA X3 Secretariat: 1250 Eye St. #200 Washington DC 20005 Ph: 202-737-8888 Fax: 202-638-4922
Copies of SFF Specications are available by FaxAccess or by joining the SFF Committee as an Observer ($300 or $400 overseas) or Member ($3,000). 14426 Black Walnut Ct Saratoga CA 95070 Ph: 408-867-6630x303 Fax: 408-867-2115 Email: [email protected] FaxAccess: 408-741-1600
Page 1
Revision 2.6 Proposed January 18, 1996 12:12 pm 1.3 Summary of SFF Principals
Documents created by the SFF Committee are expected to be submitted to accredited standards bodies such as EIA (Electronic Industries Association) or ASC (Accredited Standards Committee) X3T10. They may be accepted for separate standards, or incorporated into other standards activities. The principles of operation for the SFF Committee are not unlike those of an accredited standards committee. There are 3 levels of participation: - Attending the meetings is open to all, but taking part in discussions is limited to member companies, or those invited by member companies. - The minutes and copies of material which are discussed during meetings are distributed only to those who sign up to receive documentation. - The individuals who represent member companies of the SFF Committee receive documentation and vote on issues that arise. Votes are not taken during meetings, only guidance on directions. All voting is by letter ballot, which ensures all members an equal opportunity to be heard. Material presented at SFF Committee meetings becomes public domain. There are no restrictions on the open mailing of material presented at committee meetings. In order to reduce disagreements and misunderstandings, copies must be provided for all agenda items that are discussed. Copies of the material presented, or revisions if completed in time, are included in the documentation mailings. The sites for SFF Committee meetings rotate based on which member companies volunteer to host the meetings. For information on meeting dates and places, subscribe to the SFF E-mail reector.
Page 2
Funds received will be retained in escrow until earned and will be accounted for to the members of the SFF Committee. To join SFF, ll out the form below and indicate the method of payment. Name: Title: Company: Address: _______________________________ _______________________________ _______________________________ _______________________________ _______________________________ _______________________________ Phone: Fax: Email: _______________________________ _______________________________ _______________________________
Please register me as the company representative on the SFF Committee ($2,100 or $2,200 overseas fee includes documentation). Check Payable to SFF Committee is Enclosed: ____ Please Invoice me: ___ PO #: __________________ Signature: _____________________________________
Please register me to receive documentation on activities of the SFF Committee. Check Payable to SFF Committee: (POs Not Accepted) U.S. Overseas $300.00 $400.00
Signature: _____________________________________ Fax POs to: 408 867-2115 Mail Checks to: ..................... 14426 Black Walnut Ct. Saratoga, CA 95070
Page 3
Introduction Scope
This document is intended to be used with the ATA document. Its purpose is to highlight those areas of implementation in which the CD-ROM Interface and the ATA document differ. In addition, it indicates areas within the ATA document which are modied for operation in the CD-ROM environment. Both mandatory and optional specications are presented. In the event of a conict between one of the base documents (ATA / SCSI CD-ROM) and this document, the interpretation of this document shall prevail only if this document acknowledges that a conict exists between the documents. This document provides a description for the ATAPI Transport Protocol (TP), ATAPI Transport Mechanism (TM) as well as a CD-ROM Command Protocol (CP).
CD-ROM Commands
ATA Commands
ATA Hardware
PCMCIA Interconnects
1.6 Audience
This document is intended for use by Computer System, CD-ROM Peripheral, and CD-ROM chip set vendors.
Page 4
Section "4.0 ATAPI Overview" on page 17 Section "5.0 ATAPI Protocol" on page 21 Section "6.0 ATAPI Transport Mechanism" on page 49 section 8.0, "CD-ROM Model", on page 71 section 7.0, "CD-ROM ATA (Task File) Commands", on page 59 Section "10.0 CD-ROM Packet Commands" on page 87 Section "11.0 Physical Interface" on page 201 Annex A Digital Output Annex B Connectors Annex C Errata sheet for SFF-8020 rev 2.x
To simplify retrieval of this document via the SFF FaxAccess system, the individual sections of this document are available as individual SFF FaxAccess documents. Unless you have a plain paper fax machine with the ability to print 300 pages in a single fax, you should request the individual sections. Request SFF-8020 to receive the entire document or request any of the numbers between 8021 and 8028 to receive the individual section(s) identied in the table above.
Page 5
Introduction Patents
The developers of this specication have requested that holders of patents that may be required for the implementation of the specication, disclose such patents to the publisher. However, neither the developers nor the publisher have undertaken a patent search in order to identify which, if any, patents apply to this specication. No position is taken with respect to the validity of any claim or any patent rights that may have been disclosed. Details of submitted statements may be obtained from the publisher concerning any statement of patents and willingness to grant a license under these rights on reasonable and nondiscriminatory terms and conditions to applicants desiring to obtain such a license.
2.0a to 2.1 March 1995. Basic Overlap capability added. Many editorial changes.
2.1 to 2.2 April 1995. Proxy IRQ added. Interleaved DMA added. CHANGER STATUS, LOAD/UNLOAD CD added. Establishes a simple way for ATAPI tape and CD devices to manage built in low cost CHANGER mechanisms.
2.2 to 2.3 May 1995. Page 6 PLAY CD added. The PLAY CD command simplies playing audio and video to an external device (e.g. an IEC958 or EBU port). Register Shadowing and Single device clarications were added. INQUIRY Vital Product Data and Vital Product Data Parameters were deleted. PLAY AUDIO (12) was deleted. working draft ATAPI
2.3 to 2.4 July 1995 MECHANISM STATUS command replaces the Changer Status command. This command become mandatory for both changer and normal CD mechanisms. This command is used by non changer mechanisms to report the current state of the device (includes playing, scanning, idle...). Proxy Interrupt removed. Overlapped DMA removed. Interleaved DMA removed. Some clarications to the Changer commands. Many small editorial and clarication changes.
2.4 to 2.5 July 1995 The Opcode for the MECHANISM STATUS Command has been changed from B8h to BDh. The Opcode for the PLAY CD Command has been changed from B4h to BCh. The READ (12) has been added back into the specication. An ATAPI Version has been added to the INQUIRY Data. For conformance to ATAPI 2.5 the value returned is 2h. Further clarications to the Changer commands were made. Sub-channel data returned in the READ CD commands was limited to Audio tracks. Table 26 has been rearranged and corrected. Mechanism Status, CD Mechanism State information now allows the host to determine if a Play or Read operation is in progress and if the Audio or other ports are in use. The SRST will no longer require the drive to perform the DASP / PDIAG Master Slave Handshaking Protocol. The Identify Drive Data was brought in line with ATA.
2.5 to 2.6 November 1995 Clarication of Byte Count Register Usage for Packet Commands. Clarication of back-to-back data transfers SRST allowed to be used during Power Management of ATAPI Devices
Page 7
Error code returned when loading a slot with no disc present has been changed from 05/24 to 02/ 3A. Table 65, CD-ROM Capabilities and Mechanical Status Page Format, now denes bytes 2 and 3, for new CD media type functions. Clarication of CD-ROM Medium Type Codes, Table 56. Block Error Flag byte dened as the OR of all C2 Error Bytes. Table 120, ISRC Format, byte denitions have been changed. Added table for TOC TRACK DESCRIPTORS. Section 3.3.49, Track Relative Logical Address, has been removed. Bytes 2 and 3 of INQUIRY command changed to reserved. References to EVPD removed. READ TOC command - Format eld now includes Byte 2. READ TOC Data Format and MSF usage claried. Back-to-back data transfers sequence description added. State diagrams updated. SRST PDIAG sequence added. Changer functions for delayed load have been claried. Identify Drive Data has been claried. Identify, Additional length information has been claried. Reporting of Errors for Mode Select has been claried. The SSS and SDP bits in the Mode Sense Capabilites Page have been moved. Block Length returned for Read CD-ROM Capacity has been claried. Length of data returned for Read TOC commands have been claried.
Page 8
2.0 General
2.1 Overview
The primary objective of this Standard is to provide an inexpensive CD-ROM interface. The existing ATA does not provide an adequate command structure to support CD-ROM devices. Although the inclusion of a CD-ROM drive would compromise the performance of another disk on the same ATA Cable, this standard does addresses this through the use of overlapped operation.
Page 9
Page 10
3.0 Conventions
3.1 Document Conventions
Certain words and terms used in this document have specic meaning beyond the normal English meaning. These words and terms are dened either in this section or in the text where they rst appear. Names of signals, commands, statuses, and sense keys are in all uppercase (e.g. REQUEST SENSE). Lower case is used for words having the normal English meaning. Fields containing only one bit are usually referred to as the <name> bit instead of the <name> eld. Numbers that are not immediately followed by a lower case b or h are decimal (0xnn for Hexadecimal, where nn refers to two hexadecimal digits 0-9, A-F.)
Page 11
Revision 2.6 Proposed January 18, 1996 12:12 pm 3.3.4 ATA (AT Attachment)
ATA denes a compatible register set and a 40-pin connector and its associated signals.
Conventions Denitions
3.3.5 BCD
Binary coded decimal: The number system used on the physical CD-ROM and CD-DA media. Numbers that use this notation have the bcd sufx attached. A byte has two 4-bit values, each of which can have a value from 0 to 9. The maximum value is 99bcd (99 decimal). BCD is only used on the physical CD Media, and never to/from the host except when raw sub-channel data is returned in the data to the host. Example: 00 01 02 03... 08 09 10 11... 19 20 21... 98 99bcd.
3.3.6 Block
The term block refers to the data in one logical block; the number of bytes in a block is dened by the logical block length in the mode block descriptor.
3.3.8 CD-DA
Compact Disc-Digital Audio (CD-DA) is the standardized medium for recording digital/audio information. The Red Book denes CD-DA media.
3.3.9 CD-ROM
Compact Disc - Read Only Memory (CD-ROM) is the standardized medium for recording digitized audio and digital data. CD-ROM is used to describe media with digital data rather than discs that encode audio only. The ISO/IEC 10149 standard denes CD-ROM media.
3.3.12 Changer
Changer is a mechanical device which allows a single physical CD-ROM drive to load and unload multiple CD-ROM without user intervention.
Page 12
3.3.14 CIRC
Cross Interleaved Reed-Solomon Code (CIRC) is the error detection and correction technique used within small frames of audio or data. The CIRC bytes are present in all CD-ROM data modes. The error correction procedure which uses the CIRC bytes is referred to as the CIRC based algorithm. In most CD-ROM drives, this function is implemented in hardware.
3.3.18 Field
A eld is a group of one or more contiguous bits.
3.3.19 Frame
A frame is a physical sector on CD-ROM media or the F eld unit of a MSF CD-ROM address. The term frame is also used in the CD-ROM model to describe the amount of data received between synchronization patterns. Ninety-eight frames make a sector. This sort of frame is referred to as a small frame when the meaning is not clear from the context.
3.3.21 Index
An index is a subdivision of a CD-ROM track. A track can have from 1 to 99 index numbers. Index numbers within a track are sequential, starting with 1.
3.3.22 Invalid
Invalid refers to an illegal (reserved) or unsupported eld or code value.
Page 13
Revision 2.6 Proposed January 18, 1996 12:12 pm 3.3.23 LBA (Logical Block Address)
The LBA denes the addressing mode of the drive by the linear mapping of sectors from 0 to n.
Conventions Denitions
3.3.27 L-EC
Layered Error Correction (L-EC) is the error correction technique used with CD-ROM (data mode one) sectors. In such sectors, 276 bytes of the auxiliary data eld contain L-EC bytes. The algorithm that uses these bytes to perform error correction is often implemented in the drive rmware.
3.3.28 LUN
Logical Unit Number.
3.3.29 Mandatory
Mandatory indicates that a referenced item is required to claim compliance with this standard.
3.3.31 One
One represents a true signal value or a true condition of a variable.
3.3.32 Optional
Optional describes features which are not required by the standard. However, if any feature dened by the standard is implemented, it shall be done in the same way as dened by the standard. Describing a feature as optional in the text is done to assist the reader. If there is a conict between text and tables on a feature described as optional, the table shall be accepted as being correct. Page 14 working draft ATAPI
3.3.34 Page
Several commands use regular parameter structures that are referred to as pages. These pages are identied with a value known as a page code.
3.3.42 SAM
SCSI Architectural Model.
3.3.43 Reserved
Reserved bits, elds, bytes, and code values are set aside for future standardization. Their use and interpretation may be specied by future extensions to this or other standards. A reserved bit, eld, or byte shall be set to zero, or in accordance with a future extension to this standard. The recipient shall not check reserved elds. working draft ATAPI Page 15
Sector refers to the data contained by one frame time. (On CD-DA medium with two channels of audio this is 1/75th of a second). In the CD-ROM standard document the term block is used for this unit. There may be more than one logical block per sector. Similarly, a single logical block may map to multiple sectors.
3.3.45 Status
Status is one byte of information sent from the ATA CD-ROM to the host computer upon completion of each command.
3.3.46 Sub-channel
CD-ROM and CD-DA media have a main channel and a sub-channel. The sub-channel area has eight parts called P, Q, R, S, T, U, V, and W. The Q-sub-channel contains information useful to the controller and drive, such as the control eld and MSF addresses. The data rate of each sub-channel (P, Q, etc.) is 1/192nd of that of the main channel.
3.3.47 TOC
The table of contents has information on the type of disc and the starting address of the tracks. This information is encoded in the Q sub-channel.
3.3.48 Track
A track is a sub-division of the CD-ROM media. A disc has from one to ninety-nine tracks. The data within a track is always of the same type. A track can be either CD-ROM or CD-Audio. A disc can start at any track number.
3.3.51 Zero
Zero is a false signal value or a false condition of a variable.
Page 16
Page 17
Used
Code
BBK UNC
Error Register
IDNF ABRT TKONF AMNF DRDY
Status Register
DWF DSC CORR ERR
N N N M O O N M O1 N O M N2 M M M M O N N N N2 N2 N N2 N2 N2 N2 O1 N1 M N M O M N N N
DB DC DD E5 DE DF ED 90 50 EC E3 E1 91 00 A0 A1 08 A2 E4 C8 C9 22 23 C4 20 21 40 41 1x 7x EF C6 E6 E2 E0 E8 CA CB V V
V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V
Page 18
ATAPI CD-ROM Specication ATAPI Overview Table 2 - Generic Command and Status Usage for ATAPI Devices (Continued)
Command
Write long (w/retry) Write long (wo/retry) Write multiple Write same Write sector(s) (w/retry) Write sector(s) (wo/retry) Write verify Invalid command code
Used
Code
BBK UNC
Error Register
IDNF ABRT TKONF AMNF DRDY
Status Register
DWF DSC CORR ERR
N2 N2 N N N2 N2 N
32 33 C5 E9 30 31 3C
V V V V V V V V V V V
V V V V V V V V
V = valid on this command M = Mandatory and shall be supported by CD-ROM ATAPI Devices, as specied by the ATA Standard O = Optional for use by an ATAPI Device N = Not supported by ATAPI Devices (shall be Aborted by the ATAPI Device) Shaded = Commands are utilized by the ATAPI Devices
1. 2.
Although this command is Optional for ATAPI the ATA Standard specifies it as Mandatory. This command is specified as Mandatory for ATA, but shall NOT be supported by ATAPI Devices.
This standard will make use of many of the Standard SCSI Command Block denitions and Commands, but some of the commands that would normally be supported by a SCSI Device will not be supported for various reasons. These com-
Page 19
Send and receive diagnostics; the ATA EXECUTE DRIVE DIAGS command replaces these commands. Change denitions; as there is no SCSI, this command is nonsensical. Copy / Copy and Verify; no shared bus so this command cant be implemented. Compare; no shared bus, so this command cant be implemented. Read and Write Buffer; simplication. Log Sense and Select; simplication. Search Data; simplication. Verify; simplication.
4.5.2.1 Door Lock and Door Unlock vs. Prevent / Allow Medium Removal
There is a need to support a removable Device protocol that allows the Device to send a request to the Host to unlock and/ or Eject the media. There is already an existing methodology that provides this capability in ATA. The devicerequested eject is performed by setting the MCR bit in the Error Register and issuing an Error status to the Host (ERR bit in the Status Register) for all subsequent DOOR LOCK commands. The Host would then issue an ACKNOWLEDGE MEDIA CHANGE command to indicate that it will perform the Unlock / Eject sequence. The SCSI PREVENT/ ALLOW MEDIUM REMOVAL command only allows the host to Prevent the user from removing the media and not to signal when the user needs to remove the media. As such both the ATA and Packet (ATAPI) versions of the commands will be supported. When the ATA Door Lock is used, only the MCR bit will be presented to the host, which can then poll for this condition. When the Packet commands are used the MCR / Door Lock sequence will not be used. The Door Lock / Unlock command is optional, but if the MCR bit is set by the device, it shall be supported.
4.5.2.3 Initialize Drive Parameters and Set Features vs. Mode Sense and Mode Select
The INITIALIZE DRIVE PARAMETERS command does not contain a method to provide non ATA device conguration information, and will not be used. As such the Mode Select and Mode Sense from the SCSI standard shall be supported. The combination of Mode Select and Set Features commands contain all the necessary functionality and is most compatible with the existing BIOSes and OS Drivers.
Page 20
These new rules (protocol) only apply from after the issuance of the Packet Command, until the Completion Status has been read by the Host. After the Completion Status has been read, the Task File Register denitions and Protocol revert to the standard ATA denition.
5.1 Initialization
The ATAPI Device will respond just as dened in the ATA Standard. The DASP and PDIAG signals will only be utilized following a POR or hardware reset condition. Although the ATA SRST is not used for initialization by ATAPI devices, the Software reset dened in the ATA Standard shall be utilized.
Page 21
5.4 Byte Count Register (Cylinder Low/High) Usage for Packet Commands
This register is used to control the number of bytes the Host shall transfer at each DRQ. It is only used for the command parameter data being transferred via PIO and never for DMA or Command Packet bytes. Since the length of data that is actually transferred to and from an ATAPI Device using PIO is controlled by the Host, and since the ATAPI Device needs to be able to control the number of bytes transferred, an additional capability was needed. By using the Byte Count Register, a capability to transfer a variable number of bytes has been created. In ATAPI the Device indicates to the Host the number of bytes that shall be transferred on each DRQ Interrupt. Before transferring data, the Host shall read the 16-bit Byte Count Register, and comply with the length requested. Both the ATAPI Device and the Host will have their own byte counts and will transfer until those counts go to zero. For some commands, such as Mode Sense, the Host does not know the amount of data that will be transferred, and shall rely on the Byte Count supplied by the Device to transfer the correct amount of data. A further capability of the Byte Count Register is for the Host to signal to the ATAPI Device the maximum amount of data it can take in a single PIO DRQ packet and or the preferred packet size. For all commands that require data be transferred, the Host shall set the Byte Count Register to the desired length before issuing the Packet Command. This length shall be used by the ATAPI Device as the maximum size for each PIO or DMA data packet. The Device can choose to transfer packets smaller than those set by the host in the Byte Count Register. The Host has the capability to limit the number of bytes transferred on each DRQ. This limit is communicated to the Device in the Byte Count Register when the Packet Command is issued. The Release is intended to be used only on Block Boundaries and since this DRQ limit could then cause a Release in the middle of a block (if the limit is set smaller than the amount of data to be transferred for one sector), the minimum size of the DRQ limit shall be no smaller than the length of data to be transferred for one sector from the media. This limitation would only be valid for Media Access commands and not applicable to Mode Sense, Inquiry, etc. If the byte count is odd and the amount of data to be sent is larger than the limit, then the amount of data sent on each DRQ shall be less than the specied value as a drive shall not send odd length DRQs, except for the last transfer. Given this, the odd byte count transfer limit in the BC registers cannot be used. The device shall always round down the value to the next lower even number, unless the transfer length matches the actual total transfer length exactly. When a Read command is being processed, the ATAPI Device may wish to send all the data that is available in its buffers on just one DRQ Interrupt, with the limitation that only 65534 bytes may be transferred at one time.
Page 22
Usage (PIO)
Is used as a parameter to the Packet Command and is not used to control the Packet transfer. As a parameter to any Packet Command that will transfer parameter data, the Byte Count is used by the Host to communicate the maximum / preferred amount of data to be transferred on each DRQ. At each DRQ / DMARQ the count contains the number of bytes that the Host shall transfer from the Device. At each DRQ / DMARQ the count contains the number of bytes that the Host shall transfer to the Device.
Parameter Data from the Device to the Host (e.g. data from a Read, or Inquiry command) Parameter Data from the Host to the Device (e.g. data for a Write, or Mode Select command)
The ATAPI Device can transfer data whenever it wishes, and as such the Byte Count shall not be used. The ATAPI Device can transfer data whenever it wishes, and as such the Byte Count shall not be used.
If the Device requests more data be transferred than required by the command protocol, the Host shall pad when sending data to the Device, and dump extra data into a bit bucket when reading data from the Device. On odd byte transfers, the only permissible time for an actual Odd Byte Count value will be on the Last DRQ, intermediate DRQs shall contain even byte counts. The peripheral is not responsible for padding the data. Only the specic amount of data specied by the host byte count shall be transferred. Transfers exceeding the host byte count may cause data corruption.
5.5 Sector Count (ATAPI Interrupt Reason) Register Usage for Packet Commands
The Interrupt Reason Register contains an expanded denition of the ATA DRQ Status. When the DRQ is presented in the ATAPI Status Register for an ATAPI Packet Command, the contents of this register indicate if Packet Command or User Data shall be transferred and, if so, the direction of the transfer, as well as Release and Completion State information.
Page 23
Revision 2.6 Proposed January 22, 1996 2:56 pm 5.7 Overlapped Operation
Devices reporting support for Overlapped commands are capable of improving system performance by releasing the ATA bus to another device before completing a command in progress. For more detail see "5.17 Overlapped Command Operation" on page 39.
riv e eD
Command
Release
Service
bl
ve r
la
Command
Command
Status
Status
D riv e
Data
AT A
Optional Interrupt
Data
Optional Interrupt
Page 24
Status
pa
Data
Ca
ATAPI CD-ROM Specication ATAPI Protocol 5.8 Flow of Packet Command, PIO Data In to Host
This class includes commands such as Inquiry, Read etc. Execution includes the transfer of some unknown number of data bytes from the Device to the host. 1. 2. 3. 4. The host Polls for BSY=0, DRQ=0 then initializes the task le by writing the required parameters to the Features, Byte Count, and Drive/Head registers. The host writes the Packet Command code (A0h) to the Command Register. The Device sets BSY, before the next system read of the status register, and prepares for Command Packet transfer. When the Device is ready to accept the Command Packet, the Device sets CoD and clears IO. DRQ shall then be asserted simultaneous or prior to the de-assertion of BSY. Some Devices will assert INTRQ following the assertion of DRQ. See section 7.1.7.1, "General Conguration Word (0)", on page 63 for command packet DRQ types and other related timing information. After detecting DRQ, the host writes the 12 bytes (6 words) of Command to the Data Register. The Device(1) clears DRQ (when the 12th byte is written), (2) sets BSY, (3) reads Features and Byte Count requested by the host system, (4) prepares for data transfer. When data is available, the Device:(1) places the byte count of the data available into the Cylinder High and Low Registers, (2) sets IO and clears CoD, (3) sets DRQ and clears BSY, (4) sets INTRQ. After detecting INTRQ, the host reads the DRQ bit in the Status Register to determine how it shall proceed with the command. If DRQ= 0 then the device has terminated the command. If DRQ=1 then the host shall read the data (number of bytes specied in the Cylinder High/Low Registers) via the Data Register. In response to the Status Register being read, the Device negates INTRQ for both cases. The Device clears DRQ. If transfer of more data is required, the Device also sets BSY and the above sequence is repeated from step 7.
5. 6. 7. 8.
9.
10. When the Device is ready to present the status, the Device places the completion status into the Status Register, sets CoD, IO, DRDY and, prior to asserting INTRQ, clears BSY and DRQ. 11. After detecting INTRQ & DRQ=0 the host reads the Status Register and if necessary, the Error Register for the command completion status. The DRQ signal is used by the device to indicate when it is ready to transfer data, and is cleared during the last byte of data to be transferred. This applies for both Command Packet as well as normal read/write data.
Page 25
Host Computer
ATAPI Device
Clears BSY, Wait for BSY=0, DRQ=0 Initialize Task File Issue Packet Command
Sets BSY . . . Ready for Command Packet Set CoD, clear BSY, IO Assert DRQ/ INTRQ
Wait for DRQ or INTRQ Write Command Packet Bytes Negate DRQ after 12th (or 16th) byte Set BSY Perform command . . Set Byte Count in Cylinder High/Low Set DRQ, IO clear BSY, CoD Assert INTRQ Wait for INTRQ Read Status If DRQ = 1 Read Cylinder High/Low (Byte Count) Transfer Data Bytes Negate INTRQ Loop if more data to transfer Set BSY
Set status in Status Register Set IO, CoD, DRDY; Clear DRQ, BSY
Assert INTRQ
Negate INTRQ
Solid Lines indicate control ow, and dotted lines are actions taken but without direct control ow change occurring. This Diagram is for Visualization only, design to text.
Page 26
ATAPI CD-ROM Specication ATAPI Protocol 5.9 Flow of Overlapped Commands with Data Transfer In to Host
This class includes commands such as Inquiry, Read etc. Execution includes the transfer of some unknown number of data bytes from the Device to the host. 1. 2. 3. 4. The host Polls for BSY=0, DRQ=0 then initializes the task le by writing the required parameters to the Features, Byte Count, and Drive/Head registers. The OVERLAP bit in the ATAPI FEATURES Register must be set (1). The host writes the Packet Command code (A0h) to the Command Register. The Device sets BSY, before the next system read of the status register, and prepares for Command Packet transfer. When the Device is ready to accept the Command Packet, the Device sets CoD and clears RELEASE, IO. DRQ shall then be asserted simultaneous or prior to the de-assertion of BSY. Some Devices will assert INTRQ following the assertion of DRQ. See section 7.1.7.1, "General Conguration Word (0)", on page 63 for command packet DRQ types and other related timing information. After detecting DRQ, the host writes the 12 bytes (6 words) of Command to the Data Register. The Device(1) clears DRQ (when the 6th word is written), (2) sets BSY, (3) reads Features and Byte Count requested by the host system, (4) prepares for either Release of the ATA Bus or Data Transfer. If the Device has NOT been previously commanded to generate an interrupt after accepting the Packet Command Data, the Device may optionally not release the ATA Bus. In this case the device shall move directly from accepting the Command Packet Data to Data Transfer (Step 12. below) with DRQ=1, CoD=0 and IO = 0. This must also be done within the time reported the Identify Drive Data Command Data. See "7.1.7.16 Typical Time for the Release After Command Received (Word 71)" on page 67. If the Device has been commanded to generate an interrupt after processing the Packet Command, the Device shall always release the ATA Bus.
5. 6. 7.
8.
The Device (1) sets the RELEASE bit in the ATAPI STATUS Register, (2) clears IO, CoD, DRQ, (3) clears BSY. If the Device has been previously commanded to generate an interrupt when releasing the ATA Bus after receiving a Packet Command, the Device shall set INTRQ (1).
9.
Released State. ---- At this point the Host is free to select the other Device and Issue Commands ----- When the Host is Not using the Non Overlapped Device it selects the Overlap Device allowing it to interrupt ---
10. When the Device is ready to accept data, the Device (1) sets the SERVICE Bit in the ATAPI STATUS Register, (2) sets DRQ, (3) sets INTRQ. 11. After detecting INTRQ, the Host shall read the ATAPI STATUS Register to determine if the selected device is requesting service. If there is an overlapped command active on the non-selected device, the Host shall change the DRV Bit and read the ATAPI STATUS Register to determine if service is also needed on the non-selected Device. When the state of both Devices SERVICE bits are known the Host shall select one of the Devices, that is requesting service, and issue the Service (A2h) Command. The Host shall employ some fairness technique in choosing which Device will be serviced.
12. When the Device receives the Service Command or if moving directly from Packet Command Data to Data Transfer or from Back-to-Back Data Transfers, the Device (1) places the byte count of the data available into the Cylinder High and Low Registers, (2) clears SERVICE, (3) sets IO and clears CoD, (4) sets DRQ and clears BSY. If working draft ATAPI Page 27
the Device has been previously commanded to generate an interrupt when done processing the Service Command, the Device shall set INTRQ (1). 13. After detecting INTRQ or that BSY has been cleared, the host reads the DRQ bit in the Status Register to determine how it will proceed with the command. If DRQ= 0 then the device has either released the ATA Bus or terminated the command. If DRQ=1 then the host shall read the data (number of bytes specied in the Cylinder High/Low Registers) via the Data Register. In response to the Status Register being read, the Device negates INTRQ for both cases. 14. If no more data is to be transferred, proceed to step 19. 15. One of two possibilities exists, either Release or back-to-back data transfers. If Release, proceed to Step 17. 16. The device (1) sets Busy; (2) clears DRQ; and (3) the Release bit is cleared. The IO CoD bits remain the same. Proceed to step 12. 17. The Device (1) leaves BSY cleared, (2) clears DRQ. The RELEASE Bit shall have been set at the beginning of the last data transfer. The IO and CoD bits shall remain in the same state as for a normal data transfer, this distinguishes the Release from a Status state. 18. The above sequence is repeated from step 9. 19. The Device clears DRQ and sets BSY. 20. The Device places the completion status into the Status Register, sets CoD, IO, DRDY, clears RELEASE, BSY, and DRQ, prior to asserting INTRQ. 21. After detecting INTRQ & DRQ=0, the host reads the Status Register and if necessary, the Error Register for the command completion status. If the Host detects that the RELEASE Bit or that both IO and CoD are not set this is not a status state but a release state and should proceed accordingly. The DRQ signal is used by the device to indicate when it is ready to transfer data, and is cleared after (during) the last byte of data to be transferred. This applies for both Command Packet as well as normal read/write data. The RELEASE Bit is used to signal that the Drive has released the ATA Bus. The RELEASE Bit shall be qualied by the host with both BSY and DRQ cleared. If either BSY or DRQ is set, then the value in the RELEASE bit is undened.
Page 28
Host Computer Wait for BSY=0, DRQ=0 Initialize Task File Issue Packet Command
ATAPI Device Clears BSY, Sets BSY . . . Ready for Command Packet Set CoD, clear BSY, IO Assert DRQ/ INTRQ
Wait for DRQ or INTRQ Write Command Packet Bytes Negate DRQ after 12th (or 16th) byte Set BSY Decode and Check Command Set RELEASE, Clear IO & CoD Clear BSY and Optionally set INTRQ Perform command Issuing of Commands to Other Device Possible Here When done, reselect the overlap Device Clear DRQ & BSY When Ready to transfer data Set SERVICE and Assert INTRQ Negate INTRQ Set BSY Set Byte Count in Cylinder High/Low Set DRQ, IO clear BSY, CoD, SERVICE Optionally Assert INTRQ If Release after xfer, set RELEASE Negate INTRQ Loop if release & Loop if Back to Back more data to transfer
Wait for INTRQ Read Status If SERVICE set, Issue Service (A2h) Command
Wait for INTRQ or BSY being cleared Read Status If DRQ = 0 & RELEASE or if Cod & IO are not set If DRQ = 1 Read Cylinder High/Low (Byte Count) Transfer Data Bytes If DRQ = 0 and Cod & IO are set (Completion) Read Status
Set BSY. Set status in Status Register Set IO, CoD, DRDY; Clear DRQ, BSY Assert INTRQ
Solid Lines indicate control ow, and dotted lines are actions taken but without direct control ow change occurring. This Diagram is for Visualization only, design to text.
ATAPI Protocol Flow of Packet Command with PIO Data Out from the Host
5.10 Flow of Packet Command with PIO Data Out from the Host
This class includes commands such as Mode Select, Write etc. Execution includes the transfer of some known number of data bytes from the Host to the Device. 1. 2. 3. 4. The host Polls for BSY=0, DRQ=0 then initializes the task le by writing the required parameters to the Features, Byte Count, and Drive/Head registers. The host writes the Packet Command code (A0h) to the Command Register. The Device sets BSY, before the next system read of the status register, and prepares for Command Packet transfer. When the Device is ready to accept the Command Packet, the Device sets CoD and clears IO. DRQ shall then be asserted simultaneous or prior to the de-assertion of BSY. Some Devices will assert INTRQ following the assertion of DRQ. See section 7.1.7.1, "General Conguration Word (0)", on page 63 for command packet DRQ types and other related timing information. After detecting DRQ, the host writes the 12 bytes (6 words) of Command to the Data Register. The Device(1) clears DRQ (when the 12th byte is written), (2) sets BSY, (3) reads Features and Byte Count requested by the host system, (4) prepares for data transfer. When ready to transfer data, the Device:(1) sets the byte count (Cylinder High and Low Registers) to the amount of data that the Device wishes to be sent, (2) clears IO and CoD, (3) sets DRQ and clears BSY, (4) sets INTRQ. The Byte Count would normally be set to the number of bytes requested by the contents of the register at the receipt of the command, but may be any amount that the Device can accommodate in its buffers at this time. After detecting INTRQ, the host reads the DRQ bit in the Status Register to determine how it shall proceed with the command. If DRQ= 0 then the device has terminated the command. If DRQ=1 then the host shall write the data (number of bytes specied in the Cylinder High/Low Registers) via the Data Register. In response to the Status Register being read, the Device negates INTRQ for both cases. The Device clears DRQ and sets BSY. If transfer of more data is required, the above sequence is repeated from 7.
5. 6. 7.
8.
9.
10. When the Device is ready to present the status, the Device places the completion status into the Status Register, sets CoD, IO, DRDY and clears BSY, DRQ, prior to asserting INTRQ. 11. After detecting INTRQ & DRQ=0 the host reads the Status Register and if necessary, the Error Register for the command completion status. The DRQ signal is used by the device to indicate when it is ready to transfer data, and is cleared after (during) the last byte of data to be transferred. This applies for both Command Packet as well as normal read/write data.
Page 30
Host Computer
ATAPI Device
Clears BSY Wait for BSY=0, DRQ=0 Initialize Task File Issue Packet Command
Sets BSY . . . Ready for Command Packet Set CoD, clear BSY, IO Assert DRQ/ INTRQ
Wait for DRQ or INTRQ Write Command Packet Bytes Negate DRQ after 12th (or 16th) byte Set BSY Perform command . . Set Byte Count in Cylinder High/Low Set DRQ, clear BSY, CoD, IO Assert INTRQ Wait for INTRQ Read IRQ Status If DRQ = 1 Read Cylinder High/Low (Byte Count) Transfer Data Bytes Negate INTRQ Loop if more data to transfer Set BSY
Set status in Status Register Set IO, CoD, DRDY; Clear DRQ, BSY
Assert INTRQ
Negate INTRQ
Solid Lines indicate control ow, and dotted lines are actions taken but without direct control ow change occurring. This Diagram is for Visualization only, design to text.
Page 31
ATAPI Protocol Flow of Overlapped Commands with Data Transfer Out From Host
5.11 Flow of Overlapped Commands with Data Transfer Out From Host
This class includes commands such as Mode Select, Write etc. Execution includes the transfer of some unknown number of data bytes from the Host to the Device. 1. 2. 3. 4. The host Polls for BSY=0, DRQ=0 then initializes the task le by writing the required parameters to the Features, Byte Count, and Drive/Head registers. The OVERLAP bit in the ATAPI FEATURES Register must be set (1). The host writes the Packet Command code (A0h) to the Command Register. The Device sets BSY, before the next system read of the status register, and prepares for Command Packet transfer. When the Device is ready to accept the Command Packet, the Device sets CoD and clears RELEASE, IO. DRQ shall then be asserted simultaneous or prior to the de-assertion of BSY. Some Devices will assert INTRQ following the assertion of DRQ. See section 7.1.7.1, "General Conguration Word (0)", on page 63 for command packet DRQ types and other related timing information. After detecting DRQ, the host writes the 12 bytes (6 words) of Command to the Data Register. The Device(1) clears DRQ (when the 6th word is written), (2) sets BSY, (3) reads Features and Byte Count requested by the host system, (4) prepares for either Release of the ATA Bus or Data Transfer. If the Device has NOT been previously commanded to generate an interrupt after accepting the Packet Command Data, the Device may optionally not release the ATA Bus. In this case the device must move directly from accepting the Command Packet Data to Data Transfer (Step 12. below) with DRQ=1, CoD=0 and IO = 0. This must also be done within the time reported the Identify Drive Data Command Data. See "7.1.7.16 Typical Time for the Release After Command Received (Word 71)" on page 67. If the Device has been commanded to generate an interrupt after processing the Packet Command, the Device shall always release the ATA Bus.
5. 6. 7.
8.
The Device (1) sets the RELEASE bit in the ATAPI STATUS Register, (2) clears IO, CoD, DRQ, (3) clears BSY. If the Device has been previously commanded to generate an interrupt when releasing the ATA Bus after receiving a Packet Command, the Device shall set INTRQ (1).
9.
Released State. ---- At this point the Host is free to select the other Device and Issue Commands ----- When the Host is Not using the Non Overlapped Device it selects the Overlap Device allowing it to interrupt ---
10. When the Device is ready to accept data, the Device (1) sets the SERVICE Bit in the ATAPI STATUS Register, (2) sets DRQ, (3) sets INTRQ. 11. After detecting INTRQ, the Host shall read the ATAPI STATUS Register to determine if the selected device is requesting service. If there is an overlapped command active on the non-selected device, the Host shall change the DRV Bit and read the ATAPI STATUS Register to determine if service is also needed on the non-selected Device. When the state of both Devices SERVICE bits are known the Host shall select one of the Devices, that is requesting service, and issue the Service (A2h) Command. The Host shall employ some fairness technique in choosing which Device will be serviced.
12. When the Device receives the SERVICE Command or if moving directly from Packet Command Data to Data Transfer or from Back-to-Back Data Transfers, the Device (1) places the byte count of the data available into the Cylinder High and Low Registers, (2) clears SERVICE, (3) clears IO and CoD, (4) sets DRQ and clears BSY. If Page 32 working draft ATAPI
Page 33
ATAPI Protocol Flow of Overlapped Commands with Data Transfer Out From Host
Host Computer Wait for BSY=0, DRQ=0 Initialize Task File Issue Packet Command
ATAPI Device Clears BSY, Sets BSY . . . Ready for Command Packet Set CoD, clear BSY, IO Assert DRQ/ INTRQ
Wait for DRQ or INTRQ Write Command Packet Bytes Negate DRQ after 12th (or 16th) byte Set BSY Decode and Check Command Set RELEASE, Clear IO & CoD Clear BSY and Optionally set INTRQ Perform command Issuing of Commands to Other Device Possible Here When done, reselect the overlap Device Clear DRQ & BSY When Ready to accept data Set SERVICE and Assert INTRQ Negate INTRQ Set BSY Set Byte Count in Cylinder High/Low Set DRQ, clear IO, BSY, CoD, SERVICE Optionally Assert INTRQ If Release after xfer, set RELEASE Negate INTRQ Loop if release & Loop if Back to Back more data to transfer
Wait for INTRQ Read Status If SERVICE set, Issue Service (A2h) Command
Wait for INTRQ or BSY being cleared Read Status If DRQ = 0 & RELEASE or if Cod & IO are not set If DRQ = 1 Read Cylinder High/Low (Byte Count) Transfer Data Bytes If DRQ = 0 and Cod & IO are set (Completion) Read Status
Set BSY. Set status in Status Register Set IO, CoD, DRDY; Clear DRQ, BSY Assert INTRQ
Solid Lines indicate control ow, and dotted lines are actions taken but without direct control ow change occurring. This Diagram is for Visualization only, design to text.
Figure 5 - Overlapped Packet Command with PIO Data Out From Host
Page 34 working draft ATAPI
ATAPI CD-ROM Specication ATAPI Protocol 5.12 Flow of Non-Overlap DMA Data Commands
This class includes commands such as Read, Write etc. Execution includes the transfer of some unknown number of data bytes. 1. The host Polls for BSY=0, DRQ=0 then initializes the task le by writing the required parameters to the Features, Byte Count, and Drive/Head registers. The host must also initializes the DMA engine which will service the Devices requests. The host writes the Packet Command code (A0h) to the Command Register. The Device sets BSY and prepares for Command Packet transfer. When the Device is ready to accept the Command Packet, the Device sets CoD and clears IO. DRQ shall then be asserted simultaneous or prior to the de-assertion of BSY. Some Devices will assert INTRQ following the assertion of DRQ. See section 7.1.7.1, "General Conguration Word (0)", on page 63 for command packet DRQ types and other related timing information. After detecting DRQ, the host writes the 12 bytes (6 words) of Command to the Data Register. The Device(1) clears DRQ (when the 12th byte is written), (2) sets BSY, (3) reads Features and Byte Count requested by the host system, (4) prepares for data transfer. When ready to transfer data, the Device transfers via DMARQ/DMACK any amount that the Device can accommodate or has in its buffers at this time. This continues until all the data has been transferred. When the Device is ready to present the status, the Device places the completion status into the Status Register, and sets IO, CoD, DRDY and clears BSY, DRQ, prior to asserting INTRQ.
2. 3. 4.
5. 6. 7. 8.
After detecting INTRQ the host reads the Status Register for the command completion status.
5. 6. 7. 8.
Page 35
Revision 2.6 Proposed January 22, 1996 2:56 pm 5.14 Timing of Non-Overlap Packet Command
DRQ
Optional use of Interrupt
INTRQ
Page 36
ATAPI CD-ROM Specication ATAPI Protocol 5.15 Timing of Non-Overlap Data and Status Transfer
DRQ INTRQ
Flow
Page 37
Implementers Note: Early ATAPI Devices reporting CMD DRQ Types other than Accelerated may not be able to deassert DRQ before the next INTRQ. Host systems should therefore wait until the device asserts INTRQ before testing DRQ following the transfer of the last data word in a command or data packet.
See section 7.1.7.1, "General Conguration Word (0)", on page 63 for additional DRQ and other timing related information.
Page 38
Page 39
One of the capabilities that is the foundation for Overlapped operation is Release. There are three different forms of release used in this specication, after the receipt of a Command, after transferring some data and after the receipt of the Service Command. This specication will allow the device to implement these release operations either in the Firmware or in Hardware. Each of these release points has its own complexities. For example before the Task File Registers can be released after the receipt of a command, the Command and parameter information must be saved. Once the release is performed the contents of the Task File Registers can no longer be used by the Device. Although this save would seem simple, adding a complete set of shadow registers is expensive and will not allow the device to perform command queueing that may be proposed in future versions of this specication. For command queuing there must be separate registers/memory locations for each of the commands that can be queued. Thus if the device supports 16 commands, then 16 back to back commands could be sent to the device by the host faster then the device could process them. The device could have only one set of shadow registers and only automatically release the Task File Registers when moving the standard set into the shadow set, but this would incur delays for release when the second command was loaded if the rst had not yet been processed by the device. This would thus cause inconsistent delays until the Task File Registers were released. This specication assumes the device will consistently unload the information in the Task File Registers. Although holding the BSY longer in some cases would most likely be acceptable from a system performance standpoint, forcing the driver to poll for varying lengths of time is not. This specication forces the device to report the typical length of time that the device will require to unload and then Release the Task File Registers. Further to reduce the length of time that the Driver would have to poll for the Release, this specication has an Interrupt on Release Capability. The Interrupt on Release capability is enabled by the Host Driver using a SET FEATURES Command. To assist the Driver in determining if the Interrupt should be enabled the IDENTIFY DRIVE Command returns the length in microseconds that the device will use to Release for both an Overlapped Command and the Service Command. The Driver can then make its own decision to enable the interrupt. Thus if the Device reports 1000 s, the Driver could decide that it wants to poll and not enable the interrupt (Unlikely). The Release after the transfer of data shall be performed by hardware for all data transfer operations and as such there is no Interrupt generated after the release when transferring data. An optional Back-to-Back Data Transfer without a Release or IRQ can be used by a device.
Page 40
Addr esses
1F0 1F1 1F1 1F2 1F3 1F4 1F5 1F6 1F7 3F0 3F1 3F2 3F3 3F4 3F5 3F6 3F7
Register
Data Error Register Reserved for ATA Tag Interrupt Reason Tag for Command ATAPI Byte Count LSB ATAPI Byte Count MSB Drive Select Status Floppy A Status Floppy B Status Unused Floppy ID / Tape Control Floppy Controller Status Floppy Data Register Alternate Status Change / Drive Address
If the Status indicates an Error then this is Valid Reserved and not used by this Specication. Contains IO and CoD Contains the Tag for the command requiring Service Number of bytes that need to be transferred, both for PIO or for DMA Same before and after Service DRQ along with IO, Cod and Release determine the reason for the Service Request
Unused
Page 41
Revision 2.6 Proposed January 22, 1996 2:56 pm 5.17.3 Overlapped Operation, Legal Transitions
State To
Cmd Packet Release
Reason
Host Issues A0h Command ok, but no data is ready to be transferred
Sequence
BSY=1, CoD=1, IO=0, DRQ=1, BSY=0 BSY=1, DRQ=0, RELEASE=1, CoD=0, IO=0, BSY=0, INTRQ=1 if Interrupt on Release After Command Packet is enabled BSY=1, DRQ=0, CoD=0, IO=1/0, RELEASE=0, DRQ=1, BSY=0, INTRQ=1 RELEASE=1, DRQ=0 (BSY stays=0, CoD & IO Stay the same) BSY=1, DRQ=0, Byte Count = new count (CoD & IO stay the same), DRQ=1, BSY=0, INTRQ=1 SERVICE=1, DMA READY=0/1, INTRQ=1 BSY=1, IO=1/0, CoD=0, Byte Count=x, DRQ or DMARQ=1 (DMA READY stays the same), BSY=0, INTRQ=1 if Interrupt on Service Completion is enabled BSY=1, IO=1, CoD=1, RELEASE=0, DRQ=0, BSY=0, INTRQ=1 if Interrupt on Service Completion is enabled BSY=1, RELEASE=0, DRQ or DMARQ=0, CoD=1, IO=1, BSY=0, INTRQ=1
Notes
The time required by the Device to perform the Release is specied in Word 71 of the Identify Drive Data The assertion of DRQ shall occur within the time specied in word 71 of the Identify Drive Data The Release shall occur within 5s after transferring the last word of data The assertion of DRQ shall occur within 5s after transferring the last word of data from the previous data transfer Requests that the Host Arbitrate and Issue the Service Command.
Cmd Packet
Data Transfer
Data Transfer
Release
Data Transfer
Data Transfer
Command ok and Data is ready to be Sent/ Received # of bytes specied by the Byte Count Register has been transferred # of bytes specied by the Byte Count Register has been transferred Data or Status is ready for the Host Service Command issued and Data can be transferred
Release Service
Service
Status
This is not a recommended transition. After transferring the data the device should set BSY until the status is available BSY shall be set within 5s after transferring the last word of data if status will not be available within the 5s window
Data Transfer
Status
Page 42
Init IDLE Not processing any commands No Data to Transfer Cmd Packet Error or Completion Accept Command Packet from Host
A0 Received
Service Release Clear BSY Optional INTRQ Data Ready Service No Data to Transfer All Data Transferred Status is Ready Note: This path is used for Non-data transfer commands Service Wait for Service Cmd All Data Transferred Status is Ready Wait for Service Cmd Data Xfer Set DRQ or DMARQ and Interrupt Data Ready to Transfer
Status is available, Non-data transfer Command or and Error on the Command Packet
Page 43
Host ATAPI Wait for Not Busy Load Task File with Byte Count & Features Write A0 (Packet) Command [Wait for not Busy]
Set Busy Read Task File Values Set Interrupt Reason = Packet Clear Busy
Write six words of Packet Data Set Busy Get Packet Data Check Command for Validity Set Interrupt Reason = Release Clear Busy Set Interrupt
Check for Release Interrupt If there are ATA Disk Command(s) available: Set Task File Registers with Sector Count/Number/Cylinder/Head/DRV Issue the ATA Command (e.g. Read PIO) [Wait for Interrupt] Read the Status Transfer the Data Reselect the ATAPI Drive [Wait for Interrupt or New ATA Command] New ATA Command One Complete Command to an ATA Disk Set Busy Process Command Set DRQ, Clear Busy, Set Interrupt Clear DRQ
Read the Status and look for Service Bit Issue A2h (Service Command) [Wait for not Busy] Read the Interrupt Reason Register and Byte Count Transfer the Data Set Busy, Clear DRQ Set Status, Interrupt Reason = Status Clear Busy and Set Interrupt Set Busy Set Byte Count, Interrupt Reason = Data Set DRQ and Clear Busy
[Wait for Interrupt] Read the Interrupt Reason Register and look for Status
Figure 9 - ATAPI Overlap, One ATA Device and One ATAPI Device
Page 44
A = signal asserted, N = signal negated, x = does not matter which it is. Dark Gray are registers where ownership is controlled by BSY & DRQ. Light Gray are Registers that are not dened for use by ATA.
Addresses
CS1FX A A A A A A A A N N N N N N N N CS3FX N N N N N N N N A A A A A A A A DA2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 DA1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 DA0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Data Error Register Features ATAPI Interrupt Reason / Sector Count Sector Number ATAPI Byte Count LSB / Cylinder Low ATAPI Byte Count MSB / Cylinder High Drive Select Status Command Floppy A Status Unused Floppy B Status Unused Unused Floppy Digital Output Floppy ID / Tape Control RESERVED Floppy Controller Status RESERVED Floppy Data Register Alternate Status Device Control Change / Drive Address Unused
Page 45
Revision 2.6 Proposed January 22, 1996 2:56 pm 5.18 BIOS and ATAPI Driver Compatibility
This section discusses the IDE features and functions that shall be provided by the ATA Device to allow the BIOS and driver to be content.
6. 7.
Page 46
ATAPI CD-ROM Specication ATAPI Protocol 5.18.2.3 Other SRST Related Issues
A value other than 00h in the status register prior to the receipt of the rst ATAPI Command Packet from the host may cause ATAPI Devices to be incorrectly identied by pre-ATAPI host BIOS as an ATA-compatible disk drive. Initializing the task le upon receipt of an SRST works since only immediate commands will be executing when an ATA disk driver issues an SRST. To prevent interruption of ATAPI immediate commands which have not nished executing, the function of the DSC bit (i.e. command complete) shall be maintained. On a warm boot the BIOS and/or drivers may see a status of 00h or 10h, depending on whether or not an ATAPI immediate command completed at the same time the system performed the WARM BOOT. The signature placed in the task le following an SRST shall remain until the ATAPI device receives its rst ATAPI command, i.e., the ATAPI device will look NOT READY (DRDY=0). This will not affect the ATAPI device drivers ability to send ATAPI commands to the ATAPI device since it is not required to wait for DRDY=1. However, it will prevent ATA-compatible drivers, such as those performing power management, from sending commands to an ATAPI device until the ATAPI device has received its rst ATAPI command: ATAPI Packet Command, ATAPI Identify Device, ATAPI Soft Reset. ATAPI drivers wishing to use ATA power management commands must poll DRDY and, if it is not set, they must also look at the Cylinder registers for the ATAPI signature. If the signature is present, the ATAPI driver must issue the ATAPI device an ATAPI command, re-enabling DRDY, before it can issue an ATA Power management command. Operating systems wishing to use a common ATA power management driver must also be changed to perform this detection and recovery sequence, if they intend to power-manage ATAPI devices.
Page 47
Read or Identify Drive command to the device to force the ATAPI device to initialize its signature. Then wait for BSY=0 and re-verify the presence of the ATAPI signature. If there is still no ATAPI signature present, do not congure the device. ATAPI-aware BIOS and drivers should give special attention to managing congurations where ATAPI drivers share an IDE port address (Cable) with ATA IDE drives and their drivers. ATA IDE drivers frequently issue SRSTs to manage errors thereby causing ATAPI devices to clear DRDY as part of their SRST ATAPI signature initialization sequence. If the ATAPI driver already knows that the device it wishes to issue an ATAPI command to is an ATAPI device, then it need not take special action since issuing any of the ATAPI commands which do not require DRDY=1, will restore the ATAPI devices ability to accept ATA commands. If, however, the ATAPI driver wishes to issue an ATA command to an ATAPI device which has received an SRST from an ATA IDE driver, it should issue the ATAPI device an ATAPI Soft Reset to restore the ATAPI devices ability to accept ATA commands. Note that Newer BIOS detect the presence of a Drive (see "4.3 ATA Compatibility" on page 17) by using the IDENTIFY DRIVE command, but older BIOS use conguration information from outside the IDE/ATA interface. It has also been discovered that very old BIOS may issue an ATA READ command to detect the presence of an ATA IDE drive. Therefore, the ATA READ and IDENTIFY DRIVE commands shall be aborted by ATAPI Devices. It has also been discovered that some BIOS look at the status register to detect the presence of an ATA drive. Implementers Note: Implementers of ATAPI drivers which are intended to share a single cable with a disk and disk driver should ensure that the device has completed any issued commands prior to changing the DRV bit.
Page 48
The Reset Conditions above are listed in order of precedence. That is, Power On or Hardware Reset shall take precedence over ATAPI Soft Reset, which shall take precedence over ATA SRST, which shall take precedence over all other conditions.
5.
Page 49
Host Computer
Master (Drive 0)
Slave (Drive 1)
Hardware or Power On Reset Sets Busy, clears DASP & PDIAG Sets Busy, clears DASP & PDIAG Within 1ms assert DASP Waits up to 450 ms for Slave to assert DASP Within 30 seconds deassert Busy and assert PDIAG Wait up to 31s for PDIAG to be asserted
Clear Busy
To maintain Master / Slave compatibility with ATA disk drives and prevent detection of ATAPI Devices by non ATAPIaware BIOS, ATAPI Devices shall implement the following upon receipt of an ATA SRST: 1. 2. Perform SRST PDIAG sequence see "5.18.2 SRST Initialization Sequence" on page 46. Initialize the task le with Status = 00h or 10h, Error = According to SRST Sequence, Sector Count = 01h, Sector Number = 01h, Cylinder Low = 14h, Cylinder High =EBh and Drive/Head = 00h. Note that Device 0 will be seleted after the completion of the SRST sequence. The functionality of the DRDY and DSC bits shall be restored on the rst command following an SRST. Continue executing commands or play operations. Leave Mode settings or Set Feature settings unchanged. If a selected ATAPI Device detects SRST while its own DRQ or BSY is set (1), then the command in progress shall be stopped.
3. 4. 5. 6.
Page 51
Revision 2.6 Proposed January 22, 1996 2:56 pm 6.4 Physical Connection
The ATAPI Devices are selected by the Address eld in the Drive Select Register. When the ATAPI Device is attached along with an ATA Mass Storage Device, the ATAPI Device should be set as Device 1 and respond as a Slave.
Drive 0
Drive 1
Notes
Normal, no ATAPI Disk and CD-ROM for enhanced IDE system Legacy IDE System with only one cable Enhanced IDE with CDROM and a tape or two CDROMs
Device
0 1 1 0 0
Conguration
Dont Care Slave Present Slave Not Present Master Present Master Not Present
Action
Drive Bus Float Bus Shadow Float Bus This is not a recommended Conguration. Float Bus Drive Bus Drive Bus Float Bus Shadow Float Bus This is not a recommended Conguration. Float Bus Drive Bus
Slave
CSEL=M
CSEL=S
1 0 1 1 0 0
Dont Care Dont Care Slave Present Slave Not Present Master Present Master Not Present
Dont Care
Page 52
Device Control
Note: As the Signature is placed in these Registers, both Drive 0, and the non-existent Drive 1 will have an ATAPI Signature after a reset condition. To detect that Drive 1 does not exist will require a command be issued to Drive 1 and detecting the Abort.
Writing to this register writes to Drive 0s Drive Select Register This may be either be a complete duplicate of the Drive 0 Status (Shadowed) or Some of the bits are explicitly for Drive 1 (e.g. ERROR) Commands to Drive 1 will be aborted. Implementers Note: The Error bit will need to be set to abort a command to Drive 1, if the Status and Alternate Status Registers are complete shadows of Drive 0s Register, changing the DRV bit and reading the Status Register will also show an error condition that does not exist. It is recommended that the ERROR bit not be shadowed, but a separate bit for the non-existent drive 1.
ATA Command
Implementers Note: Drive 0 (Master) is able to determine if Drive 1 (Slave) is present, but Drive 1 cant determine if Drive 0 is present. Drive 0 will see the Slave drive assert the DASP- signal during the Reset procedure, which indicates that the Slave is present.
Page 53
Revision 2.6 Proposed January 22, 1996 2:56 pm 6.6 Register Mapping
Communication to or from the Devices is through I/O Registers that route 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-).
Reserved For SAM TAG Byte ATAPI Byte Count Register (bits 0-7) ATAPI Byte Count Register (bits 8-15) Drive Select ATA Command
1.
This register is obsolete. It is recommended that a device not respond to a read of this address. If a device does respond, it shall not drive the DDF signal.
With the exception of the Data Register, all the ATAPI registers are referenced using Byte (8 Bit) Read and Writes. The Data Register is ALWAYS referenced as a 16 bit word.
Page 54
D6
DRDY
D5
DMA READY or DF
D4
SERVICE or DSC
D3
DRQ
D2
CORR
D1
Reserved
D0
CHECK Read
DRDY, DSC, CORR and CHECK shall only be valid at the end of the completion of the command. Bit 7 Bit 6 Bit 5 BSY DRDY DMA READY / DF Busy is set whenever the drive has access to the Command Block. Indicates that the drive is capable of responding to an ATA command. This bit indicates that the device is ready to start a DMA data transfer. This bit is reserved for future more advanced overlap capabilities. Note that this bit is used for Drive Fault (DF) when Overlapped or Interleaved DMA operation is not enabled. Bit 4 SERVICE / DSC This bit signals that the device is requesting service or interrupt. It is set when the interrupt is requested and does not clear until the Service (A2h) command is issued. Note that this bit is used for the DSC function when the overlap function is not enabled. Bit 3 DRQ Data Request - Indicates that the device is ready to transfer a word or byte of data between the host and the drive. The information in the ATAPI Interrupt Reason will also be valid during a Packet Command when the DRQ is set. Indicates if a Correctable Error occurred. Indicates that an error occurred during execution of the previous command. The bits in the Error Register contains the Sense Key and Code.
Bit 2 Bit 0
CORR CHECK
D5
D4
D3
MCR
D2
ABRT
D1
EOM
D0
ILI Read
The sense key is dened in "Table 140 - Sense Key Descriptions" on page 183. Media Change Requested, is used and dened as in the ATA Standard. Aborted Command, is used and dened as in the ATA Standard. End Of Media Detected. Illegal Length Indication.
Page 55
D4
D3
D2
D1
OVERLAP
D0
DMA Write
Reserved for future enhancement. Any data for the Command will be transferred via the DMA interface. Note this does not apply for the Command Packet. The device may release the ATA bus before this command has completed. Release of the ATA bus is at the discretion of the device.
Bit 1
OVERLAP (Optional)
The Byte Count is used for PIO only. The count shall be set prior to the issuance of the Packet Command. The count contains the total transfer size for commands that transfer only one group of data (e.g. Mode Sense / Select, Inquiry) For commands that require multiple DRQ Interrupts (e.g. Read, or Write) the count is set to the desired transfer size. When any data is to be transferred, the ATAPI Device will set the Byte Count to the amount of data that the Host shall transfer and then issue the DRQ Interrupt. The contents of this register shall not be changed until the rst word is transferred to/ from the data register. Once the data transfer has been started, the device is allowed to change the contents of the byte count (to set up the next transfer).
Page 56
D4
D3
D2
RELEASE
D1
IO
D0
CoD Read
Bit 0
CoD
Command or Data. When this bit is zero then the information being transferred is user data, when one then the data is Command. Direction for the Information transfer, where in to the Host is indicated by a value of one and out to the device is zero. IO 0 1 1 0 1 DRQ 1 1 1 1 0 CoD 1 Command - Ready to Accept Command Packet Bytes 1 Message (Future) - Ready to Send Message data to Host 0 Data To Host- Send command parameter data (e.g. Read Data) to the host 0 Data From Host - Receive command parameter data (e.g. Write Data) from the host 1 Status - Register contains Completion Status
Bit 1
IO
Bit 2
RELEASE
Release indicates that the device has released the ATA bus before completing the command in progress.
Table 16 - ATAPI Drive Select Register (ATA Drive / Head Select Register)
D7
1
D6
Reserved
D5
1
D4
DRV
D3
D2
D1
D0
R/W
Bit 4
DRV
D5
D4
D3
1
D2
SRST
D1
nIEN
D0
0 Write
Bit 2
SRST
This bit is the Software Reset. The ATAPI Device shall follow the reset sequence for SRST dened in "6.3 ATAPI Implementation of ATA SRST" on page 50. There is also a new reset capability for ATAPI Devices utilizing a RESET COMMAND (see "6.2 ATAPI Soft Reset Command and Protocol" on page 50). This bit enables/disables the interrupt to the host. When nIEN=0 and the device is selected, INTRQ shall be enabled through a tri-state buffer. When nIEN=1 or the device is not selected, the INTRQ signal shall be in a high impedance state
Bit 1
nIEN
Page 57
Page 58
Table 18 - ATA Command and Status Usage for ATAPI CD-ROM Devices
Command used Code
BBK UNC
Error Register
IDNF ABRT TKONF AMNF DRDY
Status Register
DWF DSC CORR ERR
N M N N M N N N N M N1 N O M N1 M M M O N N N N N1 N N1 N1 N1 N1 N
DB 08 DC DD E5 DE DF 92 ED 90 50 EC E3 E1 91 00 A0 A1 A2 E4 C8 C9 22 23 C4 20 21 40 41 1x
V V V V V V V V V V V V V V V V V V V V V V V V V V V V V
ATAPI Soft Reset Boot - Post-boot Boot - Pre-boot Check Power Mode Door Lock Door Unlock Download Microcode Media eject Execute Drive Diagnostics Format Track Identify Drive Idle Idle Immediate Initialize Drive Parameters NOP ATAPI Pkt. Command ATAPI Identify Device Service Read Buffer Read DMA (w/retry) Read DMA (wo/retry) Read Long (w/retry) Read Long (wo/retry) Read Multiple Read Sector(s) (w/retry) Read Sector(s) (wo/retry) Read Verify Sector(s) (w/retry) Read Verify Sector(S) (wo/retry) Recalibrate
Page 59
CD-ROM ATA (Task File) Commands ATA (Task File) Command Implementation Requirements
Table 18 - ATA Command and Status Usage for ATAPI CD-ROM Devices (Continued)
Command used Code
BBK UNC
Error Register
IDNF ABRT TKONF AMNF DRDY
Status Register
DWF DSC CORR ERR
Seek Set Features Set Multiple Mode Sleep Standby Standby Immediate Write Buffer Write DMA (w/retry) Write DMA (wo/retry) Write Long (w/retry) Write Long (wo/retry) Write Multiple Write Same Write Sector(s) (w/retry) Write Sector(s) (wo/retry) Write Verify Invalid Command Code
N M N M O M N N N N1 N1 N N N1 N1 N
7x EF C6 E6 E2 E0 E8 CA CB 32 33 C5 E9 30 31 3C
V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V
V V V V V V V V V V V V V V V V V
V = valid on this command Y = Used by the CD-ROM ATAPI Drive, as specied by the ATA Standard N = Not supported by ATAPI CD-ROM Drives M = Mandatory for ATA Shaded = Commands utilized by the ATAPI CD-ROM Drive
1.
This command is specified as Mandatory for ATA, but shall NOT be supported by ATAPI Devices
Page 60
7.1.5 NOP
This command enables a host which can only perform 16-bit register accesses to check drive status. The drive shall respond as it does to an unrecognized command by setting Abort in the Error Register, Error in the Status Register, clearing Busy in the Status Register, and asserting INTRQ.
Page 61
Revision 2.6 Proposed January 22, 1996 2:56 pm 7.1.6 Packet Command
CD-ROM ATA (Task File) Commands ATA (Task File) Command Implementation Requirements
Bits
Description
General Conguration Cylinders Reserved Heads Number of unformatted bytes per track - vendor specic Number of unformatted bytes per sector - vendor specic Number of sectors per track Reserved Serial Number Vendor specic Vendor specic ECC bytes available Firmware revision (18 ASCII characters) Model Number (40 ASCII characters) Multiple Sector Command, Sector Count Reserved Capabilities: LBA bit shall be supported; DMA, IORDY, Overlap and Standby bits are optional. Reserved PIO Cycle Timing DMA Cycle Timing Reserved Fields in words 64-70 valid Fields in words 54-58 valid Current Cylinder/Heads/Sectors Current Capacity Reserved User Addressable Sectors Singleword DMA transfer mode active Single word DMA transfer modes supported
Used
Mandatory No No No No No No No Optional No No No Mandatory Mandatory No No Mandatory
Fixed/Variable
Fixed
Fixed
Fixed
50 51 52 53
15 - 2 1 0
54 - 56 57-58 59 60-61 62
15 - 8 7-0
No No No No Mandatory
Variable Fixed
Page 62
ATAPI CD-ROM Specication CD-ROM ATA (Task File) Commands Table 19 - Identify Drive, Fields Supported by CD-ROM (Continued)
Word
63 64 65 66 67 68 69 - 70 71 72 73 74 75 - 127 128 - 159 160 - 255
Bits
15 - 8 7-0 15 - 8 7-0
Description
Multiword DMA Transfer Mode Active Multiword DMA Transfer Modes Supported Reserved Advanced PIO Transfer Mode Supported Minimum Multiword DMA Transfer Cycle Time Per Word (ns) Manufacturers Recommended Multiword DMA Transfer Cycle Time (ns) Minimum PIO Transfer Cycle Time without Flow Control Minimum PIO Transfer Cycle Time with IORDY Flow Control Reserved (for advanced PIO support) Typical time (s) for release when processing an overlapped command Typical time (s) for release after receiving the service command Major Revision Number (0000h or FFFFh Device does not report version. Minor Version Number (0000h or FFFFh Device does not report version. Reserved Vendor Unique Reserved
Used
Mandatory Mandatory Mandatory Optional Optional Optional No Optional Optional Optional Optional No No No
Fixed/Variable
Variable Fixed Fixed Fixed Fixed Fixed Fixed Fixed Fixed Fixed Fixed
Optional Identify Drive words, which are not supported, shall be set to zero. The ATAPI Identify Device command shall not delay the transfer of the Identify Drive data by more than 200 ms after receipt of the command.
7.1.7.1 General Conguration Word (0) Table 20 - Identify Drive Data - General Conguration (Word 0)
Bit Byte
0 1
7/15
6/14
5/13
4/12
3/11
Reserved
2/10
1/9
0/8
This eld indicates the protocol in use by the device. 0Xb = ATA 10b = ATAPI 11b = Reserved This is reserved for future enhancement This eld indicates the device type. The peripheral types are described in "Table 40 - Peripheral Device Types" on page 94. Indicates that the device has removable media.
Bit 13
Reserved
Bit 7
Removable
Page 63
CD-ROM ATA (Task File) Commands ATA (Task File) Command Implementation Requirements
This eld indicates the command packet DRQ type used by this device. 00b = Microprocessor DRQ: ATAPI devices reporting Microprocessor DRQ assertion shall assert DRQ within 3ms of receiving the A0h ATAPI Packet Command. Implementers Note: Devices reporting Microprocessor DRQ require the device driver to poll for up to 3ms or accept the granularity of an available timer tick. These issues may result in undesirable system delays when used with multi-threaded OS drivers. 01b = Interrupt DRQ: ATAPI devices reporting Interrupt DRQ assertion shall assert INTRQ in conjunction with the assertion of the command packet DRQ. These devices shall assert DRQ within 10ms of receiving the A0h ATAPI Packet Command. 10b = Accelerated DRQ: ATAPI devices reporting Accelerated DRQ assertion shall assert DRQ within 50us of receiving the A0h ATAPI Packet Command. 11b = Reserved for future use.
This eld is unique for each protocol and is reserved for future use. This eld indicates the size of the command packets used by this device. 00b = 12 bytes (ALL CD-ROM) 01b = 16 bytes (Reserved for SAM Compliant Devices) 1Xb = Reserved for future use.
Page 64
ATAPI CD-ROM Specication CD-ROM ATA (Task File) Commands 7.1.7.5 Capabilities Word (Word 49) Table 21 - Identify Drive Data - Capabilities Word (49)
Bit Byte
0 1
7/15
6/14
5/13
4/12
3/11
2/10
1/9
0/8
Bit 8 Bit 9
This bit indicates that the Device supports the DMA mode of data transfer. Indicates that the Device supports the LBA form of addressing. The ATAPI Devices shall set this bit to one. Is used to indicate a devices ability to enable or disable the use of IORDY. If this bit is set to one, then the device supports the disabling of IORDY. This is used to help determine whether a device supports IORDY. If this bit is set to one, then the device supports IORDY operation. If this bit is zero then the device may support IORDY (this ensures backward compatibility.)
Bit 10
Bit 11
IORDY Supported
Bit 13
Overlap Operation Supported This device supports overlapped operations. Both the Release and Service protocol must be supported to report that the Device supports Overlap Operation. Reserved for Proxy Interrupt This device supports a shared interrupt technique. This bit is currently reserved for the Proxy Interrupt technique that may be dened in the future.
Bit 14
Bit 15
Reserved for Interleaved DMA This device will release BSY after transferring DMA data when DMA is used for an overlapped command This bit is currently reserved for an interleaved DMA capability that may be dened in the future.
CD-ROM ATA (Task File) Commands ATA (Task File) Command Implementation Requirements
When = 1, this bit guarantees that the elds contained in words 64-70 are valid.
7.1.7.12 Minimum Multi-word DMA Transfer Cycle Time per Word (Word 65)
Word 65 of the parameter information of the IDENTIFY DRIVE command is dened as the Minimum Multi-word DMA Transfer Cycle Time Per Word. This eld denes, in nanoseconds, the minimum cycle time that the device can support when performing Multi-word DMA transfers on a per word basis. Any device which supports Multi-word DMA Mode 1 or above shall support this eld, and the value in word 65 shall not be less than 150. If the device does not support this eld, the device shall return a value of zero in this eld.
7.1.7.13 Manufacturers Recommended Multi-word DMA Transfer Cycle Time (Word 66)
Word 66 of the parameter information of the IDENTIFY DRIVE command is dened as the Manufacturers Recommended Multi-word DMA Transfer Cycle Time. This eld denes, in nanoseconds, the minimum cycle time per word during a single sector host transfer while performing a multiple sector READ DMA or WRITE DMA commands over all locations on the media under nominal conditions. A cycle time less than this value may cause DMARQ to be deasserted at a rate which may reduce throughput without data corruption. Any device which supports Multi-word DMA Mode 1 or above shall support this eld, and the value in word 66 shall not be less than the value in word 65. If the device does not support this eld, the device shall return a value of zero in this eld.
7.1.7.14 Minimum PIO Transfer Cycle Time Without Flow Control (Word 67)
Word 67 of the parameter information of the IDENTIFY DRIVE command is dened as the Minimum PIO Transfer Without FLow Control Cycle Time. This eld denes, in nanoseconds, the minimum cycle time that, if used by the host, the device guarantees data integrity during the transfer without utilization of ow control. Any device which supports PIO Mode 3 or above shall support this eld, and the value in word 67 shall not be less than 180.
Page 66
If the device does not support this eld, the device shall return a value of zero in this eld.
7.1.7.15 Minimum PIO Transfer Cycle Time with IORDY Flow Control (Word 68)
Word 68 of the parameter information of the IDENTIFY DRIVE command is dened as the Minimum PIO Transfer With IORDY Flow Control Cycle Time. This eld denes, in nanoseconds, the minimum cycle time that the device can support while performing data transfers while utilizing IORDY ow control. Any device which supports PIO Mode 3 or above shall support this eld, and the value in word 68 shall not be less than 180. If the device does not support this eld, the device shall return a value of zero in this eld.
7.1.7.16 Typical Time for the Release After Command Received (Word 71)
Devices reporting support for overlapped operations shall report the typical (3sigma) time in microseconds that the device takes to release the bus after receipt of any A0 packet command. Note that for performance reasons a device may choose not to release the bus. Host systems may assume that the device has chosen not to release the bus after waiting three times the typical time reported in this word (See "5.17.1 Release" on page 40).
7.1.7.17 Typical Time for the Clearing of Busy After SERVICE Command (Word 72)
Devices reporting support for overlapped operations shall report the typical (3 sigma) time in microseconds that the device takes to clear Busy after receipt of a Service command (See "5.17.1 Release" on page 40).
Page 67
CD-ROM ATA (Task File) Commands ATA (Task File) Command Implementation Requirements
The Service command is used to restore the task le of a device which has released the ATA bus while processing an overlapped command. Unlike all other commands, a device processing an overlapped command which has its service bit set shall not abort the command in progress. Upon completion of the Service command the devices task le shall reect the correct status of the overlapped command. Upon receipt of the Service command the device shall clear the SERVICE bit before it de-asserts BSY (See "7.1.8 Service" on page 68). Completion of the Service Command is different than all other commands. It occurs when the state of the Task File registers has been restored to the state they would be in if no release had occurred. In this case, the Busy bit shall be cleared.
7
Set (1)/ Clear (0) Feature
3
Feature Number
Support
No No Mandatory No No No Mandatory1 Mandatory2 No Mandatory No No No No No No No
Page 68
ATAPI CD-ROM Specication CD-ROM ATA (Task File) Commands Table 23 - Set Feature Register Denitions (Continued)
Register Contents
BBh CCh DDh DEh
Support
No Mandatory1 Mandatory1 Mandatory2
1. 2.
Mandatory if the device reports more than 50 s in word 71 of the identify drive data and supports Overlap. Mandatory if the device reports more than 50 s in word 72 of the identify drive data and supports Overlap.
If the value in the register is not supported or is invalid, the drive posts an Aborted Command error. At power on, or after a hardware reset, the default mode is the same as that represented by values greater than 80h.
Default Setting
PIO & DMA Mode 0
If a device which supports this specication receives a Set Feature command with a Set Transfer Mode parameter and a Sector count Register value of 00000 000, it shall set its default PIO transfer mode. If a device which supports this specication receives a Set Feature command with a Set Transfer Mode parameter and a Sector Count Register value of 00000 001 and the device supports disabling of IORDY, then the device shall set its default PIO transfer mode and disable IORDY.
7.1.9.2 Enable Interrupt for Release after receipt of Command Packet (5Dh)
A setting of 5Dh will cause the device to issue an interrupt when the device has released the bus to the host.
Page 69
CD-ROM ATA (Task File) Commands ATA (Task File) Command Implementation Requirements
7.1.9.6 Disable Interrupt for Release after receipt of Command Packet (DDh)
A setting of DDh will cause the device not to issue an interrupt when the device has released the bus to the host.
7.1.10 Sleep
This command is the only way to cause the drive to enter Sleep Mode. The drive is spun down, and when it is stopped, BSY is cleared, an interrupt is generated, and the interface becomes inactive. The only way to recover from Sleep mode is with a software reset or a hardware reset.
NOTE: The use of hardware reset to recover from Sleep mode may be incompatible with continued operation of the host system.
A drive shall not power on in Sleep Mode nor remain in Sleep Mode following a reset sequence. If the drive is already spun down, the spin down sequence is not executed.
Page 70
Discs may contain either audio, data or a mixture of the two. "Table 25 - Example Mixed Mode CD-ROM Disc Layout" on page 72 gives an example of an audio-combined disc to illustrate the relationship between the logical block addresses reported and the MSF address encoded on the media.
NOTE: The term frame is used in two different ways in the CD-ROM media standard. The intended meaning can only be determined from the context. Whenever possible, this description replaces the larger data unit with the more familiar term sector. The primary exception to this policy is the use of frame when referring to the MSF address. In the MSF context, one frame (F eld unit) equals one sector. On a typical two channel CD-DA media, each frame (F eld unit) is played in 1/75th of a second.
Page 71
9000 9150 93006 1400 219756 30000 30075 30225 2639998 --2640009
4th track audio Pre-gap part 1 Pre-gap part 2 5th track data Last information Post-gap Lead-out track
1. 2.
Absolute MSF address repeated in the header eld of data blocks. The CD-ROM data mode is stored in the header of data tracks. This indicates that the block is part of a data pre-gap or post-gap (null), that this is a data block using the auxiliary eld for LEC symbols (ECC - CD-ROM data mode one), or that this is a data block using the auxiliary eld for user data (CD-ROM data mode two). 3. Table of contents information is stored in the sub-channel of lead-in area. The lead-in area is coded as track zero. Track zero and the initial 150 sector pre-gap (or audio pause) are not accessible with logical addressing. 4. Exact value returned by READ TOC command. 5. Value stored in table of contents with zero tolerance. 6. Value returned by READ TOC command plus or minus 75 blocks. 7. Value stored in table of contents plus or minus 75 sectors. 8. Minimum value returned by READ CD-ROM CAPACITY; exact value depends on encoding of this track and the lead out track and whether this is derived from the TOC data. 9. Value returned by READ TOC command; exact, if lead-out track is encoded as data, or plus or minus 75 blocks if encoded as audio. 10. Value stored in table of contents; exact, if lead-out track is coded as data, or plus or minus 75 blocks if coded as audio. 11. Lead-out track number is dened as 0AAh.
Page 72
Data
0 8
Sync Header 12 4
Data
Data
Spare 4
Note that the Spare data is normally returned with the user data SmallFrame(98)
SubChannel
A track may be viewed as a partition of the CD-ROM address space. A CD-ROM media contains from one to ninetynine tracks. All information sectors of a track are required to be of the same type (audio or data) and mode. Each change in the type of information on the disc requires a change in track number. A disc containing both audio and data would have at least two tracks, one for audio and one for data. The tracks of a CD media are numbered consecutively with values between 1 and 99. However, the rst information track may have a number greater than 1. Tracks have a minimum length of 300 sectors including any transition area that is part of a track. The CD-ROM media standards require transition areas between tracks encoded with different types of information. In addition, transition areas may be used at the beginning or end of any track. For audio tracks the transition areas are called pause areas. For data tracks, transition areas are called pre-gap and post-gap areas. See "Table 25 - Example Mixed Mode CD-ROM Disc Layout" on page 72 for an example. The IEC 908 and ISO/IEC 10149 standards specify minimum time durations for these areas. Maximum time durations are not specied. Transition areas are formatted and the logical address continues to increment through transition areas. Some media (i.e. discs with only one track) may not have transition areas. The means to determine the location of the transition areas is vendor or application-specic and is addressed by other standards (e.g. ISO 9660). CD-ROM is a unique device in the respect that some logical blocks on a disc may not be accessible by all commands. SEEK commands may be issued to any logical block address within the reported capacity of the disc. READ commands cannot be issued to logical blocks that occur in some transition areas, or to logical blocks within an audio track. PLAY commands cannot be issued to logical blocks within a data track. CD-ROM media have lead-in and lead-out areas. These areas are outside of the user-accessible area as reported in the READ CD-ROM CAPACITY data. The lead-in area of the media is designated track zero. The lead-out area is designated track 0AAh. The sub-channel Q in the lead-in track contains a table of contents (TOC) of the disc.
NOTE: The READ CD-ROM CAPACITY command returns the logical block address of the last block prior to the lead-out area. This location may be in a transition area and therefore not a valid address for read operations.
The table of contents gives the absolute MSF location of the rst information sector of each track. Control information (audio/data, method of audio encoding, etc.) for each track is also given in the TOC. However, the TOC does not distinguish between the different modes of data tracks (i.e. CD-ROM Data Mode 1 vs. CD-ROM Data Mode 2). The MSF locations of the beginning of data tracks in the TOC are required to be accurate; however, the TOC values for audio tracks have a tolerance of plus or minus 75 sectors. Information from the TOC can be used to reply to a READ CD-ROM CAPACITY command. When this is done, the drive implementor shall consider the possible tolerances and return a value that allows access to all information sectors. An index is a partition of a track. Pre-gap areas are encoded with an index value of zero. Pause areas at the beginning of audio tracks are also encoded with an index value of zero. The rst information sector of a track has an index value of one. Consecutive values up to 99 are permitted. Index information is not contained in the TOC. Not all sectors are encoded with the index value in the Q-sub-channel data (the requirement is 9 out of 10). A sector without an index value is presumed to have the same index as the preceding sector. Tracks and indexes are not dened to be any particular length, (except for a minimum track length of 300 sectors.) A CD disc may be created with a single information track that has a single index; or with 99 information tracks, each with 99 indexes. The sub-channel information which is part of each sector includes a track relative MSF location value giving the distance from the rst information sector of the track. On the media, this value decreases during the pre-gap area (sectors with index values of 0) and increases for the rest of the track. The data, returned by the READ SUB-CHANNEL command with MSF bit set to zero, converts this to a track relative logical block address (TRLBA). The TRLBA is continualPage 74 working draft ATAPI
Data, sub-channel and CIRC bytes are encoded with an 8-bit to 14-bit code; then three merging bits are added. The merging bits are chosen to provide minimum low-frequency signal content and optimize phase lock loop performance.
Page 75
A sector that contains CD-ROM Data Mode 2 data has the following format: 1. 2. 12-byte synchronization eld 4-byte CD-ROM data header Absolute M eld Absolute S eld Absolute F eld CD-ROM data mode eld 3. 2336-byte user data eld (2048 bytes of mode 1 data plus 288 bytes of auxiliary data)
NOTE Many drives are capable of returning CD-ROM data mode one data in a CD-ROM data mode two format. This allows the user to investigate the error detection and error correction codes. However data encoded as CD-ROM data mode two cannot be read as CD-ROM data mode one data.
This format is required to exist in at least nine out of ten consecutive sectors.
Page 76
The drive shall spin up and make the disc ready for media accesses when a new disc is detected. Any media access that occurs when the drive is not spinning shall spin the drive up and not generate an error.
Page 77
Opcode
12h A6h BDh 55h 5Ah 4Bh 45h 47h BCh 1Eh 28h A8h 25h BEh B9h 44h 42h 43h 03h BAh 2Bh BBh 4Eh 1Bh 00h
4
Reserved M Field S Field F Field
An MSF bit of zero requests that the logical block address format be used for the CD-ROM absolute address eld or for the offset from the beginning of the current track expressed as a number of logical blocks in a CD-ROM track relative address eld. Page 78 working draft ATAPI
An MSF bit of one requests that the MSF format be used for these elds. In certain transition areas, the relative MSF addresses are decreasing positive values. The absolute MSF addresses are always increasing positive values.The M, S, and F elds are expressed as binary numbers. Sensing Support for CD-Audio Commands If any commands related to audio operations are implemented, then all the AUDIO commands shall be implemented. To allow a method for the Host Computer to determine if audio operations are supported, an ATAPI CD-ROM Drive responding to a PLAY AUDIO command which has a transfer length of zero, with CHECK CONDITION status, and setting the sense key to ILLEGAL REQUEST does not support audio operations.
Sense Key
ILLEGAL REQUEST ILLEGAL REQUEST ILLEGAL REQUEST ILLEGAL REQUEST UNIT ATTENTION HARDWARE ERROR MEDIUM ERROR / HARDWARE ERROR RECOVERED ERROR ABORTED COMMAND
In the case of an invalid logical block address, the sense data information eld shall be set to the logical block address of the rst invalid address. In the case of an attempt to read a blank or previously unwritten block, the sense data information eld shall be set to the logical block address of the rst blank block encountered. The data read up to that block shall be transferred. There are other special error situations for CD-ROM devices. In the following cases the sense key shall be set to ILLEGIAL REQUEST and the additional sense code set to END OF USER AREA ENCOUNTERED ON THIS TRACK: 1. 2. 3. a post-gap area is encountered (i.e. a block with CD-ROM Data Mode 0); a pre-gap area is encountered (i.e. a block with index equal to 0); The information type (Data Mode vs. Audio etc.) changes.
When not performing audio playback, if the logical block address requested is not within a data track, the command shall be terminated with CHECK CONDITION status. The sense key shall be set to ILLEGIAL REQUEST and the additional sense code set to ILLEGAL MODE FOR THIS TRACK. This applies to audio-combined and audio media.
Page 79
Page 80
CD-ROM Mechanism
Eject Command
Load/Unload Command
CD-ROM Mechanism
Page 81
The Changer shall perform its initialization routine at power on or receipt of a hardware reset from the host. Initializing Changer is a process that refers to gathering the information that is necessary to respond to the MECHANISM STATUS Command. If a changer is in the process of Initializing when it receives a MECHANISM STATUS Command, it will respond immediately and provide no slot table information (Only the Header).
POR
No Cartridge Present EJECT Cartridge Command Idle but no Disc Drive will be NOT READY but the Changer State is Ready Wait for Disc Change or A Load Command Unit Attention If a Disc is added or removed
Cartridge Loaded
Power On Initialization
Disc 0 is present
Idle (State is Ready) Read TOC & Make Disc Ready to use
Move Specied Slot into the Play Position Load (State is Load In rogress)
LOAD Command
Page 82
If the device supports delayed loading and the selected disc is not in the play position, then the following commands shall load the selected disc into the play position before execution of the command:
Page 83
If the device supports delayed loading and the selected disc is not in the play position, then the following commands shall not move the selected disc into the play position:
Sense Key
ILLEGAL REQUEST ILLEGAL REQUEST ILLEGAL REQUEST UNIT ATTENTION HARDWARE ERROR
Page 84
In the case of an invalid Slot number, the sense data information eld shall be set to the Slot number of the rst invalid address. Attempts to eject a Disc if the changer type is cartridge and there is a Disc in the playing position shall be rejected with a Sense Key 05, (ILLEGIAL REQUEST) Sense Code 01 (MECHANICAL POSITIONING OR CHANGER ERROR).
Page 85
Page 86
10.1.1 Reserved
Reserved bits, elds, bytes, and code values are set aside for future standardization. Their use and interpretation may be specied by future extensions to this or other standards. A reserved bit, eld, or byte shall be set to zero, or in accordance with a future extension to this standard. The recipient shall not check reserved elds.
Description
Mandatory - Commands so designated shall be implemented in order to meet the minimum requirement of this Specication. Optional - Commands so designated, if implemented, shall be implemented as dened in this Specication. Vendor-specic - Operation codes so designated are available for vendor dened commands. See the vendor specications where compatibility is desired. Reserved - Operation codes so designated shall not be used. They are reserved for future extensions to this Specication.
Page 87
Revision 2.6 Proposed January 22, 1996 2:57 pm 10.2 ATAPI Command Packet Description
An ATAPI command is communicated by sending a Command Packet to the ATAPI CD-ROM Drive. For several commands, the Command Packet is accompanied by a list of parameters sent upon receiving an interrupt following the Command Packet being sent. See the specic commands for detailed information. The Command Packet always has an operation code as its rst byte. For all commands, if there is an invalid parameter in the Command Packet, then the ATAPI Device shall abort the command without altering the medium.
Operation Code Reserved (MSB) Logical Block Address (if required) (LSB) (MSB) Reserved Transfer Length (if required) or Parameter List Length (if required) or Allocation Length (if required)(LSB) Reserved Reserved Reserved Reserved
9 10 11
Operation Code Reserved (MSB) Logical Block Address (if required) (LSB) (MSB) Transfer Length (if required) or Parameter List Length (if required) or Allocation Length (if required) (LSB) Reserved Reserved Reserved
Page 88
2
Command Code
Note that the Group / Command code elds have been kept for backward compatibility and are not used by ATAPI.
10.3 Status
A Status byte shall be sent from the Drive to the Host Computer at the completion of each command unless the command is terminated by one of the following events: 1. 2. A hard reset condition. An unexpected event.
Page 89
Status is normally presented at the end of a command, but in some cases may occur prior to transferring the Command Packet. For a description of the Status Byte see "Table 11 - ATAPI Status Register (ATA Status Register)" on page 55.
1. Generally, the ATAPI CD-ROM Drive should adjust maximum-value fields down to the next lower supported value than the one specified by the Host Computer. Minimum-value fields should be rounded up to the next higher supported value than the one specified by the Host Computer. In some cases, the type of rounding (up or down) is explicitly specified in the description of the parameter. Page 90 working draft ATAPI
The ATAPI CD-ROM Drive may queue unit attention conditions. After the rst unit attention condition is cleared, another unit attention condition may exist (e.g. a power on condition followed by a microcode change condition). The unit attention condition shall persist, until the Host Computer clears the condition as described in the following paragraphs. If an INQUIRY command is received from an Host Computer with a pending unit attention condition, the ATAPI CDROM Drive shall perform the INQUIRY command and shall not clear the unit attention condition. If a REQUEST SENSE command is received from a Host Computer with a pending unit attention condition, then the ATAPI CD-ROM Drive shall either: 1. 2. report any pending sense data and preserve the unit attention condition, or, report the unit attention condition, may discard any pending sense data, and clear the unit attention condition.
If an Host Computer issues a command other than INQUIRY or REQUEST SENSE while a unit attention condition exists for that Host, the ATAPI CD-ROM Drive shall not perform the command and shall report CHECK CONDITION status unless a higher priority status as dened by the ATAPI CD-ROM Drive is also pending (e.g. BUSY).
Page 91
Opcode
12h A6h BDh 55h 5Ah 4Bh 45h 47h BCh 1Eh 28h A8h 25h BEh B9h 44h 42h 43h 03h BAh 2Bh BBh 4Eh 1Bh 00h BFh
Type
M O** M M M O* O* O* O M M M M M M M M M M O M O M M M
Reference
section 10.8.1 on page 93 section 10.8.2 on page 97 section 10.8.3 on page 99 section 10.8.4 on page 103 section 10.8.5 on page 105 section 10.8.7 on page 123 section 10.8.8 on page 125 section 10.8.9 on page 128 section 10.8.10 on page 131 section 10.8.11 on page 135 section 10.8.12 on page 137 section 10.8.13 on page 139 section 10.8.14 on page 141 section 10.8.15 on page 143 section 10.8.16 on page 155 section 10.8.17 on page 157 section 10.8.18 on page 161 section 10.8.19 on page 169 section 10.8.20 on page 179 section 10.8.21 on page 187 section 10.8.22 on page 191 section 10.8.23 on page 193 section 10.8.24 on page 195 section 10.8.25 on page 197 section 10.8.26 on page 199
Key: M = command implementation is mandatory. O = command implementation is optional. * = indicates a PLAY command. If any of the PLAY commands (indicated by an * in the type column) are implemented, all the PLAY commands shall be implemented by the ATAPI CD-ROM Drive. ** = indicates a Changer command. If any of the Changer commands (indicated by an ** in the type column) are implemented, all the Changer commands shall be implemented by the ATAPI CD-ROM Drive. Note that currently only the Load/Unload command has been dened.
Page 92
Operation code (12h) Reserved Reserved Reserved Allocation Length Reserved Reserved Reserved Reserved Reserved Reserved Reserved
Reserved
The INQUIRY command shall return CHECK CONDITION status only when the ATAPI CD-ROM Drive cannot return the requested INQUIRY data. The INQUIRY data should be returned even though the peripheral device may not be ready for other commands. If an INQUIRY command is received with a pending unit attention condition (i.e. before the ATAPI CD-ROM Drive reports CHECK CONDITION status), the ATAPI CD-ROM Drive shall perform the INQUIRY command and shall not clear the unit attention condition.
Page 93
Revision 2.6 Proposed January 5, 1996 7:21 pm Table 39 - INQUIRY Data Format
Bit Byte
0 1 2 3 4 5 6 7 8 15 16 31 32 35 36 55 56 95 96 n
6
Reserved
Peripheral Device Type RMB Reserved ISO Version ECMA Version ANSI Version (00) ATAPI Version Response Data Format Additional Length (Number of bytes following this one) Reserved Reserved Reserved Vendor Identication Product Identication Product Revision Level Vendor-specic Reserved Vendor Specic Parameters
The device-type elds identies the device. It is dened in "Table 40 - Peripheral Device Types" on page 94.
Description
Direct-access device (e.g. magnetic disk) Reserved CD-ROM device Reserved Optical memory device (e.g. some optical disks) Reserved Unknown or no device type
The Peripheral Device Type shall be set to 05h to indicate a CD-ROM Device. A Removable Medium Bit (RMB) of zero indicates that the medium is not removable. A RMB bit of one indicates that the medium is removable. CD-ROM Devices should always report Removable.
Page 94
The usage of non-zero code values in the ISO version and ECMA version elds are dened by the International Organization for Standardization and the European Computer Manufacturers Association, respectively. The ANSI-approved version eld must contain a zero to comply with this version of the Specication. The ATAPI Version eld must contain 02h to comply with this version of the Specication. A response data format value of 01h indicates that the data shall be in the format specied in this Specication. Response data format values greater than one are reserved. The Additional Length eld shall specify the length in bytes of the parameters. If the allocation length of the Command Packet is too small to transfer all of the parameters, the additional length shall not be adjusted to reect the truncation. ASCII data elds shall contain only graphic codes (i.e. code values 20h through 7Eh). Left-aligned elds shall place any unused bytes at the end of the eld (highest offset) and the unused bytes shall be lled with space characters (20h). Right-aligned elds shall place any unused bytes at the start of the eld (lowest offset) and the unused bytes shall be lled with space characters (20h). The Vendor Identication eld contains 8 bytes of ASCII data identifying the vendor of the product1. The data shall be left aligned within this eld. The Product Identication eld contains 16 bytes of ASCII data as dened by the vendor. The data shall be left-aligned within this eld. The Product Revision Level eld contains 4 bytes of ASCII data as dened by the vendor. The data shall be left-aligned within this eld.
Table 41 - Recommended Sense Key, ASC and ASCQ for Inquiry Command Errors
Sense Key
05 05
ASC
20 24
ASCQ
Description of Error INVALID COMMAND OPERATION CODE INVALID FIELD IN COMMAND PACKET
1. It is intended that this field provide a unique vendor identification of the manufacturer of the ATAPI CD-ROM Drive. In the absence of a formal registration procedure, X3T9.2 maintains a list of vendor identication codes in use. Vendors are requested to voluntarily submit their identication codes to X3T9.2 to prevent duplication of codes. working draft ATAPI Page 95
Page 96
Reserved
Operation code (A6h) Reserved Reserved Reserved Reserved Reserved Reserved Reserved SLOT Reserved Reserved Reserved
Immed
LoUnlo
Start
An immediate (Immed) bit of one indicates that the target shall return status as soon as the command descriptor block has been validated. An Immed bit of zero indicates that the status shall not be returned until the operation has been completed. A Start bit of one requests the Device be made ready for use. A Start bit of zero requests that the Device be stopped (media cannot be accessed by the Host Computer).
Start
0 1 0 1
Operation to be Performed
Abort any Prior Changer Command (Stop) Reserved Unload Media. The SLOT Parameter is ignored for this operation.
Either Move the Disc in the selected SLOT to the play position or select the SLOT specied for use with future Media Access Commands
The SLOT eld indicates the Slot to be loaded. Changers compatible with the Bootable CD-ROM specication should always initialize (Load) Slot 0 on Power On or Bus Device Reset. Any attempt to Load or Unload a Disc when the Drive does not support that capability shall result in an error condition being reported to the Host (Sense key 05 ILLEGAL REQUEST, Sense Code 24 INVALID FIELD IN COMMAND PACKET.) Loading when the slot does not contain a Disc will be rejected with a Sense Key 02 (NOT READY) and Sense Code 3A (MEDIUM NOT PRESENT). When this error is returned there are two possible actions by the CD Changer Device. If the device reports Software Slot Selection (SSS) = 1, then the slot specied shall be selected for use. If the device reports working draft ATAPI Page 97
SSS = 0 then the previously used slot shall continue to selected for use. If the drive is capable of caching data then a delayed load of a disc into the playing position can be supported. If delayed loading of a disc into the playing position is supported, the device SHALL have previously cached the TOC data from that disc. If the device has not read the TOC for a disc that is being loaded into the playing position, then delayed loading SHALL not be performed and the disc SHALL be loaded into the playing position immediately. If Caching of TOC data has been performed and the loading of the Disc into the playing position is delayed, then the drive SHALL report that the Disc is ready, even though the Disc is not spinning and installed in the playing position. In all cases the behavior seen by the host (other than a longer subsequent media access latency) shall not be different between delayed and immediate loading of a disc. Note that an UNIT ATTENTION Condition shall not be generated when discs are loaded or unloaded from the playing position. Unloading when the Play Position does not contain a Disc will be rejected with a Sense Key 05 (ILLEGAL REQUEST) and Sense Code 24 (INVALID FIELD IN COMMAND) for the Slot Byte.
Table 44 - recommended Sense Key, ASC and ASCQ for Load / Unload CD
Sense Key
02 05 05 05 06 06
ASC
05 20 24 01 28 29
ASCQ
Description of Error MEDIA LOAD OR EJECT FAILED INVALID COMMAND OPERATION CODE INVALID FIELD IN COMMAND PACKET MECHANICAL POSITIONING OR CHANGER ERROR NOT READY TO READY TRANSITION POWER ON, RESET OR BUS DEVICE RESET OCCURRED
Page 98
ATAPI CD-ROM Specication MECHANISM STATUS Command 10.8.3 MECHANISM STATUS Command
The MECHANISM STATUS command requests that the ATAPI CD-ROM Drive respond with the current status of the CD Device, including any Changer Mechanism that adheres to this specication. This command is intended to provide information to the Host about the current operational state of the Device. The CD Devices take operational direction from both the Host and the user (Person). Movement of media in/out of the device as well as Play type operations are at the whim of the user. This command has been provided to allow the Host to know what as transpired at the user level.
MSB
Operation code (BDh) Reserved Reserved Reserved Reserved Reserved Reserved Reserved Allocation Length LSB Reserved Reserved
The Allocation Length eld species the maximum length in bytes of the Slot Table Data that shall be transferred from the ATAPI CD-ROM Drive to the Host Computer. A parameter list length of zero indicates that no data shall be transferred. This condition shall not be considered as an error. The ATAPI CD-ROM Drive shall terminate the command with CHECK CONDITION status if the parameter list length results in the truncation of any Mechanism Status header, or Slot Table page. The sense key shall be set to ILLEGAL REQUEST, and the additional sense code shall be set to PARAMETER LIST LENGTH ERROR. Note: In the future, this error may be removed.
Page 99
The Mechanism Status List contains a header, followed by zero or more xed-length Slot Tables. If the device does not support the changer commands, then the number of slot tables returned to the host shall be zero.
Each Slot Table contains the a slot number and status information.
7
Fault MSB
2
Current Slot Reserved
LSB MSB Number of Slots Available Length of Slot Table(s) LSB Slot Tables (0-n)
Bit 0-4
Current Slot
This eld indicates the current Changer Slot selected. Changers compatible with a Bootable CD-ROM specication/standard, should always initialize (Load) Slot 0 on Power On or Bus Device Reset. This value shall only be changed when a Load Command is processed. Operations initiated by a user shall not cause this value to change. If the device is not a changer, then this eld is reserved. This eld indicates the current state of the changer. If the device is not a changer, then this eld is reserved. 0h = Ready 1h = Load in Progress 2h = Unload in Progress 3h = Initializing
Bit 5-6
Changer State
Bit 7
Fault
This bit indicates that the changer failed to complete the operation reported in the Changer State eld. If the device is not a changer, then this bit is reserved.
Page 100
The Current LBA value returns the location that was last used while reading or playing. Once a Read or Play operation has been completed the value of this eld may be undened. While a Read or Play is in progress this eld will contain the LBA of the current block being processed. The Number of Slots Available eld shall return the number of physical Slots that the device supports. The Length of Slot Tables eld species the length in bytes of the all the slot information that follows (e.g. for a 2 slot device this value would be 8).
7
Disc Present (Optional)
0
Change (Mandatory)
1 2 3
Bit 0
Change
Change indicates that the Disc in that slot has been changed since the last time the Disc was loaded. This bit reports the presence of a Disc in a Slot, or if the Disc for a given Slot is in the Playing Position. A value of 1 indicates the Disc is present, and 0 indicates that it is not. SDP=0 Changer devices may not support the capability of reporting the presence of a Disc in each of the slots after reset or a cartridge change. In this case the Device must report this in the capabilities mode page (See "10.8.6.4 CD-ROM Capabilities and Mechanical Status Page" on page 118 Supports Disc Present Reporting bit (SDP)). In this case the device shall report that ALL Discs are present, until the device can determine that there is no Disc present (i.e. when a Load Command is processed for an empty slot). If the Changer device does support the reporting of the Disc Present then this bit shall be valid for all slots. It is not acceptable for the device to actually load and unload each slot to compute this information.
Bit 7
Disc Present
SDP=1
Page 101
Table 49 - Recommended Sense Key, ASC and ASCQ for Mechanism Status
Sense Key
05 05 05 05 06 06
ASC
01 1A 20 26 28 29
ASCQ
Description of Error MECHANICAL POSITIONING OR CHANGER ERROR PARAMETER LIST LENGTH ERROR INVALID COMMAND OPERATION CODE INVALID FIELD IN PARAMETER LIST NOT READY TO READY TRANSITION POWER ON, RESET OR BUS DEVICE RESET OCCURRED
Page 102
ATAPI CD-ROM Specication MODE SELECT Command 10.8.4 MODE SELECT Command
The MODE SELECT command provides a means for the Host Computer to specify medium, or peripheral device parameters to the ATAPI CD-ROM Drive. Host Computers shall issue MODE SENSE prior to each MODE SELECT to determine supported pages, page lengths, and other parameters.
Reserved
Operation code (55h) 1 Reserved Reserved Reserved Reserved Reserved Parameter List Length (MSB) Parameter List Length (LSB) Reserved Reserved Reserved
Reserved
SP
A Save Pages (SP) bit of zero indicates the ATAPI CD-ROM Drive shall perform the specied MODE SELECT operation, and shall not save any pages. An SP bit of one indicates that the ATAPI CD-ROM Drive shall perform the specied MODE SELECT operation, and shall save to a non-volatile vendor-specic location all the savable pages. If an ATAPI CD-ROM Drive supports saved pages, it shall save only one copy of the page. The SP bit is optional, even when mode pages are supported by the ATAPI CD-ROM Drive. Pages that are saved are identied by the parameter savable bit that is returned in the page header by the MODE SENSE command. If the PS bit is set in the MODE SENSE data then the page shall be savable by issuing a MODE SELECT command with the SP bit set. If the ATAPI CD-ROM Drive does not implement saved pages and the SP bit is set to one, the command shall be terminated with CHECK CONDITION status. The sense key shall be set to ILLEGAL REQUEST, and the additional sense code set to INVALID FIELD IN COMMAND PACKET. The Parameter List Length eld species the length in bytes of the mode parameter list that shall be transferred from the Host Computer to the ATAPI CD-ROM Drive after the Command Packet is transferred. A parameter list length of zero indicates that no data shall be transferred. This condition shall not be considered as an error. The ATAPI CD-ROM Drive shall terminate the command with CHECK CONDITION status if the parameter list length results in the truncation of any mode parameter header, or mode page. The sense key shall be set to ILLEGAL REQUEST, and the additional sense code shall be set to PARAMETER LIST LENGTH ERROR. The mode parameter list for the MODE SELECT and MODE SENSE commands is dened in "10.8.6 Mode Select/ Sense Parameters" on page 108. The ATAPI CD-ROM Drive shall terminate the MODE SELECT command with CHECK CONDITION status, set the sense key to ILLEGAL REQUEST, set the additional sense code to INVALID FIELD IN PARAMETER LIST, and shall not change any mode parameters for the following conditions: 1. If the Host Computer sets any eld (except for reserved elds) that is reported as not changeable by the ATAPI CD-ROM Drive to a value other than its current value.
Page 103
If the Host Computer sets any unreserved eld in the mode parameter header to an unsupported value. If an Host Computer sends a mode page with a page length not equal to the page length returned by the MODE SENSE command for that page. If the Host Computer sends an unsupported value for a mode parameter and rounding is not implemented for that mode parameter.
If the Host Computer sends a value for a mode parameter that is outside the range supported by the ATAPI CD-ROM Drive and rounding is implemented for that mode parameter, the ATAPI CD-ROM Drive may either: 1. 2. round the parameter to an acceptable value and terminate the command; terminate the command with CHECK CONDITION status, the sense key set to ILLEGAL REQUEST, and set the additional sense code to INVALID FIELD IN PARAMETER LIST.
An ATAPI CD-ROM Drive may alter any mode parameter in any mode page (even those reported as non-changeable) as a result of changes to other mode parameters1. The ATAPI CD-ROM Drive validates the non-changeable mode parameters against the current values that existed for those mode parameters prior to the MODE SELECT command.
Table 51 - Recommended Sense Key, ASC and ASCQ for Mode Select Command Errors
Sense Key
05 05 06 06 06 05 05
ASC
20 24 28 29 2A 26 00
ASCQ
Description of Error INVALID COMMAND OPERATION CODE INVALID FIELD IN COMMAND PACKET NOT READY TO READY TRANSITION POWER ON, RESET OR BUS DEVICE RESET OCCURRED MODE PARAMETER CHANGED INVALID FIELD IN PARAMETER LIST PLAY OPERATION IN PROCESS
01 11
1. If the current values calculated by the ATAPI CD-ROM Drive affect the Host Computers operation, the Host Computer shall issue a MODE SENSE command after each MODE SELECT command. Page 104 working draft ATAPI
ATAPI CD-ROM Specication MODE SENSE Command 10.8.5 MODE SENSE Command
The MODE SENSE command provides a means for an ATAPI CD-ROM Drive to report parameters to the Host Computer. It is a complementary command to the MODE SELECT command.
Reserved PC
Operation code (5Ah) Reserved Reserved Page Code Reserved Reserved Reserved Reserved Allocation Length (MSB) Allocation Length (LSB) Reserved Reserved Reserved
Reserved
The Page Control (PC) eld denes the type of mode parameter values to be returned in the mode pages. See sections "10.8.5.1 Current Values" - "10.8.5.4 Saved Values" below.
Type of Parameter
Current values Changeable values Default values Saved values
Section
10.8.5.1 on page 106 10.8.5.2 on page 106 10.8.5.3 on page 106 10.8.5.4 on page 106
NOTE The Page Control eld only affects the mode parameters within the mode pages, however the PS bit, Page Code and Page Length elds shall return current values since they have no meaning when used with other types. The mode parameter header shall return current values. (see also "10.8.6 Mode Select/Sense Parameters" on page 108)
The Page Code species which mode page(s) to return1. See "Table 56 - Mode Page Codes for CD-ROM" on page 108 for a description of the Mode pages. A Host Computer may request any one or all of the supported mode pages from an ATAPI CD-ROM Drive. If a Host Computer issues a MODE SENSE command with a page code value not implemented by the ATAPI CD-ROM Drive, the ATAPI CD-ROM Drive shall return CHECK CONDITION status and shall set the sense key to ILLEGAL REQUEST and the additional sense code to INVALID FIELD IN COMMAND PACKET. A Page Code of 3Fh indicates that all mode pages implemented by the ATAPI CD-ROM Drive shall be returned to the Host Computer. If the mode parameter list exceeds 65536 bytes for a MODE SENSE command, the ATAPI CD-ROM Drive shall return CHECK CONDITION status and the sense key shall be set to ILLEGAL REQUEST and the addition1. Mode pages shall be returned in ascending page code order except for mode page 00h. working draft ATAPI Page 105
al sense code set to INVALID FIELD IN COMMAND PACKET. Mode page 00h, if implemented, shall be returned after all other mode pages.
Page 106
If current values are requested and the current values of the mode parameters have not been sent by the Host Computer (via a MODE SELECT command), the ATAPI CD-ROM Drive may return either the default or saved values as dened above. If current values have been sent, the current values shall be reported.
Table 54 - Recommended Sense Key, ASC and ASCQ for Mode Sense Command Errors
Sense Key
05 05 06 06 05 05
ASC
20 24 28 29 1A 39
ASCQ
Description of Error INVALID COMMAND OPERATION CODE INVALID FIELD IN COMMAND PACKET NOT READY TO READY TRANSITION POWER ON, RESET OR BUS DEVICE RESET OCCURRED PARAMETER LIST LENGTH ERROR SAVING PARAMETERS NOT SUPPORTED
Page 107
Revision 2.6 Proposed January 5, 1996 7:21 pm 10.8.6 Mode Select/Sense Parameters
This section describes the pages used with MODE SELECT and MODE SENSE commands. The Mode Parameter List contains a header, followed by zero or more variable-length pages.
Each mode page contains a page code, a page length, and a set of mode parameters.
Description
Vendor-specic (does not require page format) Read error recovery page Reserved CD-ROM page CD-ROM audio control page CD-ROM Capabilities & Mechanical Status Page Reserved Vendor-specic (page format required) Return all pages (valid only for the MODE SENSE command)
Section
10.8.6.3 on page 114 10.8.6.2 on page 113 10.8.6.1 on page 111 10.8.6.4 on page 118
Type
M M M M
7
PS/ Reserved
6
Reserved
3
Page Code
When using the MODE SENSE command, a Parameters Savable (PS) bit of one indicates that the mode page can be saved by the ATAPI CD-ROM Drive in a non-volatile, vendor-specic location. A PS bit of zero indicates that the supported parameters cannot be saved. When using the MODE SELECT command, the PS bit is reserved. The Page Code eld identies the format and parameters dened for that mode page. When using the MODE SENSE command, if Page Code 00h (vendor-specic page) is implemented, the ATAPI CDROM Drive shall return that page last in response to a request to return all pages (page code 3Fh). When using the
Page 108
7
MSB
Mode Data Length LSB Medium Type Reserved Reserved Reserved Reserved
When using the MODE SENSE command, the mode data length eld species the length in bytes of the following data that is available to be transferred. The mode data length is the total byte count of all data following the mode data length eld. When using the MODE SELECT command, this eld is reserved.
Page 109
Page 110
ATAPI CD-ROM Specication Mode Select/Sense Parameters 10.8.6.1 CD-ROM Audio Control Parameters Page
The CD-ROM Audio Control Parameters Page sets the playback modes and output controls for subsequent PLAY AUDIO commands and any current audio playback operation.
7
PS
(Optional)
6
Reserved
SOTC
(Mandatory) Default 0
Reserved
3 4 5 6 7 8 9 10 11 12 13 14 15
Reserved Reserved Reserved Logical Block Per Second of Audio Playback Default 75 Reserved CDDA Output Port 0 Channel Selection Output Port 0 Volume (Mandatory) Default FFh Reserved CDDA Output Port 1 Channel Selection Output Port 1 Volume (Mandatory) Default FFh Reserved CDDA Output Port 2 Channel Selection Output Port 2 Volume (Optional) Default 00h Reserved CDDA Output Port 3 Channel Selection Output Port 3 Volume (Optional) Default 00h
The Parameters Savable (PS) bit is only used with the MODE SENSE command. The PS bit is optional. This bit is reserved with the MODE SELECT command. A PS bit of one indicates that the ATAPI CD-ROM Drive is capable of saving the page in a non-volatile vendor-specic location. The Immediate Bit (Immed) is used for information purposes only; the audio commands will always send completion status as soon as the playback operation has been started. This bit shall always be set to 1. A Stop On Track Crossing (SOTC) bit of zero indicates the ATAPI CD-ROM Drive shall terminate the audio playback operation when the transfer length is satised. Multiple tracks shall be played as necessary. Periods of time encoded as audio pause/silence at the beginning of tracks, (index 0) shall also be played. A SOTC bit of one indicates the ATAPI CD-ROM Drive shall terminate the audio playback operation when the beginning of a following track is encountered. The SOTC bit is mandatory. The CDDA Output Port Channel Selection eld species the Red Book audio channels from the disc to which a specic output port shall be connected. More than one output port may be connected to an audio channel. More than one audio channel may be connected to an output port.
Page 111
Description
Output port muted Connect audio channel 0 to this output port Connect audio channel 1 to this output port Connect audio channel 0 and audio channel 1 to this output port Connect audio channel 2 to this output port Connect audio channel 3 to this output port
The Output Port Volume Control indicates the relative volume level for this audio output port. The value used is specied as an attenuation of the normal volume level. A value of zero indicates the minimum volume level (Mute), and a value of FFh indicates maximum volume (No attenuation) level. It is recommended that the MUTE and volume functions should be supported on a per channel basis. The attenuation used shall be as specied in "Table 62 - Attenuation Levels for Audio". All values not shown in the table shall be valid, with the attenuation selected by interpolating using the known table values. It is recommended that the Drive support at least 16 volume levels. The actual attenuation levels for any given Binary attenuation value shall be given by the following equation: 20 Log (Binary Level / 256)
Note: Audio channel volume control regarding channel selection of MUTE vs. Volume Level setting of 0. It is recommend that drives allow the setting of the Channel Selection elds to MUTE and also allow the setting of the Volume Level eld to 0. It is up to the drive to determine how to shut off the volume, either via muting circuitry or via the volume control.
Page 112
ATAPI CD-ROM Specication Mode Select/Sense Parameters 10.8.6.2 CD-ROM Device Parameters Page
The CD-ROM Device parameters page species parameters that affect all CD-ROM data types.
7
PS (Optional) Default 0
6
Reserved
1 2 3 4 5 6 7
Page Length (06h) Reserved Reserved MSB MSB Inactivity Time Multiplier Number of MSF - S Units per MSF - M Unit Default 60 (3Ch) Number of MSF - F Units per MSF - S Unit Default 75 (4Bh)
LSB LSB
The Parameters Savable (PS) bit is only used with the MODE SENSE command. This bit is reserved with the MODE SELECT command. A PS bit of one indicates that the ATAPI CD-ROM Drive is capable of saving the page in a nonvolatile vendor-specic location. The PS bit is optional. The Inactivity Timer Multiplier species the length of time that the drive shall remain in the hold track state after completion of a seek or read operation.
NOTE Higher values in this parameter may have an adverse effect on the drive MTBF, in some implementations.
Inactivity Timer
Multiplier 8h 9h Ah Bh Ch Dh Eh Fh
Minimum Time in
Hold Track State 16s 32s 1 min 2 min 4 min 8 min 16 min 32 min
The number of S units per M unit eld gives the ratio of these MSF address values. For media conforming to the CDROM and CD-DA Specication, this value is 60. The number of F units per S unit eld gives the ratio of these MSF address values. For media conforming to the CDROM and CD-DA Specication, this value is 75.
Page 113
Revision 2.6 Proposed January 5, 1996 7:21 pm 10.8.6.3 Read Error Recovery Parameters Page
The Read Error Recovery Parameters Page species the error recovery parameters the ATAPI CD-ROM Drive shall use during any command that performs a data read operation from the media (e.g. READ, READ TOC, etc.).
7
PS (Optional) Default 0
6
Reserved
1 2 Reserved 3 4 5 6 7 TB
Page Length (06h) Error Recovery Parameter, Default 0 RC Reserved PER Read Retry Count Reserved Reserved Reserved Reserved
DTE
DCR
The Parameters Savable (PS) bit is only used with the MODE SENSE command. This bit is reserved with the MODE SELECT command. A PS bit of one indicates that the ATAPI CD-ROM Drive is capable of saving the page in a nonvolatile vendor-specic location. The PS bit is optional.
NOTE The implementation of error recovery procedures for CD-ROM devices is markedly different from those used for magnetic medium disk drives. At least one level of error correction (i.e. CIRC) is required to transfer the data stream. Therefore, the performance of the drive may differ substantially from what would be expected by sending the same error recovery parameters to a magnetic medium device.
A Transfer Block (TB) bit of one indicates that a data block that is not recovered within the recovery limits specied, shall be transferred to the Host Computer before CHECK CONDITION status is returned. A TB bit of zero indicates that such a data block shall not be transferred to the Host Computer. The TB bit does not affect the action taken for recovered data. A Read Continuous (RC) bit of one indicates that the CD-ROM drive shall transfer the entire requested length of data without adding delays to perform error recovery procedures. This implies that the CD-ROM drive may send data that is erroneous or fabricated in order to maintain a continuous ow of data. A RC bit of zero indicates that error recovery operations that cause delays are acceptable during the data transfer. A Post Error (PER) bit of one indicates that the CD-ROM drive shall report recovered errors. A PER bit of zero indicates that the CD-ROM drive shall not report recovered errors. Error recovery procedures shall be performed within the limits established by the error recovery parameters. A Disable Transfer on Error (DTE) bit of one indicates that the CD-ROM drive shall terminate the data transfer to the Host upon detection of a recovered error. A DTE bit of zero indicates that the CD-ROM drive shall not terminate the data transfer upon detection of a recovered error. A Disable Correction (DCR) bit of one indicates that error correction codes shall not be used for data error recovery. A DCR bit of zero allows the use of error correction codes for data error recovery. The correlation of the error recovery parameter and the bit settings dened for CD-ROM devices is given in "Table 66 Error Recovery Bit Settings" on page 115. The interpretation of these bit settings for CD-ROM devices is given in "Table 67 - CD-ROM Error Recovery Descriptions" on page 115. If the error recovery parameter is set to any other value, the
Page 114
20h RR10R000 21h RR10R001 24h RR10R100 25h RR10R101 26h RR10R110 27h RR10R111 30h RR11R000 31h RR11R001 34h RR11R100 35h RR11R101 NOTE Reserved bits shall be set to zero.
01h
04h
05h
Page 115
Revision 2.6 Proposed January 5, 1996 7:21 pm Table 67 - CD-ROM Error Recovery Descriptions
Code
06h
07h
10h
11h
14h
15h
20h
21h
24h
Page 116
ATAPI CD-ROM Specication Mode Select/Sense Parameters Table 67 - CD-ROM Error Recovery Descriptions
Code
25h
26h
27h
The Read Retry Count eld species the number of times that the controller shall attempt its read recovery algorithm. A CIRC Recovered Data Error is dened as a block for which the CIRC based error correction algorithm was unsuccessful for a read attempt, but on a subsequent read operation no error was reported. The number of subsequent read operations is limited to the read retry count. Layered error correction was not used. A CIRC Unrecovered Data Error is dened as a block for which the CIRC based error correction algorithm was unsuccessful on all read attempts up to the read retry count. Layered error correction was not used. An L-EC Recovered Data Error is dened as a block for which the CIRC based error correction algorithm was unsuccessful, but the layered error correction was able to correct the block within the read retry count. An L-EC Uncorrectable Data Error is dened as a block which could not be corrected by layered error correction within the read retry count.
Page 117
7
PS
6
Reserved
Reserved Reserved
Page Code (2Ah) Page Length (12h) Method 2 Digital Port(2) R-W Deinterleaved
& corrected
Digital Port(1) R-W Supported Prevent Jumper Supports Disc Present (SDP)
6 7
Reserved
8 9 10 11 12 13 14 15 16 17 18 19
(MSB) Maximum Speed Supported (in KBps) (MSB) Number of Volume Levels Supported (MSB) Buffer Size supported by Drive (in KBytes) (MSB) Current Speed Selected (in KBps) Reserved Length LSBF Reserved Reserved (LSB) RCK BCK Reserved (LSB) (LSB) (LSB)
Reserved
Media Function Capabilities: If CD-R Read Field is set to one, the drive shall support the read function of CD-R disc (Orange Book Part II). If CD-E Read Field is set to one, the drive shall support the read function of CD-E disc (Orange Book Part III). If Method 2 is set to one, the drive shall support the read function of CD-R media written using xed packet tracks using Addressing Method 2. If CD-R Write Field is set to one, the drive shall support the write function of CD-R disc (Orange Book Part II). If CD-E Write Field is set to one, the drive shall support the write function of CD-E disc (Orange Book Part III). The individual capabilities of the drive are specied by bytes 4 through 7. Each of the bits indicate if that specic capability is supported. A value of zero indicates that the capability is NOT supported; a value of one indicates the capability IS supported.
Page 118
Bit 0
Audio Play
The drive is capable of Audio Play operation. This also indicates that the drive is capable of overlapping Play and other commands such as reading of the Sub-channel information. The drive is capable of delivering a composite Audio and Video data stream. The drive supports digital output (IEC958) on port 1 The drive supports digital output(IEC958) on port 2 The drive is capable of reading sectors in Mode 2 Form 1 (XA) format. The drive is capable of reading sectors in Mode 2 Form 2 format. The drive is capable of reading multiple session or Photo-CD discs.
Composite Digital Port(1) Digital Port(2) Mode 2 Form 1 Mode 2 Form 2 Multi Session CD-DA Commands Supported CD-DA Stream is Accurate
Red Book audio can be read using the READ-CD command. This bit indicates that the drive supports an advanced feature that allows it to return to an audio location without losing place to continue the READ CD-DA command. 0 The drive is incapable of accurately restarting the CD-DA read operation, and a BUFFER OVERFLOW error shall be reported whenever a loss of streaming occurs. This error will be fatal and the command will have to be repeated from the beginning. 1 The drive can continue from a loss of streaming condition and no error will be generated. The commands that return Sub-channel data can return the combined R-W information.
Bit 9
Bit 10
R-W Supported
Bit 11
This indicates that the R-W sub-channel data will be returned de-interleaved and error corrected. This indicates that the drive supports the C2 Error Pointers. This also indicates that the drive is capable of returning the C2 Error Pointers and C2 Block Error ags in the READ CD command. The drive can return the International Standard Recording Code Information. The drive can return the Media Catalog Number (UPC) The PREVENT/ALLOW command is capable of actually locking the media into the drive. This indicates the current state of the drive. 0 The drive is currently in the allow (Unlocked) state. Media may be inserted or ejected. 1 The drive is currently in the prevent (Locked) state. Media loaded in the drive may not be removed via a soft or hard eject. If the drive is empty, media may not be inserted if the Prevent Jumper is not present. If the jumper is present, then media may be inserted.
Bit 12
Bit 17
Lock State
Page 119
Bit 19
Eject Command
Bit 20
Reserved
Separate Volume Levels Separate Channel Mute Supports Disc Present (SDP)
Bit 27
Software Slot Selection (SSS) This bit controls the behavior of the LOAD/UNLOAD command when trying to load a Slot with no Disc present (see "Table 43 - Load/Unload or Optional Selection Operations" on page 97).
The Maximum Speed Supported eld indicates the actual maximum data rate that the drive supports. This value is re-
Page 120
Data Rate
176 KBytes/second 353 KBytes/second 387 KBytes/second 528 KBytes/second 706 KBytes/second 1.4 MBytes/second 2.8 MBytes/second
Note that these are the raw data rates and do not reect any overhead resulting from headers, error correction data, etc. It is also important to understand that the reported data rate is a theoretical maximum and the actual data rates to the host will be lower. The data rates are dynamic and will change as the drive changes its speed. The Number of Volume Levels Supported eld returns the number of discrete levels. If the drive only supports turning audio on and off, the Number of Volume Levels eld shall be set to 2. The Buffer Size Supported eld returns the number of bytes of buffer dedicated to the data stream returned to the Host Computer. This value is returned in Kbytes (Size/1024). If the drive does not have a buffer cache, the value returned shall be zero. The Current Speed Selected eld indicates the actual data rate that the drive is currently using. This value is returned as the number of kilobytes per/second (Speed/1000) that the data is read from the drive.
Byte 17 is used to describe the format of the drives digital output. Bit 1 BCKF Set if data valid on the falling edge of the BCK signal. Clear if data valid on the rising edge of the BCK signal Set if HIGH on LRCK indicates left channel. Clear if HIGH on LRCK indicates right channel. Set if LSB rst. Clear if MSB rst. 00 01 10 11 32 BCKs 16 BCKs 24 BCKs 24 BCKs (I2S)
Bit 2
RCK
LSBF Length
Page 121
Page 122
Operation Code (4Bh) Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved
Resume
A Resume bit of zero causes the drive to enter the hold track state with the audio output muted after the current block is played. A Resume bit of one causes the drive to release the pause/scan and begin play at the block following the last block played/scanned. If an audio play operation cannot be resumed and the resume bit is one, the command is terminated with CHECK CONDITION status. If the resume bit is zero and an audio play operation cannot be paused, (no audio play operation has been requested, or the requested audio play operation has been completed), the command is terminated with CHECK CONDITION status. See "Figure 15 - Stop Play/Play Audio/Audio Scan/Pause/Resume Sequencing" on page 196 for additional information. It shall not be considered an error to request a PAUSE when a pause is already in effect or to request a RESUME when a play operation is in progress.
Table 71 - Recommended Sense Key, ASC and ASCQ for Pause/Resume Command Errors
Sense Key
05 05 06 06 02 02 02 02 02 0B
ASC
20 24 28 29 04 04 04 04 3A B9
ASCQ
Description of Error INVALID COMMAND OPERATION CODE INVALID FIELD IN COMMAND PACKET NOT READY TO READY TRANSITION POWER ON, RESET OR BUS DEVICE RESET OCCURRED
00 01 02 03
LOGICAL DRIVE NOT READY - CAUSE NOT REPORTABLE LOGICAL DRIVE NOT READY - IN PROGRESS OF BECOMING READY LOGICAL DRIVE NOT READY - INITIALIZING COMMAND REQUIRED LOGICAL DRIVE NOT READY - MANUAL INTERVENTION REQUIRED
Page 123
Page 124
ATAPI CD-ROM Specication PLAY AUDIO Command 10.8.8 PLAY AUDIO Command
The PLAY AUDIO command requests that the ATAPI CD-ROM Drive begin an audio playback operation. The command function and the output of audio signals shall be as specied by the settings of the mode parameters, including the SOTC bit.
Operation Code (45h) Reserved MSB Starting Logical Block Address LSB MSB Reserved Transfer Length LSB Reserved Reserved Reserved
This command responds with immediate status, allowing overlapped commands. This command shall set the DSC bit upon command completion. See also "10.4 Immediate Command Processing Considerations" on page 90. If any commands related to audio operations are implemented then the PLAY AUDIO (10) command shall be implemented to allow a method for the Host Computer to determine if audio operations are supported. An ATAPI CD-ROM Drive responding to a PLAY AUDIO (10) command that has a transfer length of zero with CHECK CONDITION status and setting the sense key to ILLEGAL REQUEST does not support audio play operations. The Starting Logical Block Address eld species the logical block at which the audio playback operation shall begin. PLAY AUDIO commands with a starting logical block address of FFFF FFFFh shall implement audio play from the current location of the optics. PLAY AUDIO commands with a starting LBA address of 0000 0000h shall begin the audio play operation at 00m 02s 00f. The Transfer Length Field species the number of contiguous logical blocks that shall be played. A Transfer Length Field of zero indicates that no audio operation shall occur. This condition shall not be considered an error. If the starting address is not found, if the address is not within an audio track, or if a not ready condition exists, the command shall be terminated with CHECK CONDITION status. If the CD-ROM information type (data vs. audio) changes within the transfer length, the command shall be terminated with a CHECK CONDITION and the sense key shall be set to ILLEGAL REQUEST and the additional sense code set to END OF USER AREA ENCOUNTERED ON THIS TRACK. If the logical block address requested is not within an audio track, the command shall be terminated with CHECK CONDITION status. The sense key shall be set to ILLEGAL REQUEST and the additional sense code set to ILLEGAL MODE FOR THIS TRACK.
Page 125
Table 73 - Recommended Sense Key, ASC and ASCQ for Play Audio Command Errors
Sense Key
05 05 06 06 02 02 02 02 02 02 03 05 05 05
ASC
20 24 28 29 04 04 04 04 3A 06 02 21 63 64
ASCQ
Description of Error INVALID COMMAND OPERATION CODE INVALID FIELD IN COMMAND PACKET NOT READY TO READY TRANSITION POWER ON, RESET OR BUS DEVICE RESET OCCURRED
00 01 02 03 00
LOGICAL DRIVE NOT READY - CAUSE NOT REPORTABLE LOGICAL DRIVE NOT READY - IN PROGRESS OF BECOMING READY LOGICAL DRIVE NOT READY - INITIALIZING COMMAND REQUIRED LOGICAL DRIVE NOT READY - MANUAL INTERVENTION REQUIRED
MEDIUM NOT PRESENT NO REFERENCE POSITION FOUND (media may be upside down) NO SEEK COMPLETE LOGICAL BLOCK ADDRESS OUT OF RANGE END OF USER AREA ENCOUNTERED ON THIS TRACK ILLEGAL MODE FOR THIS TRACK OR INCOMPATIBLE MEDIUM
Page 126
Command Description
LOAD / UNLOAD CD PAUSE/RESUME PLAY AUDIO (10) PLAY AUDIO MSF PLAY CD READ (10) READ (12) READ CD READ HEADER READ CD MSF SEEK SET CD-ROM SPEED START/STOP UNIT
ATA commands other than A2, A0 will stop play or scan. The CD-ROM drive should accept and perform the commands specied in "Table 74 - Commands That Will Stop a Play or Scan Operation" without terminating an AUDIO PLAY command already in progress. See "Figure 15 - Stop Play/ Play Audio/Audio Scan/Pause/Resume Sequencing" on page 196 for additional information.
Command Description
When it generates an Illegal Field in Command Packet CHECK CONDITION. INQUIRY MECHANISM STATUS MODE SELECT Will terminate normally
Action Taken
MODE SENSE PREVENT/ALLOW MEDIA REMOVAL READ CD-ROM CAPACITY READ SUB-CHANNEL
43h
READ TOC
The Inquiry data will be returned Will execute normally The Mode Select will be accepted and executed as long as no Media or Mode information is changed. If parameters that affect the play are changed, the Mode Select will terminate with a CHECK CONDITION without being executed. Will execute normally Will execute normally Will execute normally Only the current position information (Format Code 01h) will be supported while the play is in progress. If any other type of information is requested the READ SUB-CHANNEL will not be executed and a CHECK CONDITION will be generated. Only drives that cache the TOC will be able to respond to this command while the play is in progress. If the drive does not support caching the TOC, the command will not be executed and a CHECK CONDITION will be generated. Will execute normally SCAN command will be executed and the PLAY command will resume at completion of the scan Will execute normally
Page 127
Revision 2.6 Proposed January 18, 1996 12:13 pm 10.8.9 PLAY AUDIO MSF Command
ATAPI Packet Commands for CD-ROM devices PLAY AUDIO MSF Command
The PLAY AUDIO MSF command requests that the ATAPI CD-ROM Drive begin an audio playback operation. The command function and the output of audio signals shall be as specied by the settings of the mode parameters including the SOTC bit described on page 111.
Operation Code (47h) Reserved Reserved Starting M Field Starting S Field Starting F Field Ending M Field Ending S Field Ending F Field Reserved Reserved Reserved
This command responds with immediate status, allowing overlapped commands. This command shall set the DSC bit upon command completion. See also "10.4 Immediate Command Processing Considerations" on page 90. The Starting M eld, the Starting S eld, and the Starting F eld specify the absolute MSF address at which the audio play operation shall begin. The Ending M eld, the Ending S eld, and the Ending F eld specify the absolute MSF address where the audio play operation shall end. All contiguous audio sectors between the starting and the ending MSF address shall be played. If the Starting Minutes, Seconds and Frame Fields are set to FFh, the Starting address is taken from the Current Optical Head location. This allows the Audio Ending address to be changed without interrupting the current playback operation. A Starting MSF address equal to an ending MSF address causes no audio play operation to occur. This shall not be considered an error. If the Starting MSF address is greater than the Ending MSF address, the command shall be terminated with CHECK CONDITION status. The sense key shall be set to ILLEGAL REQUEST. If the starting address is not found, if the address is not within an audio track, or if a not ready condition exists, the command shall be terminated with CHECK CONDITION status. See "10.8.8.1 Play Audio with Immediate Packet Commands" on page 126 for information on overlapped commands during an Audio Playback.
Page 128
Table 77 - Recommended Sense Key, ASC and ASCQ for Play Audio MSF Command Errors
Sense Key
05 05 06 06 02 02 02 02 02 02 03 05 05 05
ASC
20 24 28 29 04 04 04 04 3A 06 02 21 63 64
ASCQ
Description of Error INVALID COMMAND OPERATION CODE INVALID FIELD IN COMMAND PACKET NOT READY TO READY TRANSITION POWER ON, RESET OR BUS DEVICE RESET OCCURRED
00 01 02 03 00
LOGICAL DRIVE NOT READY - CAUSE NOT REPORTABLE LOGICAL DRIVE NOT READY - IN PROGRESS OF BECOMING READY LOGICAL DRIVE NOT READY - INITIALIZING COMMAND REQUIRED LOGICAL DRIVE NOT READY - MANUAL INTERVENTION REQUIRED
MEDIUM NOT PRESENT NO REFERENCE POSITION FOUND (media may be upside down) NO SEEK COMPLETE LOGICAL BLOCK ADDRESS OUT OF RANGE END OF USER AREA ENCOUNTERED ON THIS TRACK ILLEGAL MODE FOR THIS TRACK OR INCOMPATIBLE MEDIUM
Page 129
ATAPI Packet Commands for CD-ROM devices PLAY AUDIO MSF Command
Page 130
Reserved MSB
MSF (0)
Reserved
Starting Logical Block Address LSB MSB Transfer Length in Blocks LSB Audio
SPEED
Reserved
Port 2 Reserved
Port 1
Composite
Reserved
SPEED
Reserved
Operation code (B4h) Expected Sector Type Reserved Starting M Field Starting S Field Starting F Field Ending M Field Ending S Field Ending F Field Reserved Port 2 Port 1 Reserved
MSF (1)
Reserved
Composite
Audio
The Expected Sector Type eld is used to check the sector type only. If the Requested Sector(s) do not match the specied type, the command will be terminated with a CHECK CONDITION. The Sector that does not match will not be transferred to output port. The sense key shall be set to ILLEGAL MODE FOR THIS TRACK. Implementers Note: The Expected Sector Type is used to generate an error and terminate the transfer when the sectors found on the media, do not match the type desired. This eld has NO control of the actual number of bytes transferred.
Page 131
Denition
Any Type (Mandatory) CD DA (Mandatory) Mode 1 (Mandatory) Mode 2 (Mandatory) Mode 2 Form 1 (Mandatory) Mode 2 Form 2 (Mandatory)
Description
No checking of the Sector Type will be performed. The device shall always terminate a command, at the sector where a transition between CD-Rom and CD-DA occurs. Only Red Book (CD-DA) sectors shall be allowed. An attempt to read any other format shall result in the reporting of an error. Only Yellow Book sectors which have a user data eld of 2048 bytes shall be allowed. An attempt to read any other format shall result in the reporting of an error. Only Yellow Book sectors which have a user data eld of 2336 bytes shall be allowed. An attempt to read any other format shall result in the reporting of an error. Only Green Book sectors which have a user data eld of 2048 shall be allowed. An attempt to read any other format shall result in the reporting of an error. Only Green Book sectors which have a user data eld of 2324 shall be allowed. An attempt to read any other format shall result in the reporting of an error. Note that the spare data is included in the user data making the size 2324+4= 2328. Reserved
001b 010b
011b
100b 101b
110b 111b
Value
0 1 0 1 0 1 0 1 0 1
Description
Analog Audio Channel is Disabled Analog Audio Channel is Enabled Composite Video port is Disabled Composite Video port is Enabled Digital Port 1 is Disabled Digital Port 1 is Enabled Digital Port 2 is Disabled Digital Port 2 is Enabled Speed will be set to x1 for the operation The Speed used will be the best possible
Page 132
Table 82 - Recommended Sense Key, ASC and ASCQ for PLAY CD Command Errors
Sense Key
05 05 06 06 02 02 02 02 02 02 03 05 05 05 0B
ASC
20 24 28 29 04 04 04 04 06 3A 02 21 64 00 BF
ASCQ
Description of Error INVALID COMMAND OPERATION CODE INVALID FIELD IN COMMAND PACKET NOT READY TO READY TRANSITION POWER ON, RESET OR BUS DEVICE RESET OCCURRED
00 01 02 03 00
LOGICAL DRIVE NOT READY - CAUSE NOT REPORTABLE LOGICAL DRIVE NOT READY - IN PROGRESS OF BECOMING READY LOGICAL DRIVE NOT READY - INITIALIZING COMMAND REQUIRED LOGICAL DRIVE NOT READY - MANUAL INTERVENTION REQUIRED
11
NO REFERENCE POSITION FOUND (media may be upside down) MEDIUM NOT PRESENT NO SEEK COMPLETE LOGICAL BLOCK ADDRESS OUT OF RANGE ILLEGAL MODE FOR THIS TRACK OR INCOMPATIBLE MEDIUM PLAY OPERATION IN PROGRESS LOSS OF STREAMING
Page 133
Page 134
ATAPI CD-ROM Specication PREVENT/ALLOW MEDIUM REMOVAL Command 10.8.11 PREVENT/ALLOW MEDIUM REMOVAL Command
The PREVENT/ALLOW MEDIUM REMOVAL command requests that the ATAPI CD-ROM Drive enable or disable the removal of the medium. The prevention of media removal (when implemented) shall be accomplished through the use of a Locking Mechanism. The locking mechanism is optional and an error shall be returned if a command to prevent medium removal is issued (Sense key 05 ILLEGAL REQUEST, Sense Code 24 INVALID FIELD IN COMMAND PACKET).
Operation Code (1Eh) Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved
Prevent
The prevention of medium removal shall begin when the Host Computer issues a PREVENT/ALLOW MEDIUM REMOVAL command with a prevent bit of one (medium removal prevented). The prevention of medium removal shall terminate: 1. 2. 3. after the Host Computer has issued a PREVENT ALLOW MEDIUM REMOVAL command with a prevent bit of zero (Unlock), and the ATAPI CD-ROM Drive has successfully performed a synchronize cache operation; or upon a hard RESET condition; or if the drive does not support a locking mechanism.
While a prevention of medium removal condition is in effect (Locked) the ATAPI CD-ROM Drive shall inhibit mechanisms that normally allow removal of the medium by an operator. This is also the case for changers. The default state of the drive at power on is unlocked, unless the drive supports a prevent/allow jumper and the jumper is in the prevent state (See "10.8.6.4 CD-ROM Capabilities and Mechanical Status Page" on page 118.) This command will affect the actions of the START/STOP UNIT command (See "10.8.25 START/STOP UNIT Command" on page 197) and other mechanisms external to this specication (manual ejection / media removal systems.)
Page 135
ATAPI Packet Commands for CD-ROM devices PREVENT/ALLOW MEDIUM REMOVAL Command
Locked / Unlocked
Unlocked Locked Unlocked Locked Would always be Unlocked Unlocked Locked
Unlocked Locked
Table 85 - Recommended Sense Key, ASC and ASCQ for Prevent/Allow Command Errors
Sense Key
05 05 06 06 02 02 02 02 02 02
ASC
20 24 28 29 04 04 04 04 3A 53
ASCQ
Description of Error INVALID COMMAND OPERATION CODE INVALID FIELD IN COMMAND PACKET NOT READY TO READY TRANSITION POWER ON, RESET OR BUS DEVICE RESET OCCURRED
00 01 02 03 02
LOGICAL DRIVE NOT READY - CAUSE NOT REPORTABLE LOGICAL DRIVE NOT READY - IN PROGRESS OF BECOMING READY LOGICAL DRIVE NOT READY - INITIALIZING COMMAND REQUIRED LOGICAL DRIVE NOT READY - MANUAL INTERVENTION REQUIRED
Page 136
ATAPI CD-ROM Specication READ (10) Command 10.8.12 READ (10) Command
The READ (10) command requests that the ATAPI CD-ROM Drive transfer data to the Host Computer. The most recent data value written in the addressed logical block shall be returned.
Operation Code (28h) Reserved MSB Logical Block Address LSB MSB Reserved Transfer Length LSB Reserved Reserved Reserved
The Transfer Length eld species the number of contiguous logical blocks of data that shall be transferred. A transfer length of zero indicates that no logical blocks shall be transferred. This condition shall not be considered an error. Any other value indicates the number of logical blocks that shall be transferred. Although the CD-ROM is capable of returning a variety of data, this command shall only return the User Data portion of the sector. This eld is always 2048 bytes in length for Mode 1 and Mode 2 Form 1 sectors, which are the only sector types allowed. For all other sector types, the device shall set the ILI bit in the Request Sense Standard Data and return a ILLEGAL MODE FOR THIS TRACK error if any read to them using this command is attempted.
Page 137
Table 87 - Recommended Sense Key, ASC and ASCQ for READ (10) Command Errors
Sense Key
05 05 06 06 02 02 02 02 02 02 03 05 05 03 03 01 01 01
ASC
20 24 28 29 04 04 04 04 06 3A 02 21 64 11 11 17 18 18
ASCQ
Description of Error INVALID COMMAND OPERATION CODE INVALID FIELD IN COMMAND PACKET NOT READY TO READY TRANSITION POWER ON, RESET OR BUS DEVICE RESET OCCURRED
00 01 02 03 00
LOGICAL DRIVE NOT READY - CAUSE NOT REPORTABLE LOGICAL DRIVE NOT READY - IN PROGRESS OF BECOMING READY LOGICAL DRIVE NOT READY - INITIALIZING COMMAND REQUIRED LOGICAL DRIVE NOT READY - MANUAL INTERVENTION REQUIRED
05 06 01 01 04
NO REFERENCE POSITION FOUND (media may be upside down) MEDIUM NOT PRESENT NO SEEK COMPLETE LOGICAL BLOCK ADDRESS OUT OF RANGE ILLEGAL MODE FOR THIS TRACK OR INCOMPATIBLE MEDIUM L-EC UNCORRECTABLE ERROR CIRC UNRECOVERED ERROR RECOVERED DATA WITH RETRIES RECOVERED DATA WITH ERROR CORRECTION & RETRIES APPLIED RECOVERED DATA WITH L-EC
Page 138
ATAPI CD-ROM Specication READ (12) Command 10.8.13 READ (12) Command
The READ (12) command requests that the ATAPI CD-ROM Drive transfer data to the Host Computer. The most recent data value written in the addressed logical block shall be returned.
Operation Code (A8h) Reserved MSB Logical Block Address LSB MSB Transfer Length LSB Reserved Reserved
The Transfer Length eld species the number of contiguous logical blocks of data that shall be transferred. A transfer length of zero indicates that no logical blocks shall be transferred. This condition shall not be considered an error. Any other value indicates the number of logical blocks that shall be transferred. Although the CD-ROM is capable of returning a variety of data, this command shall only return the User Data portion of the sector. This eld is always 2048 bytes in length for Mode 1 and Mode 2 Form 1 sectors, which are the only sector types allowed. For all other sector types, the device shall set the ILI bit in the Request Sense Standard Data and return a ILLEGAL MODE FOR THIS TRACK error if any read to them using this command is attempted.
Page 139
Table 89 - Recommended Sense Key, ASC and ASCQ for READ (10) Command Errors
Sense Key
05 05 06 06 02 02 02 02 02 02 03 05 05 03 03 01 01 01
ASC
20 24 28 29 04 04 04 04 06 3A 02 21 64 11 11 17 18 18
ASCQ
Description of Error INVALID COMMAND OPERATION CODE INVALID FIELD IN COMMAND PACKET NOT READY TO READY TRANSITION POWER ON, RESET OR BUS DEVICE RESET OCCURRED
00 01 02 03 00
LOGICAL DRIVE NOT READY - CAUSE NOT REPORTABLE LOGICAL DRIVE NOT READY - IN PROGRESS OF BECOMING READY LOGICAL DRIVE NOT READY - INITIALIZING COMMAND REQUIRED LOGICAL DRIVE NOT READY - MANUAL INTERVENTION REQUIRED
05 06 01 01 04
NO REFERENCE POSITION FOUND (media may be upside down) MEDIUM NOT PRESENT NO SEEK COMPLETE LOGICAL BLOCK ADDRESS OUT OF RANGE ILLEGAL MODE FOR THIS TRACK OR INCOMPATIBLE MEDIUM L-EC UNCORRECTABLE ERROR CIRC UNRECOVERED ERROR RECOVERED DATA WITH RETRIES RECOVERED DATA WITH ERROR CORRECTION & RETRIES APPLIED RECOVERED DATA WITH L-EC
Page 140
ATAPI CD-ROM Specication READ CD-ROM CAPACITY Command 10.8.14 READ CD-ROM CAPACITY Command
The READ CD-ROM CAPACITY command provides a means for the Host Computer to request information regarding the capacity of the Device. The general function of the CD-ROM version of READ CAPACITY is the same but the exact denition of the returned logical block address is modied to allow returning a possibly inexact value (but one with a known error boundary) based on CD-ROM table of contents data. This error boundary occurs when the last track is an audio track, and could cause the last block to be +/- 75 sectors from the actual end of the track. This error is a tolerance in the addressing of Audio data built into the Media specications for CD-ROM. For many CD-ROM devices, this implementation allows a quicker response.
Operation code (25h) Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved
Eight bytes of READ CD-ROM CAPACITY data shall be returned to the Host Computer.
7
MSB
LSB MSB Block Length in Bytes (Length reported shall be 2048d) LSB
Page 141
ATAPI Packet Commands for CD-ROM devices READ CD-ROM CAPACITY Command
Table 92 - Recommended Sense Key, ASC and ASCQ for Read Capacity Command Errors
Sense Key
05 05 06 06 02 02 02 02 02 02
ASC
20 24 28 29 04 04 04 04 06 3A
ASCQ
Description of Error INVALID COMMAND OPERATION CODE INVALID FIELD IN COMMAND PACKET NOT READY TO READY TRANSITION POWER ON, RESET OR BUS DEVICE RESET OCCURRED
00 01 02 03 00
LOGICAL DRIVE NOT READY - CAUSE NOT REPORTABLE LOGICAL DRIVE NOT READY - IN PROGRESS OF BECOMING READY LOGICAL DRIVE NOT READY - INITIALIZING COMMAND REQUIRED LOGICAL DRIVE NOT READY - MANUAL INTERVENTION REQUIRED
NO REFERENCE POSITION FOUND (media may be upside down) MEDIUM NOT PRESENT
Page 142
Reserved MSB
Operation Code (BEh) Expected Sector Type Starting Logical Block Address
Reserved
LSB MSB Transfer Length in Blocks LSB Synch Field Header(s) Code Reserved Reserved Flag Bits User Data EDC & ECC Error Flag(s) Reserved
The Expected Sector Type eld is used to limit the amount of information returned to the Host. If the Requested Sector(s) do not match the specied type, the command will be terminated with a CHECK CONDITION. The Sector that does not match will not be transferred to the Host. The sense key shall be set to ILLEGAL MODE FOR THIS TRACK. Implementers Note: The Expected Sector Type is used to generate an error and terminate the transfer when the sectors found on the media, do not match the type desired. This eld has NO control of the actual number of bytes transferred.
Page 143
Denition
Any Type (Mandatory) CD DA (Optional) Mode 1 (Mandatory) Mode 2 (Mandatory) Mode 2 Form 1 (Mandatory) Mode 2 Form 2 (Mandatory)
Description
No checking of the Sector Type will be performed. The device shall always terminate a command, at the sector where a transition between CD-Rom and CD-DA occurs. Only Red Book (CD-DA) sectors shall be allowed. An attempt to read any other format shall result in the reporting of an error. Only Yellow Book sectors which have a user data eld of 2048 bytes shall be allowed. An attempt to read any other format shall result in the reporting of an error. Only Yellow Book sectors which have a user data eld of 2336 bytes shall be allowed. An attempt to read any other format shall result in the reporting of an error. Only Green Book sectors which have a user data eld of 2048 shall be allowed. An attempt to read any other format shall result in the reporting of an error. Only Green Book sectors which have a user data eld of 2324 shall be allowed. An attempt to read any other format shall result in the reporting of an error. Note that the spare data is included in the user data making the size 2324+4= 2328. Reserved
001b 010b
011b
100b 101b
110b 111b
The Synch Field Bit, when set to one indicates that the Synch Field from the sector will be included in the data stream. Note that the data elds that are requested to be included in the data stream shall be contiguous. The Synch Field information (if selected) will be the rst information in the data stream; all other elds will follow. The Header(s) Code is an encoded eld that indicates the Header / Subheader information to be placed in the data stream.
Denition
None HdrOnly SubheaderOnly
Description
None of the header data shall be placed in the data stream. Only the Mode 1 or Form 1 4-byte header will be returned in the data stream. Only the Mode 2 Form 1 or 2 Subheader will be placed into the data stream. Both the Header and Subheader will be placed in the data stream.
All Headers
The User Data Flag, when set to one, indicates that the Data part of a CD Sector shall be returned in the data stream. When set to 1, the whole user data will be returned to the host. Note that the setting of the Mode Select Density Code does not apply to this command, and the physical user data will be returned. If the current track is an Audio Track then the Audio Data will be returned, else the normal CD-ROM data will be returned. The possible data lengths are 2048, 2336, 2328 and 2352. The EDC and ECC Flag, when set to one, indicates that the EDC and ECC (L-EC) eld shall be included in the data
Page 144
Denition
None C2 Error Flag data
Description
No Error information will be included in the data stream. The C2 Error Flag (Pointer) bits (2352 bits or 294 bytes) will be included in the data stream. When the C2 Error pointer bits are included in the data stream, there will be one bit for each byte in error in the sector (2352 total). The bit ordering is from the most signicant bit to the least signicant bit in each byte. The rst bytes in the sector will be the rst bits/bytes in the data stream. Both the C2 Error Flags (2352 bits or 294 bytes) and the Block Error Byte will be included in the data stream. The Block Error byte is the OR of all the C2 Error Flag bytes. So that the data stream will always be an even number of bytes, the Block Error byte will be padded with a byte (undened). The Block Error byte will be rst in the data stream followed by the pad byte. Reserved for future enhancement.
10b
11b
Reserved
The Sub-Channel Data Selection bits indicate which CD Sub-Channel information is to be included in the data stream, the Q information and/or the Raw Sub-channel information (All eight channels, one byte from each of the small frames.) If the bit is set, then that Sub-channel data will be included in the data stream to the Host.
Denition
No Sub-channel Data RAW Q Reserved R-W Reserved
Description
No Sub-channel data will be transferred Raw Sub-channel data will be transferred Q data will be transferred R-W data will be transferred
Type
Mandatory Optional Optional Optional
Support of Sub-channel data is optional. In the case of R-W the drive may return the data de-interleaved and error-corrected, RAW or padded with zeros depending on the R-W Supported and R-W de-interleaved and error-corrected bits in the CD-ROM capabilities and mechanical status page. Changing the DCR bit using Mode Select for page 1 (Read error recovery page) will affect error correction of subcode data. The inclusion of the sub-channel data will only be valid for Audio sectors. If the Starting Logical Block Address is set to FFFFFFFFh and the only information requested to be placed in the data stream is the Sub-channel data and there is currently a PLAY AUDIO command in process, the actual address used will be from the current location (of the Play). If the drive is not playing audio, the drive will respond with a CHECK CONDITION with a sense key/ASC/ASCQ of 05h/B9h/00h (Play Not in Progress).
Page 145
Description
Control (4 M.S. bits), ADR (4 L.S. bits) Track number Index number Min Sec Frame Reserved (00h) AMin Asec AFrame CRC* or 00h (hex) CRC* or 00h (hex) 00h (pad) 00h (pad) 00h (pad) 00h (pad)
* CRC is optional
Page 146
ATAPI CD-ROM Specication READ CD Command Table 99 - Number of Bytes Returned Based on Data Selection Field
Data to be transferred
User Data User Data + EDC/ECC Header Only Header Only + EDC/ECC Header & User Data Header & User Data + EDC/ECC Sub Header Only Sub Header Only + EDC/ECC Sub Header & User Data Sub Header & User Data + EDC/ECC All Headers Only All Headers Only + EDC/ECC All Headers & User Data All Headers & User Data + EDC/ECC Sync & User Data Sync & User Data + EDC/ECC Sync & Header Only Sync & Header Only + EDC/ECC Sync & Header & User Data Sync & Header & User Data + EDC/ECC Sync & Sub Header Only Sync & Sub Header Only + EDC/ECC Sync & Sub Header & User Data Sync & Sub Header & User Data + EDC/ECC Sync & All Headers Only Sync & All Headers Only + EDC/ECC Sync & All Headers & User Data Sync & All Headers & User Data + EDC/ECC Repeat All Above and Add Error Flags Repeat All Above and Add Block & Error Flags
Flag Bits
10h 18h 20h 28h 30h 38h 40h 48h 50h 58h 60h 68h 70h 78h 90h 98h A0h A8h B0h B8h C0h C8h D0h D8h E0h E8h F0h F8h 02h 04h
CD-DA
2352 (10h) (10h) (10h) (10h) (10h) (10h) (10h) (10h) (10h) (10h) (10h) (10h) (10h) (10h) (10h) (10h) (10h) (10h) (10h) (10h) (10h) (10h) (10h) (10h) (10h) (10h) (10h) 294 296
Mode 1
2048 2336 4 Illegal 2052 2344 8 Illegal (10h) (10h) 12 Illegal (30h) (30h) Illegal Illegal 16 Illegal 2064 2344 Illegal Illegal (10h) (10h) 24 Illegal 2064 2352 294 296
Mode 2 non XA
2336 (10h) 4 Illegal 2340 (30h) 8 Illegal (10h) (10h) 12 Illegal (30h) (30h) Illegal Illegal 16 Illegal 2352 (30h) Illegal Illegal (10h) (10h) 24 Illegal 2352 (F0h) 294 296
Mode 2 Form 1
2048 2336 4 Illegal Illegal Illegal 8 Illegal 2056 2344 12 Illegal 2060 2340 Illegal Illegal 16 Illegal Illegal Illegal Illegal Illegal Illegal Illegal 24 Illegal 2072 2352 294 296
Mode 2 Form 2
2328 (10h) 4 Illegal Illegal Illegal 8 Illegal 2336 (50h) 12 Illegal 2340 2340 Illegal Illegal 16 Illegal Illegal Illegal Illegal Illegal Illegal Illegal 24 Illegal 2352 (F0h) 294 296
The lengths of the data returned from the READ CD command vary based on the type of sector that is being read and the requested elds to be returned to the Host. Many combinations are possible, but most are not very useful. Table 99, Number of Bytes Returned Based on Data Selection Field, on page 147 species how the drive responds to many of the requests possible. Requests for transfers not specied by this table shall not be supported and treated as Illegal. Illegal values will cause the command to be aborted with a CHECK Condition, Sense Key 05, ASC 24 (INVALID FIELD IN COMMAND PACKET). The Values in () indicate that the amount of data is the same as the Flag byte setting specied by the contents of the parenthesis. Values that are shaded are most useful to the host and shall return the number of bytes specied if supported. See "Figure 11 - CD-ROM Sector Formats" on page 73 for a description of the data available for each sector type.
Page 147
Table 100 - Recommended Sense Key, ASC and ASCQ for Read CD Command Errors
Sense Key
05 05 06 06 02 02 02 02 02 02 03 05 05 05 0B
ASC
20 24 28 29 04 04 04 04 06 3A 02 21 64 00 BF
ASCQ
Description of Error INVALID COMMAND OPERATION CODE INVALID FIELD IN COMMAND PACKET NOT READY TO READY TRANSITION POWER ON, RESET OR BUS DEVICE RESET OCCURRED
00 01 02 03 00
LOGICAL DRIVE NOT READY - CAUSE NOT REPORTABLE LOGICAL DRIVE NOT READY - IN PROGRESS OF BECOMING READY LOGICAL DRIVE NOT READY - INITIALIZING COMMAND REQUIRED LOGICAL DRIVE NOT READY - MANUAL INTERVENTION REQUIRED
11
NO REFERENCE POSITION FOUND (media may be upside down) MEDIUM NOT PRESENT NO SEEK COMPLETE LOGICAL BLOCK ADDRESS OUT OF RANGE ILLEGAL MODE FOR THIS TRACK OR INCOMPATIBLE MEDIUM PLAY OPERATION IN PROGRESS LOSS OF STREAMING
Page 148
The CD-DA audio data includes 16 bits of information for each channel, and will be formatted as follows when an audio track is read.
Cell 1 (1st of 588) Left Channel (Lower Byte) b4 b3 Left Channel Upper Byte b12 b11 Right Channel (Lower Byte) b4 b3 Right Channel Upper Byte b12 b11
b2 b10 b2 b10
b1 b9 b1 b9
b0 b8 b0 b8
. . .
2348 b7 2349 b15 2350 b7 2351 b15 b14 b13 b6 b5 b14 b13 b6 b5 Left Channel (Lower Byte) b4 b3 Left Channel Upper Byte b12 b11 Right Channel (Lower Byte) b4 b3 Right Channel Upper Byte b12 b11 b2 b10 b2 b10 b1 b9 b1 b9 b0 b8 b0 b8
If the CD-ROM Drive does not support the CD-DA Stream-Is-Accurate capability (See "10.8.6.4 CD-ROM Capabilities and Mechanical Status Page" on page 118) then the Digital Audio data must be read as a continuous stream. If while streaming the drive must stop, there will be a non-recoverable error generated (Sense Key 0Bh ABORTED Command, Sense Code BFh LOSS OF STREAMING). This is due to the 1 second uncertainty of the address (There is no header in CD-DA Data). Reissuing the command may not return exactly the same data as the previous try. When the drive supports the Stream Accurate capability, there will be no error, only some time delay for rotational latency.
Page 149
Sync Header
Data
EDC
ECC (P&Q)
SubHeader
SmallFrame(98)
Page 150
. . .
p Q R-W
96 Bytes (RAW)
Formatted Q
24
24
24
PACK
24
PACK
24
24
24
PACK
24
PACK
PACK PACK
PACK PACK
16
Instruction
Page 151
4
P2W (0) P2W (1) ... P2W (95)
R-W Raw is returned in the format and order found on the media. It is the responsibility of the device driver to deinterleave and perform error detection and correction on the RAW data to make it usable to higher level applications.
7
P P P P P P P P P P P P
6
Q Q
3
PACK1(0) PACK1(1) ... PACK1(23) PACK2(0) PACK2(1) ... PACK2(23) PACK3(0) PACK3(1) ... PACK3(23) PACK4(0) PACK4(1) ... PACK4(23)
Q Q Q Q Q Q Q Q Q Q
Drives that can not return P or Q code with PACK data will return 0 in the unsupported P or Q bits. Each PACK is generated after 2 contiguous Sub Channel data frames consisting of 24 bytes with 6 bits of PACK data per byte.Each 96 byte Packet consists of 4 PACKs of 24 bytes each. The basic RAW format is shown in "Figure 14 - Read CD Sub-channel, R-W (100b)" on page 151. The data is synchronized with the subcode synch patterns S0 and S1. Each group of 6 bits (R-W) is called a symbol. The symbol following the synchs S0 and S1 is the rst symbol of the rst pack in a packet. The packs following the sync bytes in R~W data must be from the same block and in chronological order. To guard the data in the subcoding channels R-W, a (24,20) Reed-Solomon Error Correction Code is used. To improve the burst error correction capability, eight-way interleaving is added to this error correction system. The rst two symbols in a pack have additional protection with a (4,2) Read-Solomon Error Correction Code. The rst symbol of a pack contains a mode-switch of 3 bits and a 3-bit subdivision of mode, called item. The dened mode-item
Page 152
Item
The ZERO mode The LINE GRAPHICS mode The TV GRAPHICS mode The USER mode Reserved for future use
Description
000b (0d) 000b (0d) 001b (1d) 111b (7d) 000b (0d) All Others
The R-W information is returned as part of the raw sub-channel data. The lower 6 bits of each of the bytes contain the R-W data. This data follows the format shown in "Figure 14 - Read CD Sub-channel, R-W (100b)" on page 151. If the Q information needs to be taken from the raw data, then it shall be deinterleaved according the Red book formats.
Page 153
Page 154
ATAPI CD-ROM Specication READ CD MSF Command 10.8.16 READ CD MSF Command
The READ CD command (Family) provides one standard, universal way of accessing CD data. Rather than breaking the types of data into several related commands, this command is generic to all CD data types. This command returns any of the CD data streams, including the headers, EDC and ECC, ROM data and CD-DA data. Each type of data is enabled via the use of ags. These ags indicate which information from the CD is to be returned in the data stream. If a ag is cleared, then that particular information will not be returned. If all the ags are cleared, no data will be returned to the host and this condition is not treated as an error.
Reserved
Operation code (B9h) Expected Sector Type Reserved Reserved Starting M Field Starting S Field Starting F Field Ending M Field Ending S Field Ending F Field Flag Bits User Data EDC & Error ag(s) Reserved ECC Sub-Channel Data Selection Bits Reserved
The Starting M eld, the Starting S eld, and the Starting F eld specify the absolute MSF address at which the Read operation shall begin. The Ending M eld, the Ending S eld, and the Ending F eld specify the absolute MSF address where the Read operation shall end. All contiguous sectors between the starting and the ending MSF address shall be read. A starting MSF address equal to an ending MSF address prevents a read operation. This shall not be considered an error. If the starting MSF address is greater than the ending MSF address, the command shall be terminated with CHECK CONDITION status. The sense key shall be set to ILLEGAL REQUEST. If the starting address is not found, or if a not ready condition exists, the command shall be terminated with CHECK CONDITION status. See "10.8.15 READ CD Command" on page 143 for a description of Expected User Data Type, Flag Bits and Sub-channel Data Selection Bits.
Page 155
Table 106 - Recommended Sense Key, ASC and ASCQ for Read CD MSF Command Errors
Sense Key
05 05 06 06 02 02 02 02 02 02 03 05 05 05 0B
ASC
20 24 28 29 04 04 04 04 06 3A 02 21 64 00 BF
ASCQ
Description of Error INVALID COMMAND OPERATION CODE INVALID FIELD IN COMMAND PACKET NOT READY TO READY TRANSITION POWER ON, RESET OR BUS DEVICE RESET OCCURRED
00 01 02 03 00
LOGICAL DRIVE NOT READY - CAUSE NOT REPORTABLE LOGICAL DRIVE NOT READY - IN PROGRESS OF BECOMING READY LOGICAL DRIVE NOT READY - INITIALIZING COMMAND REQUIRED LOGICAL DRIVE NOT READY - MANUAL INTERVENTION REQUIRED
11
NO REFERENCE POSITION FOUND (media may be upside down) MEDIUM NOT PRESENT NO SEEK COMPLETE LOGICAL BLOCK ADDRESS OUT OF RANGE ILLEGAL MODE FOR THIS TRACK OR INCOMPATIBLE MEDIUM PLAY OPERATION IN PROGRESS LOSS OF STREAMING
Page 156
ATAPI CD-ROM Specication READ HEADER Command 10.8.17 READ HEADER Command
The READ HEADER command requests that the device return the CD-ROM Data Block Address Header of the requested logical block.
MSB
MSF
Reserved
See "8.6 CD-ROM Address Reporting Formats (MSF bit)" on page 78 for a description of the MSF bit. The Logical Block Address eld species the logical block at which the read header operation shall begin. See the READ (10) command for exception handling. The READ HEADER data format below denes the format for the returned CD-ROM data block address header of the requested logical block.
MSB
LSB
Page 157
The CD-ROM Data Mode eld species the CD-ROM data mode of the logical blocks in this sector of data. The values in this eld are dened in "Table 110 - CD-ROM Data Mode Codes" on page 158.
If the MSF bit is zero, the Absolute Address eld gives the logical block address of the rst logical block in the physical sector where the data for the requested logical block address is found. If the MSF bit is one, the Absolute Address eld gives the MSF address of the sector where the data for the requested logical block address is found.
Page 158
ATAPI CD-ROM Specication READ HEADER Command Table 111 - Recommended Sense Key, ASC and ASCQ for Read Header Command Errors
Sense Key
05 05 06 06 02 02 02 02 02 02 03 05 05
ASC
20 24 28 29 04 04 04 04 06 3A 02 21 64
ASCQ
Description of Error INVALID COMMAND OPERATION CODE INVALID FIELD IN COMMAND PACKET NOT READY TO READY TRANSITION POWER ON, RESET OR BUS DEVICE RESET OCCURRED
00 01 02 03 00
LOGICAL DRIVE NOT READY - CAUSE NOT REPORTABLE LOGICAL DRIVE NOT READY - IN PROGRESS OF BECOMING READY LOGICAL DRIVE NOT READY - INITIALIZING COMMAND REQUIRED LOGICAL DRIVE NOT READY - MANUAL INTERVENTION REQUIRED
NO REFERENCE POSITION FOUND (media may be upside down) MEDIUM NOT PRESENT NO SEEK COMPLETE LOGICAL BLOCK ADDRESS OUT OF RANGE ILLEGAL MODE FOR THIS TRACK OR INCOMPATIBLE MEDIUM
Page 159
Page 160
ATAPI CD-ROM Specication READ SUB-CHANNEL Command 10.8.18 READ SUB-CHANNEL Command
The READ SUB-CHANNEL command requests that the ATAPI CD-ROM Drive return the requested sub-channel data plus the state of play operations.
Operation code (42h) Reserved Reserved Sub-channel Data Format Reserved Reserved Track Number Allocation Length
MSF
(Mandatory)
Reserved
MSB
Sub-channel data returned by this command may be from the last appropriate sector encountered by a current or previous media accessing operation. When there is no current play operation, the ATAPI CD-ROM Drive may access the media to read the sub-channel data. The ATAPI CD-ROM Drive is responsible for ensuring that the data returned are current and consistent. See "8.6 CD-ROM Address Reporting Formats (MSF bit)" on page 78 for a description of the MSF bit. Support for the MSF bit is mandatory. The sub Q bit set to one requests that the ATAPI CD-ROM Drive return the Q sub-channel data. The sub Q bit set to zero requests that no sub-channel data be returned. This shall not be considered an error. Support for the SubQ bit is mandatory. When the sub Q bit is Zero, only the Sub-Channel data header is returned.
The sub-channel data format eld species the returned sub channel data. If this eld is 01h, 02h or 03h, the requested sub-Q data item is returned.
Page 161
Returned data
Reserved CD-ROM current position Media catalogue number (UPC/bar code) Track international standard recording code (ISRC) Reserved Vendor-specic
Support Requirement
Reserved Mandatory Mandatory Mandatory Optional
The track number eld species the track number from which the ISRC code is transferred. This eld shall have a value from 01h to 63h (99d), and is valid only when the sub-channel data format is 03h. If this eld is nonzero for all sub-channel data formats other than 03h the drive will terminate the command with a check condition (INVALID REQUEST / INVALID FIELD IN COMMAND PACKET).
Table 115 - CD-ROM Current Position Data Format (Format Code 01h)
Bit Byte 7 6 5 4 3 2 1 0
MSB
MSB
LSB
The Audio Status eld indicates the status of play operations. The audio status values are dened in "Table 116 - Audio Status Codes" on page 163. Audio status values 13h and 14h return information on previous audio operations; they are returned only once after the condition has occurred. If another play operation is not requested, the audio status returned for subsequent READ SUB-CHANNEL commands is 15h.
Page 162
Description
The Sub-channel Data Length species the length in bytes of the following sub-channel data block. A sub-channel data length of zero indicates that no sub-channel data block is included in the returned data. Sub-channel data length does not include the sub channel header. The Sub-Q Channel Data Block consists of control data (bytes 4 - 5), current position data (bytes 6 - 15) and identication data (bytes 16 - 47). The control data and current position data is obtained from the Q sub-channel information of the current block. Identication data may be reported that was obtained from a previous block. If identication data is reported, the data shall be valid for the sector addressed by the current position data. 1. 2. If an play operation is proceeding in the background, position data for the last sector played shall be reported. In other cases, for instance after a READ command, the ATAPI CD-ROM Drive may either report position data for the last sector processed for that operation or may report position data from the sector at the current read head position.
The ADR eld gives the type of information encoded in the Q sub-channel of this block, as shown in the following table.
Description
Sub-channel Q mode information not supplied Sub-channel Q encodes current position data (i.e. track, index, absolute address, relative address) Sub-channel Q encodes media catalogue number Sub-channel Q encodes ISRC Reserved
Page 163
Revision 2.5 January 5, 1996 7:22 pm Table 118 - Sub-channel Q Control Bits
Bit
0 1 2 3
Equals zero
Audio without pre-emphasis Digital copy prohibited Audio track Two-channel audio
Equals one
Audio with pre-emphasis Digital copy permitted Data track Four-channel audio
The Track Number eld species the track from which ISRC data is read. This eld must have a value between 01h and 63h and is valid only when the sub-channel data format eld is 03h. In this case, the ATAPI CD-ROM Drive returns ISRC data for this track. The Index Number species the index number in the current track. The Absolute CD-ROM Address eld gives the current location relative to the logical beginning of the media. If the MSF bit is zero, this eld is a logical block address. If the MSF bit is one, this eld is an absolute MSF address. The Track Relative CD-ROM Address eld gives the current location relative to the logical beginning of the current track. If the MSF bit is zero, this eld is a track relative logical block address. (If the current block is in the pre-gap area of a track, this will be a negative value, expressed as a twos-complement number.) If the MSF bit is one, this eld is the relative MSF address from the Q sub-channel.
Page 164
ATAPI CD-ROM Specication READ SUB-CHANNEL Command 10.8.18.2 Media Catalogue Number Data Format
A Media Catalogue Valid (MCVal) bit of one indicates that the media catalogue number eld is valid. A MCVal bit of zero indicates that the media catalogue number eld is not valid. The Media Catalogue Number eld contains the identifying number of this media according to the uniform product code values (UPC/EAN bar coding) expressed in ASCII. Non-zero values in this eld are controlled by the Uniform Product Code Council1) and the European Article Number Council2. A value in this eld of all ASCII zeros indicates that the media catalog number is not supplied. If media catalogue number data is found, the MCVal bit is set to one. If MCN data is not detected, the MCVal bit is set to zero to indicate the Media Catalogue Number eld is invalid. Media catalogue number data returned by this command with sub-channel data format eld code 02h may be from any block that has UPC bar code Q sub-channel data. (This code is constant anywhere in every applicable disc.) The CD-ROM Drive may either return the UPC information that it has previously read (Cached data) or may scan for the information. As the UPC is only guaranteed to be contained in 1 out of 100 sectors and errors may be encountered, the time required to return the UPC data could be several seconds.
Table 119 - Media Catalogue Number Data Format (Format Code 02h)
Bit Byte 7 6 5 4 3 2 1 0
MSB
MCVal
1. The Uniform Product Code Council is located at 8163 Old Yankee Road, Suite J, Dayton, Ohio 45459. 2. The European Article Number Council is located at Rue des Colonies, 54-BTE8, 1000 Brussels, Belgium. working draft ATAPI Page 165
7
MCVal
Reserved N1 (Most signicant) N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12 N13 Zero AFrame (Binary)
N1 through N13 shall be retrieved from the Q channel in mode 2. The data shall be encoded as ASCII characters (i.e. if N1 of the UPC is 01bcd, then N1 of the above eld shall be 49d or 31h).
TCVal
Page 166
ISRC 60 bits
00: zero:
I1, I2 are the country code; I3, I4, I5 are the owner code; I6, I7 are the year of recording; I8, I9, I10, I11, I12 are the serial number of the recording. AFrame is the absolute frame number. Note: The information returned for the ISRC may be returned as is from the media, or in some cases it may be converted to ASCII. It is recommeded that the drive convert the information to ASCII.
7
TCVal
3
Reserved
Note: The shaded Bits are used if the drive converts the data returned to ASCII
I1 (Country Code) I2 I3 (Owner Code) I4 I5 I6 (Year of Recording) I7 I8 (Serial Number) I9 I10 I11 I12 Zero AFrame Reserved
Page 167
Table 124 - Recommended Sense Key, ASC and ASCQ for Read Sub-channel Command Errors
Sense Key
05 05 06 06 02 02 02 02 02 02 03 05 05 05 05 05 05 05
ASC
20 24 28 29 04 04 04 04 06 3A 02 21 64 00 00 00 00 00
ASCQ
Description of Error INVALID COMMAND OPERATION CODE INVALID FIELD IN COMMAND PACKET NOT READY TO READY TRANSITION POWER ON, RESET OR BUS DEVICE RESET OCCURRED
00 01 02 03 00
LOGICAL DRIVE NOT READY - CAUSE NOT REPORTABLE LOGICAL DRIVE NOT READY - IN PROGRESS OF BECOMING READY LOGICAL DRIVE NOT READY - INITIALIZING COMMAND REQUIRED LOGICAL DRIVE NOT READY - MANUAL INTERVENTION REQUIRED
11 12 13 14 15
NO REFERENCE POSITION FOUND (media may be upside down) MEDIUM NOT PRESENT NO SEEK COMPLETE LOGICAL BLOCK ADDRESS OUT OF RANGE ILLEGAL MODE FOR THIS TRACK OR INCOMPATIBLE MEDIUM PLAY OPERATION IN PROGRESS PLAY OPERATION PAUSED PLAY OPERATION SUCCESSFULLY COMPLETED PLAY OPERATION STOPPED DUE TO ERROR NO CURRENT AUDIO STATUS TO RETURN
Page 168
ATAPI CD-ROM Specication READ TOC Command 10.8.19 READ TOC Command
The READ TOC command requests that the ATAPI CD-ROM Drive transfer data from the table of contents to the Host Computer. Some drives will cache the TOC data and will be able to return it during an Play command. Drives that do not cache the data will generate an error and not complete the command.
Operation code (43h) Reserved Reserved Reserved Reserved Reserved Starting Track / Session Number Allocation Length
MSF
(Mandatory)
Reserved
Format
MSB Format
See "8.6 CD-ROM Address Reporting Formats (MSF bit)" on page 78 for a description of the MSF bit. Support for the MSF bit is mandatory. To identify the multi-session CD TOC, the most signicant 2 bits of the byte at offset 9 (Format) have been assigned to identify this information. For handling multi-session and/or the Kodak PhotoCD, format 01b can be used. For drives that do not support multi-session, the First session number should be equal to the Last session number in the returned TOC information. Format eld denition: When Format in Byte 2 is zero, then Byte 9 is used. Other values for this eld are reserved for denition in MMC. Note: The Format eld in Byte 9 is a vendor-specic area and will be removed in subsequent versions of this specication. Functionality is moving to Byte 2. 00b Mandatory This mode is a backward compatible mode where the starting track eld species the starting track number for which the data shall be returned. If this value is zero, the table of contents data shall begin with the rst track on the medium. The data are returned in contiguous ascending track number order. Multi-session mode and returns the rst session number, last session number and last session address. In this format the Starting Track is reserved. Returns all Sub-channel Q data in the lead in (TOC) area, starting from a specied session number as specied in the Session Number Field. In this mode, the drive will support Q Subcode Point eld values of A0h, A1h, A2h; Track Numbers of B0h, B1h, B2h, B3h, B4h and C0h. Reserved
01b Mandatory
10b Mandatory
11b
The Starting Track Field species the starting track number for which the TOC data will be returned. The data is re-
Page 169
turned in contiguous ascending order. Valid values for the starting track eld are 0h to 63h. A value of AAh requests that the starting address of the lead out area be returned. If this value is zero, the table of contents data will begin with the rst track on the disc. If the starting track eld is not valid for the currently installed medium, the command shall be terminated with CHECK CONDITION status. The sense key shall be set to ILLEGAL REQUEST and the additional sense code set to INVALID FIELD IN COMMAND PACKET.
NOTE The maximum TOC data length possible on currently available CD-ROM media is 804 bytes, or 100 TOC track descriptors.
Table 126 - Read TOC Data Format (With Format Field = 00b)
Bit Byte
0 1 2 3
7
MSB
TOC Data Length LSB First Track Number Last Track Number
MSB
The TOC Data Block contains a four-byte header followed by zero or more TOC track descriptors. The TOC Data Length species the length in bytes of the following TOC data that is available to be transferred to the Host. The TOC Data Length Value does not include the TOC Data Length eld itself. The First Track Number eld indicates the rst track number in the table of contents. Valid track numbers are from 01d to 99d (63h). The Last Track Number eld indicates the last track number in the table of contents before the lead-out track number. The First Track Number is not required to be one. A disc may start at any valid track number. The track numbers between the First Track Number and the Last Track Number are required to be in contiguous ascending order, except for the lead-out track. The ADR eld gives the type of information encoded in the Q sub-channel of the block where this TOC entry was found. The possible ADR values are dened in "Table 117 - ADR Sub-channel Q Field" on page 163. The Control eld indicates the attributes of the track. The possible Control eld values are dened in "Table 133 - Values for Control Field in Sub-channel Q" on page 176. The Track Number eld indicates the track number for which the data in the TOC track descriptor is valid. A track number of 0AAh indicates that the track descriptor is for the start of the lead-out area.
Page 170
Table 127 - Read TOC Data Format (With Format Field = 01b)
Bit Byte
0 1 2 3
7
MSB
TOC Data Length (0Ah) LSB First Session Number Last Session Number
MSB
For Format eld 10b, the drive should return TOC data for Q-subcode mode (ADR eld) 1 and 5 (Except mode 5, point 1 through 40) in the lead in area. The First Session Number is equal to the Last Session Number for single session discs or if the drive does not support multi-session discs. The TOC Data Length shall be 10 (0Ah).
Page 171
Table 128 - Read TOC Data Format (With Format Field = 10b)
Bit Byte
0 1 2 3
7
MSB
TOC Data Length (2 + (11 * The number of Descriptors returned)) LSB First Session Number Last Session Number
See Table 131, Lead in Area (TOC), Sub-channel Q formats, on page 175 and section 10.8.19.2 on page 177 for a detailed description of bytes 2-10 above. The returned TOC data of a multi-session disc is arranged in ascending order of the session number. The TOC data within a session is arranged in the order of Q Subcode Point Field value of A0h, A1h, A2h; Track Numbers B0h, B1h, B2h, B3h, B4h and C0h. The TOC data returned shall be sorted according to the following rules: 1. 2. 3. 4. Each session of a multisession disk shall be returned independently. No mixing of any of the pointers from each session shall occur. The rst TOC entries shall be the A0, A1, A2h pointers from the session. Note that in many cases these pointers are placed at the end of the actual TOC data on the media. Following the Ax pointers will be all the Track Pointer entries. Last will be any Bx, Cx or other reserved value pointers.
Page 172
Action
Return a hex value No conversion, return as is 0 If 0-99, then convert to hex Conversion based on Point Value should be 00h Value should be 00h Convert to hex Convert to hex No Conversion No Conversion Conversion based on Point Value should be 00h Convert to Hex No Conversion Conversion based on Point Convert to hex Convert PMIN to hex, PSEC is retruned as is Convert to hex Convert to hex Convert to hex Convert to hex No conversion # Pntrs / Skip Reserved ZERO Field Track Start NRA Skip Values ADR / Cntrl
Description
Session Number Track (TOC = 0) Point MSF Field
1st / Last / Start LO 1st / Last / Start LO Lead Out Max Skip Values ORP / App Code Reserved
Page 173
Table 130 - Recommended Sense Key, ASC and ASCQ for Read TOC Command Errors
Sense Key
05 05 06 06 02 02 02 02 02 02 02 05
ASC
20 24 28 29 04 04 04 04 06 3A 57 00
ASCQ
Description of Error INVALID COMMAND OPERATION CODE INVALID FIELD IN COMMAND PACKET NOT READY TO READY TRANSITION POWER ON, RESET OR BUS DEVICE RESET OCCURRED
00 01 02 03 00
LOGICAL DRIVE NOT READY - CAUSE NOT REPORTABLE LOGICAL DRIVE NOT READY - IN PROGRESS OF BECOMING READY LOGICAL DRIVE NOT READY - INITIALIZING COMMAND REQUIRED LOGICAL DRIVE NOT READY - MANUAL INTERVENTION REQUIRED
11
NO REFERENCE POSITION FOUND (media may be upside down) MEDIUM NOT PRESENT UNABLE TO RECOVER TABLE OF CONTENTS PLAY OPERATION IN PROGRESS
Page 174
ATAPI CD-ROM Specication READ TOC Command 10.8.19.1 Sub-channel Q TOC information
1 1 1 1 5
00 00 00 00 00
01-99 A0 A1 A2 B0
4/6
00
B1
5 5 5
00 00 00
B2-B4 01-40 C0
Start position of track First Track Disc Type 00 num 00 (Absolute time is allowed) 00 Last Track 00 00 num 00 (Absolute time is allowed) 00 Start position of the Lead-out area Start time of next possible pro- # of point- Maximum start time of the outermost gram in the Recordable Area of ers in Mode Lead Out area in the Recordable Area the Hybrid Disc 5 of the Hybrid Disc 00 00 00 00 # of Skip # of Skip 00 Interval Track Pointers Pointers (N<=40) (N<=21) Skip # Skip # Skip # Skip # Skip # Skip # Skip # Ending time for the interval that Reserved Start time for interval that should be should be skipped skipped on playback OptiApplica- Reserved Reserved Start time of the rst Lead In Area of mum tion Code the Hybrid Disc recording power
00 00
Point
The Point eld denes various types of information: 01-99 A0 A1 A2 B0 Track number references First Track number in the program area Last Track number in the program area Start location of the Lead-out area Used to identify a Hybrid Disc (Photo CD) Contains start time of next possible program area B1 Number of Skip Interval Pointers & Skip Track assignments 01-40 Skip Interval Pointers B2-B4 Skip Track Assignment Pointers C0 Start time of rst Lead In area of Hybrid Disc This only exists in the rst Lead In area
This byte contains a denition of the type of disc 00h 10h 20h CD-DA or CD-ROM with rst track in Mode 1 CD-I disc CD-ROM XA disc with rst track in Mode 2
Page 175
Denition
2 Audio without Pre-emphasis 2 Audio with Pre-emphasis Copy Prohibited Copy Permitted Digital Data Broadcast Data (TBD)
Description
Copy Prohibited, 2 Audio with out pre-emphasis Copy Prohibited, 2 Audio with pre-emphasis Copy Permitted, 2 Audio with out pre-emphasis Copy Permitted, 2 Audio with pre-emphasis Copy Prohibited, Digital Data Copy Prohibited, RESERVED Copy Permitted, Digital Data Copy Permitted, RESERVED Broadcast use
Page 176
ATAPI CD-ROM Specication READ TOC Command 10.8.19.2 Example Read TOC Operations
The following example is based on a 4-session, 12-track PhotoCD disc. Data structure is shown as the data to Host. Command Packet: 43h 00 00 00 00 00 00 10h 00 80h 00 00
A/C
14 14 14 14 14 14 54 54 14 14 14 14 14 14 54 14 14 14 14 14 14 54 14 14 14 14 14 14 54
TNO
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Pnt
A0 A1 A2 01 02 03 B0 C0 A0 A1 A2 04 05 06 B0 A0 A1 A2 07 08 09 B0 A0 A1 A2 0A 0B 0C B0
Zero
00 00 00 00 00 00 02 00 00 00 00 00 00 00 01 00 00 00 00 00 00 01 00 00 00 00 00 00 01
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 26 3F C0 00 00 00 00 00 00 00 00 00 00 0 00 00 00 00 00 00 00 00 00 09 2C 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 09 32 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0 00 00 00 13 39 1A
01 20 00 03 00 00 02 08 3F 00 02 00 00 08 02 00 15 32 40 02 00 61 2C 00 04 20 00 06 00 00 08 20 08 04 28 3F 04 2E 41 06 27 36 40 02 00 07 20 00 09 00 00 0C 27 32 09 2E 08 09 34 10 0B 04 24 40 02 00 0A 20 00 0C 00 00 12 1B 1A 0E 0B 32 0E 11 34 11 08 22 40 02 00
Page 177
If you use the following command on this disc, Command Packet: 43h 00 00 00 00 00 00h 10h 00 40h 00 00, return data would be:
Description
First Session Number Last Session Number Reserved ADR/Control First Track Number in Last session Reserved Absolute CD-ROM address of rst track in last session -> 14M 9S 50F -> add 2 sec: 14M 11S 50F
Page 178
ATAPI CD-ROM Specication REQUEST SENSE Command 10.8.20 REQUEST SENSE Command
The REQUEST SENSE command requests that the ATAPI CD-ROM Drive transfer sense data to the Host Computer.
Operation code (03h) Reserved Reserved Reserved Allocation Length Reserved Reserved Reserved Reserved Reserved Reserved Reserved
The sense data: 1. 2. shall be available if an error condition (CHECK CONDITION) had previously been reported to the Host Computer; shall be available if other information (e.g. medium position) is available in any eld.
If the ATAPI CD-ROM Drive has no other sense data available to return, it shall return a sense key of NO SENSE and an additional sense code of NO ADDITIONAL SENSE INFORMATION. The sense data shall be preserved by the ATAPI CD-ROM Drive until retrieved by a REQUEST SENSE command or until the receipt of any other I/O Command. The ATAPI CD-ROM Drive shall return CHECK CONDITION status for a REQUEST SENSE command only to report exception conditions specic to the command itself. For example: 1. An ATAPI CD-ROM Drive malfunction prevents return of the sense data.
If a recovered error occurs during the execution of the REQUEST SENSE command, the ATAPI CD-ROM Drive shall return the sense data with GOOD status. If an ATAPI CD-ROM Drive returns CHECK CONDITION status for a REQUEST SENSE command, the sense data may be invalid. ATAPI CD-ROM Drives shall be capable of returning at least 18 bytes of data in response to a REQUEST SENSE command. If the allocation length is 18 or greater, and an ATAPI CD-ROM Drive returns less than 18 bytes of data, the Host Computer should assume that the bytes not transferred would have been zeros had the ATAPI CD-ROM Drive returned those bytes. Host Computers can determine how much sense data has been returned by examining the allocation length parameter in the Command Packet and the additional sense length in the sense data. ATAPI CD-ROM Drives shall not adjust the additional sense length to reect truncation if the allocation length is less than the sense data available. The sense data format for error codes 70h (current errors) and 71h (deferred errors) are dened in "Table 137 - Request Sense Standard Data" on page 180. Error code values of 72h to 7Eh are reserved. Error code 7Fh is for a vendor-specic working draft ATAPI Page 179
sense data format. ATAPI CD-ROM Drives shall implement error code 70h; implementation of error code 71h is optional. Error code values of 00h to 6Fh are not dened by this Specication and their use is not recommended.
7
Valid Reserved
ILI
Error Code (70h or 71h) Segment Number (Reserved) Reserved Information Additional Sense Length (n - 7) Command Specic Information
Sense Key
SKSV (Optional)
Additional Sense Code Additional Sense Code Qualier (Optional) Field Replaceable Unit Code (Optional) Sense Key Specic (Optional)
A Valid bit of zero indicates that the information eld is not as dened in this Specication. A Valid bit of one indicates the information eld contains valid information as dened in this Specication. ATAPI CD-ROM Drives shall implement the Valid bit. The Segment Number eld is Reserved. An Incorrect Length Indicator (ILI) bit of one indicates that the requested allocation length did not match the logical block length of the data on the medium. The Sense Key, Additional Sense Code and Additional Sense Code Qualier provide a hierarchy of information. The intention of the hierarchy is to provide a top-down approach for a Host Computer to determine information relating to the error and exception conditions. The Sense Key provides generic categories in which error and exception conditions can be reported. Host Computers would typically use sense keys for high-level error recovery procedures. Additional Sense Codes provide further detail describing the sense key. Additional Sense Code Qualiers add further detail to the additional sense code. The Additional Sense Code and Additional Sense Code Qualier can be used by Host Computers where sophisticated error recovery procedures require detailed information describing the error and exception conditions. The Sense Key eld is mandatory and indicates generic information describing an error or exception condition. The sense keys are dened in section Table 140 -, "Sense Key Descriptions", on page 183. The contents of the Information eld is command-specic and is dened within the appropriate section for the command of interest. ATAPI CD-ROM Drives shall implement the Information eld. Unless specied otherwise, this eld contains the unsigned logical block address associated with the sense key. The Additional Sense Length eld indicates the number of additional sense bytes to follow. If the allocation length of the Command Packet is too small to transfer all of the additional sense bytes, the Additional Sense Length is not adjusted to reect the truncation.
Page 180
7
SKSV MSB
6
C/D
5
Reserved
1
Bit Pointer
LSB
A Command Data (C/D) bit of one indicates that the illegal parameter is in the Command Packet. A C/D bit of zero indicates that the illegal parameter is in the data parameters sent by the Host Computer. A Bit Pointer Valid (BPV) bit of zero indicates that the value in the Bit Pointer eld is not valid. A BPV bit of one indicates that the Bit Pointer eld species which bit of the byte designated by the eld pointer eld is in error. When a multiple-bit eld is in error, the Bit Pointer eld shall point to the most-signicant (left-most) bit of the eld. The Field Pointer eld indicates which byte of the Command Packet or of the parameter data was in error. Bytes are numbered starting from zero, as shown in the tables describing the commands and parameters. When a multiple-byte eld is in error, the pointer shall point to the most signicant (left-most) byte of the eld.
Page 181
If the sense key is RECOVERED ERROR, HARDWARE ERROR or MEDIUM ERROR and if the SKSV bit is one, the sense-key specic eld shall be as shown in "Table 139 - Field Pointer Bytes" on page 182.
7
SKSV MSB
6
C/D
5
Reserved
1
Bit Pointer
LSB
The Actual Retry Count eld returns implementation-specic information on the actual number of retries of the recovery algorithm used in attempting to recover an error or exception condition. This eld should relate to the retry count elds within the Error Recovery Page of the MODE SELECT command.
2.
Deferred errors may indicate that an operation was unsuccessful long after the command performing the data transfer returned GOOD status. If data that cannot be replicated or recovered from other sources is being stored using buffered write operations, synchronization commands should be performed before the critical data is destroyed in the host Host Computer. This is necessary to be sure that recovery actions can be taken if deferred errors do occur in the storing of the data.
Page 182
ATAPI CD-ROM Specication REQUEST SENSE Command 10.8.20.3 Sense-key and Sense Code Denitions
Description
NO SENSE. Indicates that there is no specic sense key information to be reported. This would be the case for a successful command. RECOVERED ERROR. Indicates that the last command completed successfully with some recovery action performed by the ATAPI CD-ROM Drive. Details may be determinable by examining the additional sense bytes and the information eld. When multiple recovered errors occur during one command, the choice of which error to report (rst, last, most severe, etc.) is device specic. NOT READY. Indicates that the Device cannot be accessed. Operator intervention may be required to correct this condition. MEDIUM ERROR. Indicates that the command terminated with a non-recovered error condition that was probably caused by a aw in the medium or an error in the recorded data. This sense key may also be returned if the ATAPI CD-ROM Drive is unable to distinguish between a aw in the medium and a specic hardware failure (sense key 4h). HARDWARE ERROR. Indicates that the ATAPI CD-ROM Drive detected a non-recoverable hardware failure (for example, controller failure, device failure, parity error, etc.) while performing the command or during a self test. ILLEGAL REQUEST. Indicates that there was an illegal parameter in the Command Packet or in the additional parameters supplied as data for some commands. If the ATAPI CD-ROM Drive detects an invalid parameter in the Command Packet, then it shall terminate the command without altering the medium. If the ATAPI CD-ROM Drive detects an invalid parameter in the additional parameters supplied as data, then the ATAPI CD-ROM Drive may have already altered the medium. UNIT ATTENTION. Indicates that the removable medium may have been changed or the ATAPI CD-ROM Drive has been reset. DATA PROTECT. Indicates that a command that reads the medium was attempted on a block that is protected from this operation. The read operation is not performed. Reserved Reserved ABORTED COMMAND. Indicates that the device has aborted the command. The Host may be able to recover by trying the command again. This error is reported for conditions such as an overrun etc. MISCOMPARE. Indicates that the source data did not match the data read from the medium. Reserved
2h 3h
4h 5h
6h 7h 8h 9h - Ah Bh Eh Fh
Page 183
D - DIRECT ACCESS DEVICE R - READ ONLY (CD-ROM) DEVICE O - OPTICAL MEMORY DEVICE M - MEDIA CHANGER DEVICE ASC 00 00 00 00 00 00 01 02 04 04 04 04 05 06 09 09 09 09 11 11 15 15 15 17 17 17 17 17 17 18 18 18 18 18 1A 20 21 24 26 26 26 ASCQ 00 11 12 13 14 15 00 00 00 01 02 03 01 00 00 01 02 03 00 06 00 01 02 00 01 02 03 04 05 00 01 02 03 04 00 00 00 00 00 01 02
DROM
DROM R R R R R R DROM DROM DROM DROM DROM DROM DROM DRO RO RO RO DRO RO DROM DROM DRO DRO DRO DRO DRO RO DRO DRO DRO DRO R R DROM DROM DROM DROM DROM DROM DROM
DESCRIPTION
NO ADDITIONAL SENSE INFORMATION PLAY OPERATION IN PROGRESS PLAY OPERATION PAUSED PLAY OPERATION SUCCESSFULLY COMPLETED PLAY OPERATION STOPPED DUE TO ERROR NO CURRENT AUDIO STATUS TO RETURN MECHANICAL POSITIONING OR CHANGER ERROR NO SEEK COMPLETE LOGICAL DRIVE NOT READY - CAUSE NOT REPORTABLE LOGICAL DRIVE NOT READY - IN PROGRESS OF BECOMING READY LOGICAL DRIVE NOT READY - INITIALIZING COMMAND REQUIRED LOGICAL DRIVE NOT READY - MANUAL INTERVENTION REQUIRED MEDIA LOAD - EJECT FAILED NO REFERENCE POSITION FOUND TRACK FOLLOWING ERROR TRACKING SERVO FAILURE FOCUS SERVO FAILURE SPINDLE SERVO FAILURE UNRECOVERED READ ERROR CIRC UNRECOVERED ERROR RANDOM POSITIONING ERROR MECHANICAL POSITIONING OR CHANGER ERROR POSITIONING ERROR DETECTED BY READ OF MEDIUM RECOVERED DATA WITH NO ERROR CORRECTION APPLIED RECOVERED DATA WITH RETRIES RECOVERED DATA WITH POSITIVE HEAD OFFSET RECOVERED DATA WITH NEGATIVE HEAD OFFSET RECOVERED DATA WITH RETRIES AND/OR CIRC APPLIED RECOVERED DATA USING PREVIOUS SECTOR ID RECOVERED DATA WITH ERROR CORRECTION APPLIED RECOVERED DATA WITH ERROR CORRECTION & RETRIES APPLIED RECOVERED DATA - THE DATA WAS AUTO-REALLOCATED RECOVERED DATA WITH CIRC RECOVERED DATA WITH L-EC PARAMETER LIST LENGTH ERROR INVALID COMMAND OPERATION CODE LOGICAL BLOCK ADDRESS OUT OF RANGE INVALID FIELD IN COMMAND PACKET INVALID FIELD IN PARAMETER LIST PARAMETER NOT SUPPORTED PARAMETER VALUE INVALID
DROM
DESCRIPTION
NOT READY TO READY TRANSITION, MEDIUM MAY HAVE CHANGED POWER ON, RESET OR BUS DEVICE RESET OCCURRED PARAMETERS CHANGED MODE PARAMETERS CHANGED INCOMPATIBLE MEDIUM INSTALLED CANNOT READ MEDIUM - UNKNOWN FORMAT CANNOT READ MEDIUM - INCOMPATIBLE FORMAT SAVING PARAMETERS NOT SUPPORTED MEDIUM NOT PRESENT ATAPI CD-ROM DRIVE OPERATING CONDITIONS HAVE CHANGED MICROCODE HAS BEEN CHANGED DIAGNOSTIC FAILURE ON COMPONENT NN (80H-FFH) INTERNAL ATAPI CD-ROM DRIVE FAILURE OVERLAPPED COMMANDS ATTEMPTED MEDIA LOAD OR EJECT FAILED MEDIUM REMOVAL PREVENTED UNABLE TO RECOVER TABLE OF CONTENTS OPERATOR REQUEST OR STATE CHANGE INPUT (UNSPECIFIED) OPERATOR MEDIUM REMOVAL REQUEST END OF USER AREA ENCOUNTERED ON THIS TRACK ILLEGAL MODE FOR THIS TRACK PLAY OPERATION OBORTED LOSS OF STREAMING Vendor-specic. Vendor-specic QUALIFICATION OF STANDARD ASC. ALL CODES NOT SHOWN ARE RESERVED.
28 00 DROM 29 00 DROM 2A 00 DROM 2A 01 DROM 30 00 DROM 30 01 DRO 30 02 DRO 39 00 DROM 3A 00 DROM 3F 00 DROM 3F 01 DROM 40 NN DROM 44 00 DROM 4E 00 DROM 53 00 DROM 53 02 DROM 57 00 R 5A 00 DROM 5A 01 DROM 63 00 R 64 00 R B9 00 R BF 00 R 80h XXh THROUGH FFh XX XXh 80h THROUGH XXh DDh
Table 142 - Recommended Sense Key, ASC and ASCQ for Request Sense Command Errors
Sense Key
05 05 06 06
ASC
20 24 28 29
ASCQ
Description of Error INVALID COMMAND OPERATION CODE INVALID FIELD IN COMMAND PACKET NOT READY TO READY TRANSITION POWER ON, RESET OR BUS DEVICE RESET OCCURRED
Page 185
Page 186
Reserved MSB
Reserved
LSB Reserved
Reserved
Page 187
See "10.8.8.1 Play Audio with Immediate Packet Commands" on page 126 for information on overlapped commands during a SCAN operation.
7
MSB
Table 145 - Scan Starting Address in AMIN, ASEC and AFRAME Format
Bit Byte
2 3 4 5
Reserved CD-absolute time (AMIN) CD-absolute time (ASEC) CD-absolute time (AFRAME)
The AMIN, ASEC and AFRAME elds species the relative running time from the beginning of the disc. The AMIN eld has a range of 00 to 99d (63h). The ASEC ranges from 00 to 59d (3Bh). The AFRAME field has a range of 00 to 74d (4Ah). All MSF elds shall be Binary.
The Track Number eld species the track in binary notation at which the scan operation will begin. This eld has a range of 01h to 63h. Page 188 working draft ATAPI
Table 147 - Recommended Sense Key, ASC and ASCQ for Scan Command Errors
Sense Key
05 05 06 06 02 02 02 02 02 03 02 02 02 02 05 05
ASC
20 24 28 29 04 04 04 04 3A 02 06 30 30 30 21 64
ASCQ
Description of Error INVALID COMMAND OPERATION CODE INVALID FIELD IN COMMAND PACKET NOT READY TO READY TRANSITION POWER ON, RESET OR BUS DEVICE RESET OCCURRED
00 01 02 03
LOGICAL DRIVE NOT READY - CAUSE NOT REPORTABLE LOGICAL DRIVE NOT READY - IN PROGRESS OF BECOMING READY LOGICAL DRIVE NOT READY - INITIALIZING COMMAND REQUIRED LOGICAL DRIVE NOT READY - MANUAL INTERVENTION REQUIRED
00 00 01 02
MEDIUM NOT PRESENT NO SEEK COMPLETE NO REFERENCE POSITION FOUND (media may be upside down) INCOMPATIBLE MEDIUM INSTALLED CANNOT READ MEDIUM - UNKNOWN FORMAT CANNOT READ MEDIUM - INCOMPATIBLE FORMAT LOGICAL BLOCK ADDRESS OUT OF RANGE ILLEGAL MODE FOR THIS TRACK OR INCOMPATIBLE MEDIUM
When a Play CD command is actively using one of the Digital Output ports a Scan command shall be aborted with error (05/64) ILLEGAL MODE FOR THIS TRACK.
Page 189
Page 190
MSB
Table 149 - Recommended Sense Key, ASC and ASCQ for Seek Command Errors
Sense Key
05 05 06 06 02 02 02 02 02 02 03 05
ASC
20 24 28 29 04 04 04 04 06 3A 02 21
ASCQ
Description of Error INVALID COMMAND OPERATION CODE INVALID FIELD IN COMMAND PACKET NOT READY TO READY TRANSITION POWER ON, RESET OR BUS DEVICE RESET OCCURRED
00 01 02 03 00
LOGICAL DRIVE NOT READY - CAUSE NOT REPORTABLE LOGICAL DRIVE NOT READY - IN PROGRESS OF BECOMING READY LOGICAL DRIVE NOT READY - INITIALIZING COMMAND REQUIRED LOGICAL DRIVE NOT READY - MANUAL INTERVENTION REQUIRED
NO REFERENCE POSITION FOUND (media may be upside down) MEDIUM NOT PRESENT NO SEEK COMPLETE LOGICAL BLOCK ADDRESS OUT OF RANGE
Page 191
Page 192
ATAPI CD-ROM Specication SET CD SPEED Command 10.8.23 SET CD SPEED Command
The SET CD SPEED command provides a means for the Host to set the spindle speed to be used while reading and writing CD data. Note that the Play commands may not use the speed set by this command.
MSB MSB
Operation code (BBh) Reserved Read Drive Speed in Kbytes/Second LSB Reserved for Write Drive Speed in Kbytes/Second LSB Reserved Reserved Reserved Reserved Reserved Reserved
The Drive Speed parameter contains the requested Data Rate the drive should use. The drive may choose to select the speed specied or any slower rate. A value of FFFFh will set the Drive Speed to the Maximum supported. Requesting a speed faster than the drive supports will not generate an error. The actual maximum speed supported is returned in the Capabilities Mode Sense page (See "10.8.6.4 CD-ROM Capabilities and Mechanical Status Page" on page 118.) If the speed selected is less than 1x, then the drive shall reject the command, and not change the speed.
Table 151 - Recommended Sense Key, ASC and ASCQ for SET CD SPEED Command Errors
Sense Key
05 05 06 06 02 02 02 02 02 02
ASC
20 24 28 29 04 04 04 04 06 3A
ASCQ
Description of Error INVALID COMMAND OPERATION CODE INVALID FIELD IN COMMAND PACKET NOT READY TO READY TRANSITION POWER ON, RESET OR BUS DEVICE RESET OCCURRED
00 01 02 03 00
LOGICAL DRIVE NOT READY - CAUSE NOT REPORTABLE LOGICAL DRIVE NOT READY - IN PROGRESS OF BECOMING READY LOGICAL DRIVE NOT READY - INITIALIZING COMMAND REQUIRED LOGICAL DRIVE NOT READY - MANUAL INTERVENTION REQUIRED
NO REFERENCE POSITION FOUND (media may be upside down) MEDIUM NOT PRESENT
Page 193
Page 194
ATAPI CD-ROM Specication STOP PLAY / SCAN CD-ROM Command 10.8.24 STOP PLAY / SCAN CD-ROM Command
The STOP PLAY/ SCAN CD-ROM Command stops playback of CD-ROM audio commands.
Operation code (4Eh) Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved
Table 153 - Recommended Sense Key, ASC and ASCQ for STOP PLAY CD-ROM Command Errors
Sense Key
05 05 06 06 02 02 02 02 02 02 02
ASC
20 24 28 29 04 04 04 04 05 06 3A
ASCQ
Description of Error INVALID COMMAND OPERATION CODE INVALID FIELD IN COMMAND PACKET NOT READY TO READY TRANSITION POWER ON, RESET OR BUS DEVICE RESET OCCURRED
00 01 02 03 00
LOGICAL DRIVE NOT READY - CAUSE NOT REPORTABLE LOGICAL DRIVE NOT READY - IN PROGRESS OF BECOMING READY LOGICAL DRIVE NOT READY - INITIALIZING COMMAND REQUIRED LOGICAL DRIVE NOT READY - MANUAL INTERVENTION REQUIRED
MEDIA LOAD OR EJECT FAILED NO REFERENCE POSITION FOUND (media may be upside down) MEDIUM NOT PRESENT
Issuing a Stop Play / Scan command while the drive is scanning shall result in continuation of the play command. Issuing a Stop Play / Scan command while the drive is paused shall stop the play command
Page 195
ATAPI Packet Commands for CD-ROM devices STOP PLAY / SCAN CD-ROM Command
INITIALIZED
Scan Stop or end of track Play Play
Stop
SCAN
PLAY
Pause
Pause
Scan
Play or Resume
PAUSED
Page 196
ATAPI CD-ROM Specication START/STOP UNIT Command 10.8.25 START/STOP UNIT Command
The START/STOP UNIT command requests that the ATAPI CD-ROM Drive enable or disable media access operations.
Operation code (1Bh) Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved
Immed
LoEj
Start
An immediate (Immed) bit of one indicates that status shall be returned as soon as the Command Packet has been validated. An Immed bit of zero indicates that status shall be returned after the operation is completed. A start bit of one requests the Device be made ready for use. A start bit of zero requests that the Device be stopped (media cannot be accessed by the Host Computer).
Start
0 1 0 1
Operation to be Performed
Stop the Disc Start the Disc and read the TOC Eject the Disc if possible (See "Table 84 - Actions for Lock / Unlock / Eject" on page 136) Load the Disc (Close Tray)
Any attempt to Eject or Load a Disc when the Drive does not support that capability shall result in an error condition being reported to the Host (Sense key 05 ILLEGAL REQUEST, Sense Code 24 INVALID FIELD IN COMMAND PACKET.) A load eject (LoEj) bit of zero requests that no action be taken regarding loading or ejecting the medium. A LoEj bit of one requests that the medium be unloaded if the start bit is zero. A LoEj bit of one requests that the medium be loaded if the start bit is one. When the Loading Mechanism Type is a Changer utilizing individual disc change capability (4h), the Eject operation shall only eject the disc that is currently in the Play Position. If the Loading Mechanism is a changer utilizing a Cartridge (5h), then the Cartridge shall only be ejected when no media is in the play position.
Page 197
Locked / Unlocked
Unlocked Locked
Manual Eject
Changer using Cartridge with Disc in Play Position Changer using Individual disc changability with no Disc in the Play Position Unlocked Locked
Table 157 - Recommended Sense Key, ASC and ASCQ for SEEK Command Errors
Sense Key
05 05 06 06 02 02 02 02 02 02 02 04
ASC
20 24 28 29 04 04 04 04 06 3A 53 B6
ASCQ
Description of Error INVALID COMMAND OPERATION CODE INVALID FIELD IN COMMAND PACKET NOT READY TO READY TRANSITION POWER ON, RESET OR BUS DEVICE RESET OCCURRED
00 01 02 03 00 02
LOGICAL DRIVE NOT READY - CAUSE NOT REPORTABLE LOGICAL DRIVE NOT READY - IN PROGRESS OF BECOMING READY LOGICAL DRIVE NOT READY - INITIALIZING COMMAND REQUIRED LOGICAL DRIVE NOT READY - MANUAL INTERVENTION REQUIRED
NO REFERENCE POSITION FOUND (media may be upside down) MEDIUM NOT PRESENT
MEDIA REMOVAL PREVENTED MEDIA LOAD MECHNISM FAILED
Page 198
ATAPI CD-ROM Specication TEST UNIT READY Command 10.8.26 TEST UNIT READY Command
The TEST UNIT READY command provides a means to check if the Device is ready. This is not a request for a selftest. If the Device would accept an appropriate medium-access command without returning CHECK CONDITION status, this command shall return a GOOD status. If the Device cannot become operational or is in a state such that an Host Computer action (e.g. START/STOP UNIT command with LoEj = 0 & Start = 1) is required to make the unit ready, the ATAPI CD-ROM Drive shall return CHECK CONDITION status with a sense key of NOT READY.
Operation code (00h) Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved
Page 199
ATAPI Packet Commands for CD-ROM devices TEST UNIT READY Command
Table 159 - Recommended Sense Key, ASC and ASCQ for MODE SELECT Command Errors
Sense Key
00 05 05 02 02 02 02 02 02 02 02 02
ASC
00 20 24 04 04 04 04 06 30 30 30 3A
ASCQ
00
Description of Error NO ADDITIONAL SENSE INFORMATION INVALID COMMAND OPERATION CODE INVALID FIELD IN COMMAND PACKET
LOGICAL DRIVE NOT READY - CAUSE NOT REPORTABLE LOGICAL DRIVE NOT READY - IN PROGRESS OF BECOMING READY LOGICAL DRIVE NOT READY - INITIALIZING COMMAND REQUIRED LOGICAL DRIVE NOT READY - MANUAL INTERVENTION REQUIRED
00 01 02 03 00 00 01 02
NO REFERENCE POSITION FOUND (media may be upside down) INCOMPATIBLE MEDIUM INSTALLED CANNOT READ MEDIUM - UNKNOWN FORMAT CANNOT READ MEDIUM - INCOMPATIBLE FORMAT MEDIUM NOT PRESENT
Note: Some drives return ASC/ASCQ with audio, status and sense code 00 when there is no error condition.
Stop / Unload Spin Up / Load No Media Read TOC Toc Ok Cant Read Spin Up Bad Media (02/06/00) (02/30/--) Ready (00/--/--)
Media In
Eject / Unload
No Media
Page 200
Host Interface
39 1 4
Power
3 2 1
DIG GND
R GND L
40
C S
S L
M A
Host Interface
39 1 1
Power
2 3 4
GND DIG
L GND R
40
Page 201
Revision 2.6 Proposed January 5, 1996 7:21 pm 11.3 Device Conguration Jumper (Optional)
ATAPI Packet Commands for CD-ROM devices Device Conguration Jumper (Optional)
The device conguration jumper is a 6-pin, unshrouded header (Molex 70203 or equivalent) as shown in "Figure 17 CD-ROM Connectors (Rear View)" with three marked positions (CS, SL, and MA). When a shorting jumper is placed in the CS (CSEL) position the device shall use the MA (Master) or SL (Slave) jumper positions to congure the device. When the CS jumper is removed and placed such that both SL and MA are jumpered, the device shall use the host interface signal CSEL to congure the device. The device conguration jumpers shall be accessible from the rear of the drive. C S M S L A
C S M S L A
C S M S L A
C S M S L A Drive CSEL
Use CSEL
Master
Page 202
Page 203
Page 204
Annex B Connectors
70553 Series
Dimensions
Circuits 2 3 4 Dim. A
.100 2,54 .200 5,08 .300 7,62
Dim. B
.210 5,33 .320 8,13 .420 10,67
Page 205
70066-G
Dimensions
Circuits 2 3 4 Dim. A
.100 2,54 .200 5,08 .300 7,62
Dim. B
.199 5,05 .299 7,59 .399 10,13
Page 206
70203 Series
Dimensions
Circuits 4 6 Dim. A
.100 2,54 .200 5,08
In the Far East, this product has different engineering and order numbers Contact Factory for sales drawings for 70294-xxx
Dim. B
.190 4,83 .290 7,37
For circuit sized 8 through 80 add .100 or 2,54mm for each additional pin position working draft ATAPI Page 207
Page 208