Date: Sat, 14 Jul 2001 21:07:04 -0700 (PDT) From: TOGAWA Satoshi <toga@puyo.org> To: freebsd-gnats-submit@FreeBSD.org Subject: kern/28979: Patches fot Promise UltraATA100 TX2 Message-ID: <200107150407.f6F474C30549@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 28979
>Category: kern
>Synopsis: Patches fot Promise UltraATA100 TX2
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Sat Jul 14 21:10:01 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: TOGAWA Satoshi
>Release: 4.3-STABLE
>Organization:
>Environment:
FreeBSD cel.sd.puyo.org 4.3-STABLE FreeBSD 4.3-STABLE #12: Fri Jul 6 22:32:21 JST 2001 togawa@cel.sd.puyo.org:/usr/obj/usr/src/sys/CEL i386
>Description:
Promise Ultra100 TX2 controller uses a different chipset ID
than the other card (vendor=0x105a, dev=0x4d68).
The patches below add this ID to the ATA driver.
>How-To-Repeat:
Using Promise Ultra100 TX2.
>Fix:
--- ata-all.c.orig Sat Jul 14 23:59:53 2001
+++ ata-all.c Sun Jul 15 00:02:10 2001
@@ -326,6 +326,7 @@
case 0x0d30105a:
case 0x4d30105a:
+ case 0x4d68105a:
return "Promise ATA100 controller";
case 0x00041103:
@@ -426,6 +427,7 @@
case 0x4d38105a: /* Promise 66 & 100 need their clock changed */
case 0x4d30105a:
+ case 0x4d68105a:
case 0x0d30105a:
outb(rman_get_start(sc->bmio) + 0x11,
inb(rman_get_start(sc->bmio) + 0x11) | 0x0a);
@@ -1119,6 +1121,7 @@
case 0x4d33105a: /* Promise Ultra/Fasttrak 33 */
case 0x4d38105a: /* Promise Ultra/Fasttrak 66 */
case 0x4d30105a: /* Promise Ultra/Fasttrak 100 */
+ case 0x4d68105a: /* Promise Ultra100 TX2*/
case 0x0d30105a: /* Promise OEM ATA100 */
if (!(inl(rman_get_start(sc->bmio) + 0x1c) &
(scp->channel ? 0x00004000 : 0x00000400)))
--- ata-dma.c.orig Sun Jul 15 00:03:08 2001
+++ ata-dma.c Sun Jul 15 00:05:29 2001
@@ -722,6 +722,7 @@
case 0x4d33105a: /* Promise Ultra/FastTrak 33 controllers */
case 0x4d38105a: /* Promise Ultra/FastTrak 66 controllers */
case 0x4d30105a: /* Promise Ultra/FastTrak 100 controllers */
+ case 0x4d68105a: /* Promise Ultra100 TX2 */
case 0x0d30105a: /* Promise OEM ATA100 controllers */
/* the Promise can only do DMA on ATA disks not on ATAPI devices */
if ((device == ATA_MASTER && scp->devices & ATA_ATAPI_MASTER) ||
@@ -729,7 +730,7 @@
break;
if (udmamode >= 5 &&
- (scp->chiptype == 0x4d30105a || scp->chiptype == 0x0d30105a) &&
+ (scp->chiptype == 0x4d30105a || scp->chiptype == 0x4d68105a || 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);
@@ -744,7 +745,7 @@
}
}
if (udmamode >= 4 && (scp->chiptype == 0x4d38105a ||
- scp->chiptype == 0x4d30105a || scp->chiptype == 0x0d30105a) &&
+ scp->chiptype == 0x4d30105a || scp->chiptype == 0x4d68105a || 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);
@@ -1040,6 +1041,7 @@
case 0x4d38105a: /* Promise Ultra/Fasttrak 66 */
case 0x4d30105a: /* Promise Ultra/Fasttrak 100 */
+ case 0x4d68105a: /* Promise Ultra100 TX2*/
case 0x0d30105a: /* Promise OEM ATA 100 */
switch (mode) {
default:
>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?200107150407.f6F474C30549>
