1*507c3241Smlf/* 2*507c3241Smlf * CDDL HEADER START 3*507c3241Smlf * 4*507c3241Smlf * The contents of this file are subject to the terms of the 5*507c3241Smlf * Common Development and Distribution License (the "License"). 6*507c3241Smlf * You may not use this file except in compliance with the License. 7*507c3241Smlf * 8*507c3241Smlf * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*507c3241Smlf * or http://www.opensolaris.org/os/licensing. 10*507c3241Smlf * See the License for the specific language governing permissions 11*507c3241Smlf * and limitations under the License. 12*507c3241Smlf * 13*507c3241Smlf * When distributing Covered Code, include this CDDL HEADER in each 14*507c3241Smlf * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*507c3241Smlf * If applicable, add the following below this CDDL HEADER, with the 16*507c3241Smlf * fields enclosed by brackets "[]" replaced with your own identifying 17*507c3241Smlf * information: Portions Copyright [yyyy] [name of copyright owner] 18*507c3241Smlf * 19*507c3241Smlf * CDDL HEADER END 20*507c3241Smlf */ 21*507c3241Smlf 22*507c3241Smlf/* 23*507c3241Smlf * Copyright 2000 Sun Microsystems, Inc. All rights reserved. 24*507c3241Smlf * Use is subject to license terms. 25*507c3241Smlf */ 26*507c3241Smlf 27*507c3241Smlf#ident "%Z%%M% %I% %E% SMI" 28*507c3241Smlf 29*507c3241Smlf 30*507c3241Smlf /* 31*507c3241Smlf * The interrupt reason can be interpreted 32*507c3241Smlf * from other bits as follows: 33*507c3241Smlf * 34*507c3241Smlf * DRQ IO CoD 35*507c3241Smlf * --- -- --- 36*507c3241Smlf * 0 0 1 Idle 37*507c3241Smlf * 1 0 1 Send ATAPI CDB to device 38*507c3241Smlf * 1 1 0 Data from device 39*507c3241Smlf * 1 0 0 Data to device 40*507c3241Smlf * 1 1 1 Future use 41*507c3241Smlf * 0 1 1 Status ready 42*507c3241Smlf * 43*507c3241Smlf */ 44*507c3241Smlf 45*507c3241Smlf ACTION 46*507c3241Smlf 47*507c3241Smlf ATAPI Status Bits 48*507c3241SmlfCurrent | 49*507c3241SmlfState | idle cdb datain dataout status 50*507c3241Smlf |----------------------------------------------------------------- 51*507c3241Smlfidle | cmd cmd cmd cmd cmd 52*507c3241Smlfcommand | * sendcdb * * rd-intr-reason 53*507c3241Smlfcdb | * * start-xfer start-xfer rd-intr-reason 54*507c3241Smlfdatain | * * continue-xfer * rd-intr-reason 55*507c3241Smlfdataout | * * * continue-xfer rd-intr-reason 56*507c3241Smlf 57*507c3241Smlf 58*507c3241Smlf 59*507c3241Smlf NEXT-STATE 60*507c3241Smlf 61*507c3241Smlf ATAPI Status Bits 62*507c3241SmlfCurrent | 63*507c3241SmlfState | idle cdb datain dataout status 64*507c3241Smlf |----------------------------------------------------------------- 65*507c3241Smlfidle | command command command command command 66*507c3241Smlfcommand | * cdb * * * 67*507c3241Smlfcdb | * * datain dataout (idle) 68*507c3241Smlfdatain | * * datain * (idle) 69*507c3241Smlfdataout | * * * dataout (idle) 70*507c3241Smlf 71*507c3241Smlf 72*507c3241Smlf 73*507c3241SmlfStates marked '*' should be invalid but some non-complaint drives 74*507c3241Smlfdon't transition correctly between states. 75