From nobody@FreeBSD.org  Tue May 29 12:43:52 2001
Return-Path: <nobody@FreeBSD.org>
Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21])
	by hub.freebsd.org (Postfix) with ESMTP id D1DC437B422
	for <freebsd-gnats-submit@FreeBSD.org>; Tue, 29 May 2001 12:43:50 -0700 (PDT)
	(envelope-from nobody@FreeBSD.org)
Received: (from nobody@localhost)
	by freefall.freebsd.org (8.11.1/8.11.1) id f4TJho867259;
	Tue, 29 May 2001 12:43:50 -0700 (PDT)
	(envelope-from nobody)
Message-Id: <200105291943.f4TJho867259@freefall.freebsd.org>
Date: Tue, 29 May 2001 12:43:50 -0700 (PDT)
From: jswank@colltech.com
To: freebsd-gnats-submit@FreeBSD.org
Subject: [PATCH] Promise Ultra100 TX2 unsupported by ata
X-Send-Pr-Version: www-1.0

>Number:         27750
>Category:       kern
>Synopsis:       [PATCH] Promise Ultra100 TX2 unsupported by ata
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    sos
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue May 29 12:50:01 PDT 2001
>Closed-Date:    Thu Sep 6 01:55:54 PDT 2001
>Last-Modified:  Thu Sep 06 01:56:33 PDT 2001
>Originator:     Jason Swank
>Release:        4.3-STABLE
>Organization:
Collective Technologies
>Environment:
FreeBSD top 4.3-STABLE FreeBSD 4.3-STABLE #7: Sun May 27 17:15:01 EDT 2001 root@top:/usr/src/sys/compile/TOP i386
>Description:
The ata code does not support the Promise Ultra100 TX2 controller. The 
product/vendor ID is unknown to the ata driver. It is reported as: 
"pci0: <unknown card> (vendor=0x105a, dev=0x4d68)".
>How-To-Repeat:
Run a -STABLE kernel in conjuction with this controller.
>Fix:
Attached are two patches which seem to work.


--- ata-dma.c   Tue May 29 07:36:50 2001
+++ ata-dma.c.orig      Tue May 29 07:36:28 2001
@@ -723,14 +723,13 @@
     case 0x4d38105a:   /* Promise Ultra/FastTrak 66 controllers */
     case 0x4d30105a:   /* Promise Ultra/FastTrak 100 controllers */
     case 0x0d30105a:   /* Promise OEM ATA100 controllers */
-    case 0x4d68105a:   /* Promise Ultra100 TX2 controllers */
        /* the Promise can only do DMA on ATA disks not on ATAPI devices */
        if ((device == ATA_MASTER && scp->devices & ATA_ATAPI_MASTER) ||
            (device == ATA_SLAVE && scp->devices & ATA_ATAPI_SLAVE))
            break;
 
-       if (udmamode >= 5 && (scp->chiptype == 0x4d30105a || 
-           scp->chiptype == 0x0d30105a || scp->chiptype == 0x4d68105a) &&
+       if (udmamode >= 5 &&                                                    +           (scp->chiptype == 0x4d30105a || scp->chiptype == 0x0d30105a) &&
            !(pci_read_config(parent, 0x50, 2)&(scp->channel ? 1<<11 : 1<<10))){
            error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
                                ATA_UDMA5, ATA_C_F_SETXFER, ATA_WAIT_READY);    @@ -745,11 +744,10 @@
            }
        }
        if (udmamode >= 4 && (scp->chiptype == 0x4d38105a || 
-           scp->chiptype == 0x4d30105a || scp->chiptype == 0x0d30105a ||
-                       scp->chiptype == 0x4d68105a) && !(pci_read_config(parent
, 0x50, 2)
-                       &(scp->channel ? 1<<11 : 1<<10))){
-                       error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0
, 0,
-                         ATA_UDMA4, ATA_C_F_SETXFER, ATA_WAIT_READY);
+           scp->chiptype == 0x4d30105a || scp->chiptype == 0x0d30105a) &&
+           !(pci_read_config(parent, 0x50, 2)&(scp->channel ? 1<<11 : 1<<10))){
+           error = ata_command(scp, device, ATA_C_SETFEATURES, 0, 0, 0,
+                               ATA_UDMA4, ATA_C_F_SETXFER, ATA_WAIT_READY);
            if (bootverbose)
                ata_printf(scp, device,
                           "%s setting UDMA4 on Promise chip\n",
@@ -1043,7 +1041,6 @@
     case 0x4d38105a:  /* Promise Ultra/Fasttrak 66 */
     case 0x4d30105a:  /* Promise Ultra/Fasttrak 100 */
     case 0x0d30105a:  /* Promise OEM ATA 100 */
-    case 0x4d68105a:  /* Promise Ultra100 TX2 */
        switch (mode) {
        default:
        case ATA_PIO0:  t->pa = 15; t->pb = 31; t->mb = 7; t->mc = 15; break;


--- ata-all.c   Tue May 29 07:36:54 2001
+++ ata-all.c.orig      Tue May 29 07:36:10 2001
@@ -327,11 +327,8 @@
     case 0x0d30105a:
     case 0x4d30105a:
        return "Promise ATA100 controller";
-    
-    case 0x4d68105a:
-       return "Promise Ultra100 TX2 controller";
 
-               case 0x00041103:
+    case 0x00041103:
        switch (pci_get_revid(dev)) {
        case 0x00:
        case 0x01:
@@ -430,7 +427,6 @@
     case 0x4d38105a: /* Promise 66 & 100 need their clock changed */
     case 0x4d30105a:
     case 0x0d30105a:
-    case 0x4d68105a:
        outb(rman_get_start(sc->bmio) + 0x11, 
             inb(rman_get_start(sc->bmio) + 0x11) | 0x0a);
        /* FALLTHROUGH */
@@ -1124,7 +1120,6 @@
     case 0x4d38105a:   /* Promise Ultra/Fasttrak 66 */
     case 0x4d30105a:   /* Promise Ultra/Fasttrak 100 */
     case 0x0d30105a:   /* Promise OEM ATA100 */
-    case 0x4d48105a:   /* Promise Ultra100 TX2 */
        if (!(inl(rman_get_start(sc->bmio) + 0x1c) & 
              (scp->channel ? 0x00004000 : 0x00000400)))
            return;

>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->sos 
Responsible-Changed-By: dd 
Responsible-Changed-When: Sun Jul 22 08:58:28 PDT 2001 
Responsible-Changed-Why:  
Over to maintainer. 

http://www.FreeBSD.org/cgi/query-pr.cgi?pr=27750 

From: Volker Stolz <stolz@hyperion.informatik.rwth-aachen.de>
To: freebsd-gnats-submit@freebsd.org
Cc: sos@freebsd.org, jswank@colltech.com
Subject: Re: kern/27750: [PATCH] Promise Ultra100 TX2 unsupported by ata
Date: Mon, 3 Sep 2001 11:01:08 +0200

 This PR can be closed
 
 Reason: sos committed changes to -STABLE recently.
 -- 
 Neues aus Genua? http://germany.indymedia.org/
 Volker Stolz * stolz@i2.informatik.rwth-aachen.de * PGP + S/MIME
State-Changed-From-To: open->closed 
State-Changed-By: sos 
State-Changed-When: Thu Sep 6 01:55:54 PDT 2001 
State-Changed-Why:  

Promise TX2 support has been committed to both -stable & -current 


http://www.FreeBSD.org/cgi/query-pr.cgi?pr=27750 
>Unformatted:
