Date: Tue, 29 May 2001 12:43:50 -0700 (PDT) From: jswank@colltech.com To: freebsd-gnats-submit@FreeBSD.org Subject: kern/27750: [PATCH] Promise Ultra100 TX2 unsupported by ata Message-ID: <200105291943.f4TJho867259@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 27750
>Category: kern
>Synopsis: [PATCH] Promise Ultra100 TX2 unsupported by ata
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Tue May 29 12:50:01 PDT 2001
>Closed-Date:
>Last-Modified:
>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:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200105291943.f4TJho867259>
