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