xref: /illumos-gate/usr/src/uts/intel/io/dktp/controller/ata/ata_blacklist.h (revision 67ce1dada345581246cd990d73516418f321a793)
1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9  * or http://www.opensolaris.org/os/licensing.
10  * See the License for the specific language governing permissions
11  * and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL HEADER in each
14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15  * If applicable, add the following below this CDDL HEADER, with the
16  * fields enclosed by brackets "[]" replaced with your own identifying
17  * information: Portions Copyright [yyyy] [name of copyright owner]
18  *
19  * CDDL HEADER END
20  */
21 
22 /*
23  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
24  * Use is subject to license terms.
25  */
26 
27 #ifndef _ATA_BLACKLIST_H
28 #define	_ATA_BLACKLIST_H
29 
30 
31 #ifdef	__cplusplus
32 extern "C" {
33 #endif
34 
35 /*
36  * This is the PCI-IDE chip blacklist
37  */
38 typedef struct {
39 	uint_t	b_vendorid;
40 	uint_t	b_vmask;
41 	uint_t	b_deviceid;
42 	uint_t	b_dmask;
43 	uint_t	b_flags;
44 } pcibl_t;
45 
46 extern	pcibl_t	ata_pciide_blacklist[];
47 
48 /*
49  * This is the drive blacklist
50  */
51 typedef	struct {
52 	char	*b_model;
53 	uint_t	 b_flags;
54 } atabl_t;
55 
56 extern	atabl_t	ata_drive_blacklist[];
57 
58 /*
59  * use the same flags for both lists
60  */
61 #define	ATA_BL_BOGUS	0x1	/* only use in compatibility mode */
62 #define	ATA_BL_NODMA	0x2	/* don't use DMA on this one */
63 #define	ATA_BL_1SECTOR	0x4	/* limit PIO transfers to 1 sector */
64 #define	ATA_BL_BMSTATREG_PIO_BROKEN	0x8
65 
66 				/*
67 				 * do not use bus master ide status register
68 				 * if not doing dma, or if it does not work
69 				 * properly when doing DMA (for example, on
70 				 * some lx50's!)
71 				 */
72 
73 
74 #define	ATA_BL_NORVRT	0x10
75 				/*
76 				 * Don't enable revert to power-on
77 				 * defaults before rebooting
78 				 */
79 
80 #define	ATA_BL_NO_SIMPLEX	0x20
81 				/*
82 				 * Ignore simplex bit on this device
83 				 * if set
84 				 */
85 #define	ATA_BL_ATAPI_NODMA	0x40
86 				/*
87 				 * Disable DMA for ATAPI devices because
88 				 * controller has trouble supporting it
89 				 */
90 
91 #ifdef	__cplusplus
92 }
93 #endif
94 
95 #endif /* _ATA_BLACKLIST_H */
96