From harada@musenken.net  Sat Dec 13 18:50:36 2003
Return-Path: <harada@musenken.net>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id 37EB416A4CE
	for <freebsd-gnats-submit@freebsd.org>; Sat, 13 Dec 2003 18:50:36 -0800 (PST)
Received: from musenken.net (radio.kouseika.titech.ac.jp [131.112.70.56])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 7987343D54
	for <freebsd-gnats-submit@freebsd.org>; Sat, 13 Dec 2003 18:49:57 -0800 (PST)
	(envelope-from harada@musenken.net)
Received: from olive.local (olive [192.168.0.78])
	by musenken.net (8.12.6p3/3.7W-ja1yad) with ESMTP id hBE2ntQQ022742
	for <freebsd-gnats-submit@freebsd.org>; Sun, 14 Dec 2003 02:49:55 GMT
Received: from musenken.net (ariel [192.168.0.77])
	by olive.local (Postfix) with ESMTP id E614F39E
	for <freebsd-gnats-submit@freebsd.org>; Sun, 14 Dec 2003 11:49:54 +0900 (JST)
Received: from ariel.local (localhost [127.0.0.1])
	by musenken.net (8.12.6/3.7W-ja1yad) with ESMTP id hBE2ns4F038633
	for <FreeBSD-gnats-submit@freebsd.org>; Sun, 14 Dec 2003 11:49:54 +0900 (JST)
Received: (from harada@localhost)
	by ariel.local (8.12.6/8.12.6/Submit) id hBE2nsTe038632;
	Sun, 14 Dec 2003 11:49:54 +0900 (JST)
Message-Id: <200312140249.hBE2nsTe038632@ariel.local>
Date: Sun, 14 Dec 2003 11:49:54 +0900 (JST)
From: Yousuke HARADA <harada@lab.ss.titech.ac.jp>
Reply-To: Yousuke HARADA <harada@lab.ss.titech.ac.jp>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: [PATCH] HPT302 ATA133 Support for 4.9-STABLE
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         60218
>Category:       kern
>Synopsis:       [PATCH] HPT302 ATA133 Support for 4.9-STABLE
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    sos
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sat Dec 13 19:00:26 PST 2003
>Closed-Date:    Mon Apr 11 11:32:00 GMT 2005
>Last-Modified:  Mon Apr 11 11:32:00 GMT 2005
>Originator:     Yousuke HARADA
>Release:        FreeBSD 4.9-STABLE i386
>Organization:
Tokyo Institute of Technology
>Environment:
System: FreeBSD armada 4.9-STABLE FreeBSD 4.9-STABLE #2: Tue Dec 2 23:49:24 JST 2003 harada@armada:/usr/obj/usr/src/sys/ARMADA i386


>Description:
4.9-STABLE on Sat Dec 13 20:33:17 JST 2003 does not support HighPoint
HPT302 ATA133 Controller.
5.2-CURRENT support HPT302, but 4.9-STABLE not.

I wrote a simple patch to support HPT302. HPT302 is resembling HPT372.

>How-To-Repeat:
boot 4.9-STABLE with HighPoint Rocket133SB(HPT302) displays:

pci0: <unknown card> (vendor=0x1103, dev=0x0006) at 10.0 irq 11

>Fix:
After applying patch below, boot time displays:

atapci1: <HighPoint HPT302 ATA133 controller> port 0xc800-0xc8ff,0xc400-0xc403,0
xc000-0xc007,0xbc00-0xbc03,0xb800-0xb807 irq 11 at device 10.0 on pci0
ata2: at 0xb800 on atapci1
ata3: at 0xc000 on atapci1
 and
ad6: 78533MB <HDS722580VLAT20> [159560/16/63] at ata3-master UDMA100

And HDD seems to works fine.
Using custom kern.flp and mfsroot.flp applied the patch, I cound install
4.9-RELEASE.

diff -ur src/sys/dev/ata.org/ata-dma.c src/sys/dev/ata/ata-dma.c
--- src/sys/dev/ata.org/ata-dma.c	Thu Dec  4 19:47:41 2003
+++ src/sys/dev/ata/ata-dma.c	Sat Dec 13 20:26:09 2003
@@ -1222,10 +1222,12 @@
     
     case 0x00041103:	/* HighPoint HPT366/368/370/372 controllers */
     case 0x00051103:	/* HighPoint HPT372 controllers */
+    case 0x00061103:	/* HighPoint HPT302 controllers */
     case 0x00081103:	/* HighPoint HPT374 controllers */
 	if (!ATAPI_DEVICE(atadev) && udmamode >= 6 && hpt_cable80(atadev) &&
 	    ((chiptype == 0x00041103 && chiprev >= 0x05) ||
 	     (chiptype == 0x00051103 && chiprev >= 0x01) ||
+	     (chiptype == 0x00061103 && chiprev >= 0x01) ||
 	     (chiptype == 0x00081103 && chiprev >= 0x07))) {
 	    error = ata_command(atadev, ATA_C_SETFEATURES, 0,
 				ATA_UDMA6, ATA_C_F_SETXFER, ATA_WAIT_READY);
@@ -1241,6 +1243,7 @@
 	if (!ATAPI_DEVICE(atadev) && udmamode >= 5 && hpt_cable80(atadev) &&
 	    ((chiptype == 0x00041103 && chiprev >= 0x03) ||
 	     (chiptype == 0x00051103 && chiprev >= 0x01) ||
+	     (chiptype == 0x00061103 && chiprev >= 0x01) ||
 	     (chiptype == 0x00081103 && chiprev >= 0x07))) {
 	    error = ata_command(atadev, ATA_C_SETFEATURES, 0,
 				ATA_UDMA5, ATA_C_F_SETXFER, ATA_WAIT_READY);
@@ -1567,7 +1570,8 @@
 	}
     }
     else if ((chiptype == 0x00041103 && chiprev >= 0x05) ||
-	     (chiptype == 0x00051103 && chiprev >= 0x01)) {
+	     (chiptype == 0x00051103 && chiprev >= 0x01) ||
+	     (chiptype == 0x00061103 && chiprev >= 0x01)) {
 	switch (mode) {						/* HPT372 */
 	case ATA_PIO0:	timing = 0x0d029d5e; break;
 	case ATA_PIO1:	timing = 0x0d029d26; break;
diff -ur src/sys/dev/ata.org/ata-pci.c src/sys/dev/ata/ata-pci.c
--- src/sys/dev/ata.org/ata-pci.c	Thu Dec  4 19:47:42 2003
+++ src/sys/dev/ata/ata-pci.c	Sat Dec 13 20:26:09 2003
@@ -335,6 +335,13 @@
 	}
 	return NULL;
 
+    case 0x00061103:
+	switch (pci_get_revid(dev)) {
+	case 0x01:
+	    return "HighPoint HPT302 ATA133 controller";
+	}
+	return NULL;
+
     case 0x00081103:
 	switch (pci_get_revid(dev)) {
 	case 0x07:
@@ -467,6 +474,7 @@
 	/* FALLTHROUGH */
 
     case 0x00051103:	/* HighPoint HPT372 */
+    case 0x00061103:	/* HighPoint HPT302 */
     case 0x00081103:	/* HighPoint HPT374 */
 	/* turn off interrupt prediction */
 	pci_write_config(dev, 0x51, (pci_read_config(dev, 0x51, 1) & ~0x03), 1);
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->sos 
Responsible-Changed-By: kris 
Responsible-Changed-When: Sun Feb 8 20:55:44 PST 2004 
Responsible-Changed-Why:  
Assign to maintainer 

http://www.freebsd.org/cgi/query-pr.cgi?pr=60218 
State-Changed-From-To: open->closed 
State-Changed-By: sos 
State-Changed-When: Mon Apr 11 11:31:24 GMT 2005 
State-Changed-Why:  
Upgrade to 5.4 suggested. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=60218 
>Unformatted:
