Index: dev/pci/pcidevs =================================================================== RCS file: /opt/r/NetBSD.cvs/src/sys/dev/pci/pcidevs,v retrieving revision 1.536 diff -u -r1.536 pcidevs --- dev/pci/pcidevs 8 Jun 2003 13:19:27 -0000 1.536 +++ dev/pci/pcidevs 1 Jul 2003 19:23:55 -0000 @@ -2343,6 +2343,7 @@ /* The 366 and 370 controllers have the same product ID */ product TRIONES HPT366 0x0004 HPT366/370 IDE Controller product TRIONES HPT372 0x0005 HPT372 IDE Controller +product TRIONES HPT371 0x0007 HPT371 IDE Controller product TRIONES HPT374 0x0008 HPT374 IDE Controller /* TriTech Microelectronics products*/ Index: dev/pci/pcidevs.h =================================================================== RCS file: /opt/r/NetBSD.cvs/src/sys/dev/pci/pcidevs.h,v retrieving revision 1.537 diff -u -r1.537 pcidevs.h --- dev/pci/pcidevs.h 8 Jun 2003 13:21:05 -0000 1.537 +++ dev/pci/pcidevs.h 1 Jul 2003 19:23:55 -0000 @@ -2350,6 +2350,7 @@ /* The 366 and 370 controllers have the same product ID */ #define PCI_PRODUCT_TRIONES_HPT366 0x0004 /* HPT366/370 IDE Controller */ #define PCI_PRODUCT_TRIONES_HPT372 0x0005 /* HPT372 IDE Controller */ +#define PCI_PRODUCT_TRIONES_HPT371 0x0007 /* HPT371 IDE Controller */ #define PCI_PRODUCT_TRIONES_HPT374 0x0008 /* HPT374 IDE Controller */ /* TriTech Microelectronics products*/ Index: dev/pci/pcidevs_data.h =================================================================== RCS file: /opt/r/NetBSD.cvs/src/sys/dev/pci/pcidevs_data.h,v retrieving revision 1.535 diff -u -r1.535 pcidevs_data.h --- dev/pci/pcidevs_data.h 8 Jun 2003 13:21:06 -0000 1.535 +++ dev/pci/pcidevs_data.h 1 Jul 2003 19:23:56 -0000 @@ -8222,6 +8222,12 @@ 0, "Triones Technologies", "HPT372 IDE Controller", + }, + { + PCI_VENDOR_TRIONES, PCI_PRODUCT_TRIONES_HPT371, + 0, + "Triones Technologies", + "HPT371 IDE Controller", }, { PCI_VENDOR_TRIONES, PCI_PRODUCT_TRIONES_HPT374, Index: dev/pci/pciide.c =================================================================== RCS file: /opt/r/NetBSD.cvs/src/sys/dev/pci/pciide.c,v retrieving revision 1.192 diff -u -r1.192 pciide.c --- dev/pci/pciide.c 17 May 2003 21:52:04 -0000 1.192 +++ dev/pci/pciide.c 1 Jul 2003 19:23:56 -0000 @@ -587,6 +587,11 @@ NULL, hpt_chip_map }, + { PCI_PRODUCT_TRIONES_HPT371, + IDE_PCI_CLASS_OVERRIDE, + NULL, + hpt_chip_map + }, { PCI_PRODUCT_TRIONES_HPT374, IDE_PCI_CLASS_OVERRIDE, NULL, @@ -3957,6 +3962,8 @@ aprint_normal(": Triones/Highpoint "); if (sc->sc_pp->ide_product == PCI_PRODUCT_TRIONES_HPT374) aprint_normal("HPT374 IDE Controller\n"); + else if (sc->sc_pp->ide_product == PCI_PRODUCT_TRIONES_HPT371) + aprint_normal("HPT371 IDE Controller\n"); else if (sc->sc_pp->ide_product == PCI_PRODUCT_TRIONES_HPT372) aprint_normal("HPT372 IDE Controller\n"); else if (sc->sc_pp->ide_product == PCI_PRODUCT_TRIONES_HPT366) { @@ -3988,6 +3995,7 @@ (revision == HPT370_REV || revision == HPT370A_REV || revision == HPT372_REV)) || sc->sc_pp->ide_product == PCI_PRODUCT_TRIONES_HPT372 || + sc->sc_pp->ide_product == PCI_PRODUCT_TRIONES_HPT371 || sc->sc_pp->ide_product == PCI_PRODUCT_TRIONES_HPT374) interface |= PCIIDE_INTERFACE_PCI(1); } @@ -4029,6 +4037,7 @@ } else { sc->sc_wdcdev.nchannels = 2; if (sc->sc_pp->ide_product == PCI_PRODUCT_TRIONES_HPT374 || + sc->sc_pp->ide_product == PCI_PRODUCT_TRIONES_HPT371 || sc->sc_pp->ide_product == PCI_PRODUCT_TRIONES_HPT372 || (sc->sc_pp->ide_product == PCI_PRODUCT_TRIONES_HPT366 && revision == HPT372_REV)) @@ -4068,6 +4077,7 @@ (revision == HPT370_REV || revision == HPT370A_REV || revision == HPT372_REV)) || sc->sc_pp->ide_product == PCI_PRODUCT_TRIONES_HPT372 || + sc->sc_pp->ide_product == PCI_PRODUCT_TRIONES_HPT371 || sc->sc_pp->ide_product == PCI_PRODUCT_TRIONES_HPT374) { /* * HPT370_REV and highter has a bit to disable interrupts, @@ -4081,6 +4091,7 @@ if ((sc->sc_pp->ide_product == PCI_PRODUCT_TRIONES_HPT366 && revision == HPT372_REV ) || sc->sc_pp->ide_product == PCI_PRODUCT_TRIONES_HPT372 || + sc->sc_pp->ide_product == PCI_PRODUCT_TRIONES_HPT371 || sc->sc_pp->ide_product == PCI_PRODUCT_TRIONES_HPT374) pciide_pci_write(sc->sc_pc, sc->sc_tag, HPT_SC2, (pciide_pci_read(sc->sc_pc, sc->sc_tag, HPT_SC2) & @@ -4129,6 +4140,9 @@ case PCI_PRODUCT_TRIONES_HPT374: after = hpt374_udma[drvp->UDMA_mode]; break; + case PCI_PRODUCT_TRIONES_HPT371: + after = hpt371_udma[drvp->UDMA_mode]; + break; case PCI_PRODUCT_TRIONES_HPT372: after = hpt372_udma[drvp->UDMA_mode]; break; @@ -4163,6 +4177,8 @@ case PCI_PRODUCT_TRIONES_HPT374: after = hpt374_dma[drvp->DMA_mode]; break; + case PCI_PRODUCT_TRIONES_HPT371: + after = hpt371_dma[drvp->DMA_mode]; case PCI_PRODUCT_TRIONES_HPT372: after = hpt372_dma[drvp->DMA_mode]; break; @@ -4189,6 +4205,8 @@ case PCI_PRODUCT_TRIONES_HPT374: after = hpt374_pio[drvp->PIO_mode]; break; + case PCI_PRODUCT_TRIONES_HPT371: + after = hpt371_pio[drvp->PIO_mode]; case PCI_PRODUCT_TRIONES_HPT372: after = hpt372_pio[drvp->PIO_mode]; break; Index: dev/pci/pciide_hpt_reg.h =================================================================== RCS file: /opt/r/NetBSD.cvs/src/sys/dev/pci/pciide_hpt_reg.h,v retrieving revision 1.9 diff -u -r1.9 pciide_hpt_reg.h --- dev/pci/pciide_hpt_reg.h 23 Aug 2002 16:24:55 -0000 1.9 +++ dev/pci/pciide_hpt_reg.h 1 Jul 2003 19:23:56 -0000 @@ -147,6 +147,14 @@ {0x1c829c62, 0x1c9a9c62, 0x1c929c62, 0x1c8e9c62, 0x1c8a9c62, 0x1cae9c62, 0x1c869c62}; +static const u_int32_t hpt371_pio[] __attribute__((__unused__)) = + {0x0ac1f48a, 0x0ac1f465, 0x0a81f454, 0x0a81f443, 0x0a81f442}; +static const u_int32_t hpt371_dma[] __attribute__((__unused__)) = + {0x228082ea, 0x22808254, 0x22808242}; +static const u_int32_t hpt371_udma[] __attribute__((__unused__)) = + {0x121882ea, 0x12148254, 0x120c8242, 0x128c8242, 0x12ac8242, + 0x12848242, 0x12808242}; + static u_int32_t hpt374_pio[] __attribute__((__unused__)) = {0x0ac1f48a, 0x0ac1f465, 0x0a81f454, 0x0a81f443, 0x0a81f442}; static u_int32_t hpt374_dma[] __attribute__((__unused__)) =