1/*- 2 * Copyright (c) 1998,1999,2000,2001,2002 S�ren Schmidt <sos@FreeBSD.org> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 11 unchanged lines hidden (view full) --- 20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 * |
28 * $FreeBSD: head/sys/dev/ata/ata-pci.c 103255 2002-09-12 15:25:59Z sos $ |
29 */ 30 31#include "opt_ata.h" 32#include <sys/param.h> 33#include <sys/systm.h> 34#include <sys/kernel.h> 35#include <sys/disk.h> 36#include <sys/module.h> --- 163 unchanged lines hidden (view full) --- 200 else if (ata_find_dev(dev, 0x05301039, 0) || 201 ata_find_dev(dev, 0x05401039, 0) || 202 ata_find_dev(dev, 0x06201039, 0) || 203 ata_find_dev(dev, 0x06301039, 0)) 204 return "SiS 5591 ATA66 controller"; 205 else 206 return "SiS 5591 ATA33 controller"; 207 |
208 case 0x06801095: 209 return "Sil 0680 ATA133 controller"; 210 |
211 case 0x06491095: 212 return "CMD 649 ATA100 controller"; 213 214 case 0x06481095: 215 return "CMD 648 ATA66 controller"; 216 217 case 0x06461095: 218 return "CMD 646 ATA controller"; --- 284 unchanged lines hidden (view full) --- 503 break; 504 505 case 0x02121166: /* ServerWorks CSB5 enable UDMA66/100 depending on rev */ 506 pci_write_config(dev, 0x5a, 507 (pci_read_config(dev, 0x5a, 1) & ~0x40) | 508 (pci_get_revid(dev) >= 0x92) ? 0x03 : 0x02, 1); 509 break; 510 |
511 case 0x06801095: /* Sil 0680 set ATA reference clock speed */ 512 if (pci_read_config(dev, 0x8a, 1) != 0x10) 513 pci_write_config(dev, 0x8a, 514 (pci_read_config(dev, 0x8a, 1) & 0x0F) | 0x10, 1); 515 if ((pci_read_config(dev, 0x8a, 1) & 0x30) != 0x10) 516 device_printf(dev, "Sil 0680 could not set clock\n"); 517 break; 518 |
519 case 0x06461095: /* CMD 646 enable interrupts, set DMA read mode */ 520 pci_write_config(dev, 0x71, 0x01, 1); 521 break; 522 523 case 0x10001042: /* RZ 100? known bad, no DMA */ 524 case 0x10011042: 525 case 0x06401095: /* CMD 640 known bad, no DMA */ 526 controller->bmio = NULL; --- 354 unchanged lines hidden --- |