From owner-FreeBSD-users-jp@jp.FreeBSD.org Thu Nov 28 14:09:23 2002
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6+3.4W/8.11.3) id gAS59Nb16738;
	Thu, 28 Nov 2002 14:09:23 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from feis.co.jp (YahooBB219053004028.bbtec.net [219.53.4.28])
	by castle.jp.FreeBSD.org (8.11.6+3.4W/8.11.3) with ESMTP/inet id gAS59M216733
	for <FreeBSD-users-jp@jp.FreeBSD.org>; Thu, 28 Nov 2002 14:09:22 +0900 (JST)
	(envelope-from togarashi@jo.to)
Received: from flash.pv.feis.co.jp (flash.pv.feis.co.jp [192.168.0.66])
  	by feis.co.jp (8.12.5/8.12.5) with ESMTP id gAS59LGm017433
  	for <FreeBSD-users-jp@jp.FreeBSD.org>; Thu, 28 Nov 2002 14:09:21 +0900 (JST)
  	env-from (togarashi@jo.to)
Received: by flash.pv.feis.co.jp (8.12.6/8.12.6/flash) with ESMTP id gAS59LAd014923
	for <FreeBSD-users-jp@jp.FreeBSD.org>; Thu, 28 Nov 2002 14:09:21 +0900 (JST)
X-URL: http://jo.to/
X-CallSign: JA7VCV
Message-Id: <5.0.2.7.2.20021128135910.06116ec8@flash.pv.feis.co.jp>
X-Sender: 
X-Mailer: QUALCOMM Windows Eudora Version 5.0.2-Jr2
To: FreeBSD-users-jp@jp.FreeBSD.org
From: =?ISO-2022-JP?B?IkhpdG9zaGkgU3V6dWtpIC8gGyRCTmtMWiEhNlEbKEIi?= 
 <togarashi@jo.to>
Mime-Version: 1.0
Content-Type: text/plain; charset="ISO-2022-JP"
Content-Transfer-Encoding: 7bit
Reply-To: FreeBSD-users-jp@jp.FreeBSD.org
Precedence: list
Date: Thu, 28 Nov 2002 14:09:18 +0900
X-Sequence: FreeBSD-users-jp 72368
Subject: [FreeBSD-users-jp 72368] HPT371 ATA/133
Errors-To: owner-FreeBSD-users-jp@jp.FreeBSD.org
Sender: owner-FreeBSD-users-jp@jp.FreeBSD.org
X-Originator: togarashi@jo.to
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+021111

$B!!NkLZ$G$9!#(B

