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 char *b_fw; 54 uint_t b_flags; 55 } atabl_t; 56 57 extern atabl_t ata_drive_blacklist[]; 58 59 /* 60 * use the same flags for both lists 61 */ 62 #define ATA_BL_BOGUS 0x1 /* only use in compatibility mode */ 63 #define ATA_BL_NODMA 0x2 /* don't use DMA on this one */ 64 #define ATA_BL_1SECTOR 0x4 /* limit PIO transfers to 1 sector */ 65 #define ATA_BL_BMSTATREG_PIO_BROKEN 0x8 66 67 /* 68 * do not use bus master ide status register 69 * if not doing dma, or if it does not work 70 * properly when doing DMA (for example, on 71 * some lx50's!) 72 */ 73 74 75 #define ATA_BL_NORVRT 0x10 76 /* 77 * Don't enable revert to power-on 78 * defaults before rebooting 79 */ 80 81 #define ATA_BL_NO_SIMPLEX 0x20 82 /* 83 * Ignore simplex bit on this device 84 * if set 85 */ 86 #define ATA_BL_ATAPI_NODMA 0x40 87 /* 88 * Disable DMA for ATAPI devices because 89 * controller has trouble supporting it 90 */ 91 92 #define ATA_BL_LBA48 0x80 93 /* 94 * the drive's ATA version is less than 6, 95 * but it support the LBA48 mode. 96 */ 97 98 #ifdef __cplusplus 99 } 100 #endif 101 102 #endif /* _ATA_BLACKLIST_H */ 103