1507c3241Smlf /*
2507c3241Smlf  * CDDL HEADER START
3507c3241Smlf  *
4507c3241Smlf  * The contents of this file are subject to the terms of the
5507c3241Smlf  * Common Development and Distribution License (the "License").
6507c3241Smlf  * You may not use this file except in compliance with the License.
7507c3241Smlf  *
8507c3241Smlf  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9507c3241Smlf  * or http://www.opensolaris.org/os/licensing.
10507c3241Smlf  * See the License for the specific language governing permissions
11507c3241Smlf  * and limitations under the License.
12507c3241Smlf  *
13507c3241Smlf  * When distributing Covered Code, include this CDDL HEADER in each
14507c3241Smlf  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15507c3241Smlf  * If applicable, add the following below this CDDL HEADER, with the
16507c3241Smlf  * fields enclosed by brackets "[]" replaced with your own identifying
17507c3241Smlf  * information: Portions Copyright [yyyy] [name of copyright owner]
18507c3241Smlf  *
19507c3241Smlf  * CDDL HEADER END
20507c3241Smlf  */
21507c3241Smlf 
22507c3241Smlf /*
23f304523cSzhongyan gu - Sun Microsystems - Beijing China  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
24507c3241Smlf  * Use is subject to license terms.
25507c3241Smlf  */
26507c3241Smlf 
27507c3241Smlf #ifndef _ATA_BLACKLIST_H
28507c3241Smlf #define	_ATA_BLACKLIST_H
29507c3241Smlf 
30507c3241Smlf 
31507c3241Smlf #ifdef	__cplusplus
32507c3241Smlf extern "C" {
33507c3241Smlf #endif
34507c3241Smlf 
35507c3241Smlf /*
36507c3241Smlf  * This is the PCI-IDE chip blacklist
37507c3241Smlf  */
38507c3241Smlf typedef struct {
39507c3241Smlf 	uint_t	b_vendorid;
40507c3241Smlf 	uint_t	b_vmask;
41507c3241Smlf 	uint_t	b_deviceid;
42507c3241Smlf 	uint_t	b_dmask;
43507c3241Smlf 	uint_t	b_flags;
44507c3241Smlf } pcibl_t;
45507c3241Smlf 
46507c3241Smlf extern	pcibl_t	ata_pciide_blacklist[];
47507c3241Smlf 
48507c3241Smlf /*
49507c3241Smlf  * This is the drive blacklist
50507c3241Smlf  */
51507c3241Smlf typedef	struct {
52507c3241Smlf 	char	*b_model;
53744a0601SLing Albert Ke 	char    *b_fw;
54507c3241Smlf 	uint_t	 b_flags;
55507c3241Smlf } atabl_t;
56507c3241Smlf 
57507c3241Smlf extern	atabl_t	ata_drive_blacklist[];
58507c3241Smlf 
59507c3241Smlf /*
60507c3241Smlf  * use the same flags for both lists
61507c3241Smlf  */
62507c3241Smlf #define	ATA_BL_BOGUS	0x1	/* only use in compatibility mode */
63507c3241Smlf #define	ATA_BL_NODMA	0x2	/* don't use DMA on this one */
64507c3241Smlf #define	ATA_BL_1SECTOR	0x4	/* limit PIO transfers to 1 sector */
65507c3241Smlf #define	ATA_BL_BMSTATREG_PIO_BROKEN	0x8
66507c3241Smlf 
67507c3241Smlf 				/*
68507c3241Smlf 				 * do not use bus master ide status register
69507c3241Smlf 				 * if not doing dma, or if it does not work
70507c3241Smlf 				 * properly when doing DMA (for example, on
71507c3241Smlf 				 * some lx50's!)
72507c3241Smlf 				 */
73507c3241Smlf 
74507c3241Smlf 
75507c3241Smlf #define	ATA_BL_NORVRT	0x10
76507c3241Smlf 				/*
77507c3241Smlf 				 * Don't enable revert to power-on
78507c3241Smlf 				 * defaults before rebooting
79507c3241Smlf 				 */
80507c3241Smlf 
81507c3241Smlf #define	ATA_BL_NO_SIMPLEX	0x20
82507c3241Smlf 				/*
83507c3241Smlf 				 * Ignore simplex bit on this device
84507c3241Smlf 				 * if set
85507c3241Smlf 				 */
86f304523cSzhongyan gu - Sun Microsystems - Beijing China #define	ATA_BL_ATAPI_NODMA	0x40
87f304523cSzhongyan gu - Sun Microsystems - Beijing China 				/*
88f304523cSzhongyan gu - Sun Microsystems - Beijing China 				 * Disable DMA for ATAPI devices because
89f304523cSzhongyan gu - Sun Microsystems - Beijing China 				 * controller has trouble supporting it
90f304523cSzhongyan gu - Sun Microsystems - Beijing China 				 */
91f304523cSzhongyan gu - Sun Microsystems - Beijing China 
92*8c112d45SColin Yi #define	ATA_BL_LBA48	0x80
93*8c112d45SColin Yi 				/*
94*8c112d45SColin Yi 				 * the drive's ATA version is less than 6,
95*8c112d45SColin Yi 				 * but it support the LBA48 mode.
96*8c112d45SColin Yi 				 */
97*8c112d45SColin Yi 
98507c3241Smlf #ifdef	__cplusplus
99507c3241Smlf }
100507c3241Smlf #endif
101507c3241Smlf 
102507c3241Smlf #endif /* _ATA_BLACKLIST_H */
103