$B!!(BHighPoint HPT371$B%A%C%WEk:\$N(BRocket 133S$B$H$$$&(BATA/133 1ch$B$N(B
ATA$B%+!<%I$rF~<j$7$^$7$?!#(B
  $B$3$N(BATA$B%+!<%I$O!"(BRocket 133$B$H$$$&@=IJ$H$O0c$$!"(BBIOS ROM$B$O(B
$BEk:\$5$l$F$^$;$s$N$G!"%^%6!<%\!<%I(BBIOS$B$K(BCBROM$B$H$$$&%D!<%k$G(B
HPT371 BIOS$B$rDI2C$9$k$3$H$G!"%V!<%H2DG=$K$7$^$7$?!#(B
$B!!$7$+$7!"(BFreeBSD 4.7R$B$G$O!"$3$N%+!<%I$OL$%5%]!<%H$G$7$?!#(B
$B!!E:IU%Q%C%A$G!"LdBj$J$/F0:n$9$k$3$H$r3NG'$7$^$7$?$,!"(B
1ch$B$N$O$:$,!"(Bata2,ata3$B$,G'<1$5$l!"(Bata3$B$,;H$o$l$F$7$^$C$F$^$9!#(B
  HPT371$B$K$OFbItE*$K$O(B2ch$BB8:_$9$k$+$OITL@$G$9$,!"%Q%C%A$N(B
$B4V0c$$$K5/0x$9$k$N$+$b$7$l$^$;$s!#(B
$B!!$J$*!"(BBIOS ROM$BEk:\$N$b$N$O!"(BBIOS$B%U%!%$%k$NHf3S$K$h$j(B
chip ID$B$,(B0x00061103$B$G$"$k$i$7$/!"%Q%C%A$K$b4^$a$^$7$?$,!"3NG'$O(B
$B$7$F$$$^$;$s!#(B

[dmesg]
FreeBSD 4.7-RELEASE-p2 #2: Thu Nov 28 19:58:16 JST 2002
--snip--
atapci0: <HighPoint HPT371 ATA133 controller> port 
0xc400-0xc4ff,0xc000-0xc003,0xbc00-0xbc07,0xb800-0xb803,0xb400-0xb407 irq 
15 at device 5.0 on pci1
ata2: at 0xb400 on atapci0
ata3: at 0xbc00 on atapci0
--snip--
ad6: 14649MB <IBM-DTLA-307015> [29765/16/63] at ata3-master UDMA100
ad7: 14649MB <IBM-DTLA-307015> [29765/16/63] at ata3-slave UDMA100

[pciconf]
atapci0@pci1:5:0:	class=0x010400 card=0x00011103 chip=0x00071103 rev=0x01 
hdr=0x00
    vendor   = 'HighPoint Technologies Inc.'
    device   = 'HPT371 UDMA/ATA133 EIDE Controller'
    class    = mass storage
    subclass = RAID

*** ata-dma.c.orig	Thu Oct 10 07:42:05 2002
--- ata-dma.c	Thu Nov 28 13:23:57 2002
***************
*** 1049,1058 ****
--- 1049,1062 ----
      
      case 0x00041103:	/* HighPoint HPT366/368/370/372 controllers */
      case 0x00051103:	/* HighPoint HPT372 controllers */
+     case 0x00061103:	/* HighPoint HPT371 controllers */
+     case 0x00071103:	/* HighPoint HPT371 controllers */
      case 0x00081103:	/* HighPoint HPT374 controllers */
  	if (!ATAPI_DEVICE(ch, device) && udmamode >= 6 && hpt_cable80(ch) &&
  	    ((ch->chiptype == 0x00041103 && pci_get_revid(parent) >= 0x05) ||
  	     (ch->chiptype == 0x00051103 && pci_get_revid(parent) >= 0x01) ||
+ 	     (ch->chiptype == 0x00061103 && pci_get_revid(parent) >= 0x01) ||
+ 	     (ch->chiptype == 0x00071103 && pci_get_revid(parent) >= 0x01) ||
  	     (ch->chiptype == 0x00081103 && pci_get_revid(parent) >= 0x07))) {
  	    error = ata_command(atadev, ATA_C_SETFEATURES, 0,
  				ATA_UDMA6, ATA_C_F_SETXFER, ATA_WAIT_READY);
***************
*** 1068,1073 ****
--- 1072,1079 ----
  	if (!ATAPI_DEVICE(ch, device) && udmamode >= 5 && hpt_cable80(ch) &&
  	    ((ch->chiptype == 0x00041103 && pci_get_revid(parent) >= 0x03) ||
  	     (ch->chiptype == 0x00051103 && pci_get_revid(parent) >= 0x01) ||
+ 	     (ch->chiptype == 0x00061103 && pci_get_revid(parent) >= 0x01) ||
+ 	     (ch->chiptype == 0x00071103 && pci_get_revid(parent) >= 0x01) ||
  	     (ch->chiptype == 0x00081103 && pci_get_revid(parent) >= 0x07))) {
  	    error = ata_command(atadev, ATA_C_SETFEATURES, 0,
  				ATA_UDMA5, ATA_C_F_SETXFER, ATA_WAIT_READY);
***************
*** 1337,1344 ****
      device_t parent = device_get_parent(ch->dev);
      u_int32_t timing;
  
!     if (ch->chiptype == 0x00081103 && pci_get_revid(parent) >= 0x07) {
! 	switch (mode) {						/* HPT374 */
  	case ATA_PIO0:	timing = 0x0ac1f48a; break;
  	case ATA_PIO1:	timing = 0x0ac1f465; break;
  	case ATA_PIO2:	timing = 0x0a81f454; break;
--- 1343,1352 ----
      device_t parent = device_get_parent(ch->dev);
      u_int32_t timing;
  
!     if ((ch->chiptype == 0x00081103 && pci_get_revid(parent) >= 0x07) ||
!         (ch->chiptype == 0x00071103 && pci_get_revid(parent) >= 0x01) ||
!         (ch->chiptype == 0x00061103 && pci_get_revid(parent) >= 0x01)) {
! 	switch (mode) {						/* HPT374/HPT371 */
  	case ATA_PIO0:	timing = 0x0ac1f48a; break;
  	case ATA_PIO1:	timing = 0x0ac1f465; break;
  	case ATA_PIO2:	timing = 0x0a81f454; break;
***************
*** 1435,1441 ****
      device_t parent = device_get_parent(ch->dev);
      u_int8_t reg, val, res;
  
!     if (ch->chiptype == 0x00081103 && pci_get_function(parent) == 1) {
  	reg = ch->unit ? 0x57 : 0x53;
  	val = pci_read_config(parent, reg, 1);
  	pci_write_config(parent, reg, val | 0x80, 1);
--- 1443,1451 ----
      device_t parent = device_get_parent(ch->dev);
      u_int8_t reg, val, res;
  
!     if ((ch->chiptype == 0x00081103 && pci_get_function(parent) == 1) ||
!         (ch->chiptype == 0x00071103 && pci_get_function(parent) == 1) ||
!         (ch->chiptype == 0x00061103 && pci_get_function(parent) == 1)) {
  	reg = ch->unit ? 0x57 : 0x53;
  	val = pci_read_config(parent, reg, 1);
  	pci_write_config(parent, reg, val | 0x80, 1);
*** ata-pci.c.orig	Thu Oct 10 07:42:05 2002
--- ata-pci.c	Thu Nov 28 13:22:56 2002
***************
*** 308,313 ****
--- 308,321 ----
  	}
  	return NULL;
  
+     case 0x00061103:
+     case 0x00071103:
+ 	switch (pci_get_revid(dev)) {
+ 	case 0x01:
+ 	    return "HighPoint HPT371 ATA133 controller";
+ 	}
+ 	return NULL;
+ 
      case 0x00081103:
  	switch (pci_get_revid(dev)) {
  	case 0x07:
***************
*** 440,445 ****
--- 448,455 ----
  	/* FALLTHROUGH */
  
      case 0x00051103:	/* HighPoint HPT372 */
+     case 0x00061103:	/* HighPoint HPT371 */
+     case 0x00071103:	/* HighPoint HPT371 */
      case 0x00081103:	/* HighPoint HPT374 */
  	/* turn off interrupt prediction */
  	pci_write_config(dev, 0x51, (pci_read_config(dev, 0x51, 1) & ~0x03), 1);
***************
*** 558,563 ****
--- 568,575 ----
      switch (ch->chiptype) {
      case 0x00041103:	/* HighPoint HPT366/368/370/372 */
      case 0x00051103:	/* HighPoint HPT372 */
+     case 0x00061103:	/* HighPoint HPT371 */
+     case 0x00071103:	/* HighPoint HPT371 */
      case 0x00081103:	/* HighPoint HPT374 */
  	if (((dmastat = ata_dmastatus(ch)) &
  	    (ATA_BMSTAT_ACTIVE | ATA_BMSTAT_INTERRUPT)) != ATA_BMSTAT_INTERRUPT)
*** ata-raid.c.orig	Thu Oct 10 07:42:06 2002
--- ata-raid.c	Thu Nov 28 13:24:14 2002
***************
*** 125,131 ****
  	/* test RAID bit in PCI reg XXX */
  	return (ar_promise_read_conf(adp, ar_table, 0));
  
!     case 0x00041103: case 0x00051103: case 0x00081103:
  	return (ar_highpoint_read_conf(adp, ar_table));
  
      default:
--- 125,131 ----
  	/* test RAID bit in PCI reg XXX */
  	return (ar_promise_read_conf(adp, ar_table, 0));
  
!     case 0x00041103: case 0x00051103: case 0x00081103: case 0x00071103: 
case 0x00061103:
  	return (ar_highpoint_read_conf(adp, ar_table));
  
      default:


--
$BNkLZ!!6Q(B(Hitoshi Suzuki) togarashi@jo.to
                         suzuki@ihatov.org

