Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Aug 1999 20:16:55 +0200 (CEST)
From:      Soren Schmidt <sos@freebsd.dk>
To:        mike@snafu.adept.org (Mike Hoskins)
Cc:        freebsd-current@FreeBSD.ORG, mike@snafu.adept.org
Subject:   Re: Promise/IDE
Message-ID:  <199908051816.UAA41276@freebsd.dk>
In-Reply-To: <Pine.BSF.4.10.9908050543410.4055-100000@snafu.adept.org> from Mike Hoskins at "Aug 5, 1999  5:55:30 am"

next in thread | previous in thread | raw e-mail | index | archive | help
It seems Mike Hoskins wrote:
> and I just installed a Promise Ultra66.  Here's my relevant kernel config
> stuff (following LINT's example):
> 
> pci0: unknown card DBZ4d38 (vendor=0x105a, dev=0x4d38) at 14.0 irq 9

Thats the promise controller, try the ata driver instead an use the
following patch, let me know if it works...


Index: ata-all.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/ata/ata-all.c,v
retrieving revision 1.15
diff -u -r1.15 ata-all.c
--- ata-all.c	1999/06/25 09:02:56	1.15
+++ ata-all.c	1999/08/05 18:14:11
@@ -184,6 +184,8 @@
 	    return "Intel PIIX4 IDE controller";
 	case 0x4d33105a:
 	    return "Promise Ultra/33 IDE controller";
+	case 0x4d38105a:
+	    return "Promise Ultra/66 IDE controller";
 	case 0x522910b9:
 	    return "AcerLabs Aladdin IDE controller";
 #if 0
@@ -241,7 +243,7 @@
 #endif
 
     /* if this is a Promise controller handle it specially */
-    if (type == 0x4d33105a) { 
+    if (type == 0x4d33105a || type == 0x4d38105a) { 
 	iobase_1 = pci_read_config(dev, 0x10, 4) & 0xfffc;
 	altiobase_1 = pci_read_config(dev, 0x14, 4) & 0xfffc;
 	iobase_2 = pci_read_config(dev, 0x18, 4) & 0xfffc;
@@ -318,7 +320,7 @@
 	    if (!irq)
 		printf("ata_pciattach: Unable to alloc interrupt\n");
 
-    	    if (type == 0x4d33105a)
+    	    if (type == 0x4d33105a || type == 0x4d38105a)
 		bus_setup_intr(dev, irq, INTR_TYPE_BIO, promise_intr, scp, &ih);
 	    else
 		bus_setup_intr(dev, irq, INTR_TYPE_BIO, ataintr, scp, &ih);
@@ -342,7 +344,7 @@
 	    int rid = 0;
 	    void *ih;
 
-    	    if (type != 0x4d33105a) {
+    	    if (type != 0x4d33105a && type != 0x4d38105a) {
 	        irq = bus_alloc_resource(dev, SYS_RES_IRQ, &rid, 0, ~0, 1,
 					 RF_SHAREABLE | RF_ACTIVE);
 	        if (!irq)
Index: ata-dma.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/ata/ata-dma.c,v
retrieving revision 1.8
diff -u -r1.8 ata-dma.c
--- ata-dma.c	1999/05/26 23:01:57	1.8
+++ ata-dma.c	1999/08/05 18:14:55
@@ -168,6 +168,7 @@
 	break;
 
     case 0x4d33105a:	/* Promise Ultra/33 / FastTrack controllers */
+    case 0x4d38105a:	/* Promise Ultra/66 controllers */
 	devno = (scp->unit << 1) + (device ? 1 : 0);
 	if (udmamode >=2) {
 	    printf("ata%d: %s: setting up UDMA2 mode on Promise chip ",


-Søren


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199908051816.UAA41276>