Date: Thu, 20 Jul 2000 23:48:05 +0200 From: Boris Staeblow <balu@dva.in-berlin.de> To: freebsd-stable@freebsd.org Cc: mi@privatelabs.com Subject: Re: Promise ATA100 on stable Message-ID: <20000720234805.A67636@dva.in-berlin.de>
next in thread | raw e-mail | index | archive | help
I´ve added the device ids to ata-dma.c and ata-all.c and it
seems to work. Of course there is no UDMA100 support, but
UDMA66 is working fine here.
dmesg:
atapci1: <Promise ATA100 controller> port 0xb000-0xb03f,0xb400-0xb403, \
0xb800-0xb807,0xd000-0xd003,0xd400-0xd407 mem 0xe4000000-0xe401ffff \
irq 11 at device 12.0 on pci0t 0xb800 on atapci1
ad4: 19569MB <WDC WD205AA> [39761/16/63] at ata2-master using UDMA66
ad6: 6197MB <IBM-DHEA-36481> [12592/16/63] at ata3-master using UDMA33
acd0: CDROM <TOSHIBA CD-ROM XM-6002B> at ata1-slave using PIO3
diff -ru ata.orig/ata-all.c ata/ata-all.c
--- ata.orig/ata-all.c Tue Jun 13 22:03:38 2000
+++ ata/ata-all.c Wed Jul 12 21:40:25 2000
@@ -294,6 +294,9 @@
case 0x4d38105a:
return "Promise ATA66 controller";
+ case 0x4d30105a:
+ return "Promise ATA100 controller";
+
case 0x00041103:
return "HighPoint HPT366 ATA66 controller";
@@ -379,7 +382,7 @@
device_printf(dev, "Busmastering DMA not enabled\n");
}
else {
- if (type == 0x4d33105a || type == 0x4d38105a || type == 0x00041103) {
+ if (type == 0x4d33105a || type == 0x4d38105a || type == 0x4d30105a || type == 0x00041103) {
/* Promise and HPT366 controllers support busmastering DMA */
rid = 0x20;
sc->bmio = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid,
@@ -397,6 +400,7 @@
(pci_read_config(dev, 0x53, 1) & ~0x01) | 0x02, 1);
break;
+ case 0x4d30105a:
case 0x4d38105a: /* Promise 66's need their clock changed */
outb(rman_get_start(sc->bmio) + 0x11,
inb(rman_get_start(sc->bmio) + 0x11) | 0x0a);
@@ -1094,6 +1098,7 @@
case 0x4d33105a: /* Promise 33's */
case 0x4d38105a: /* Promise 66's */
+ case 0x4d30105a: /* Promise 100´s */
{
struct ata_pci_softc *sc=device_get_softc(device_get_parent(scp->dev));
diff -ru ata.orig/ata-dma.c ata/ata-dma.c
--- ata.orig/ata-dma.c Tue Jun 13 22:03:39 2000
+++ ata/ata-dma.c Wed Jul 12 22:12:01 2000
@@ -442,6 +442,7 @@
/* we could set PIO mode timings, but we assume the BIOS did that */
break;
+ case 0x4d30105a: /* Promise Ultra100 / FastTrak100 controllers */
case 0x4d33105a: /* Promise Ultra33 / FastTrak33 controllers */
case 0x4d38105a: /* Promise Ultra66 / FastTrak66 controllers */
/* the Promise can only do DMA on ATA disks not on ATAPI devices */
@@ -449,7 +450,7 @@
(device == ATA_SLAVE && scp->devices & ATA_ATAPI_SLAVE))
break;
- if (udmamode >=4 && scp->chiptype == 0x4d38105a &&
+ if (udmamode >=4 && (scp->chiptype == 0x4d38105a || scp->chiptype == 0x4d30105a) &&
!(pci_read_config(parent, 0x50, 2)&(scp->unit ? 1<<11 : 1<<10))) {
error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
ATA_UDMA4, ATA_C_F_SETXFER, ATA_WAIT_READY);
@@ -708,6 +709,7 @@
break;
case 0x4d38105a: /* Promise 66's */
+ case 0x4d30105a: /* Promise 100´s */
switch (mode) {
default:
case ATA_PIO0: t->pa = 15; t->pb = 31; t->mb = 7; t->mc = 15; break;
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000720234805.A67636>
