summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjsg <jsg@openbsd.org>2005-07-21 09:47:57 +0000
committerjsg <jsg@openbsd.org>2005-07-21 09:47:57 +0000
commit34dd65ffa97f2372fbabbe3328259f410be567f7 (patch)
treec0188372d1fdae7917d464ce6a3836b4ee6b60f0
parentregen (diff)
downloadwireguard-openbsd-34dd65ffa97f2372fbabbe3328259f410be567f7.tar.xz
wireguard-openbsd-34dd65ffa97f2372fbabbe3328259f410be567f7.zip
ICH7 IDE/SATA support based diff from Marcello Balduccini in
NetBSD PR 30795. ok grange@
-rw-r--r--distrib/notes/amd64/hardware4
-rw-r--r--distrib/notes/cats/hardware4
-rw-r--r--distrib/notes/i386/hardware4
-rw-r--r--share/man/man4/pciide.44
-rw-r--r--sys/dev/pci/pciide.c39
5 files changed, 38 insertions, 17 deletions
diff --git a/distrib/notes/amd64/hardware b/distrib/notes/amd64/hardware
index 470dab2d0e3..20d78b708bc 100644
--- a/distrib/notes/amd64/hardware
+++ b/distrib/notes/amd64/hardware
@@ -1,4 +1,4 @@
-dnl $OpenBSD: hardware,v 1.48 2005/06/28 13:46:21 martin Exp $
+dnl $OpenBSD: hardware,v 1.49 2005/07/21 09:47:57 jsg Exp $
OpenBSD/MACHINE OSREV should work on all Athlon 64-based and
compatible designs.
@@ -32,7 +32,7 @@ dnl YENTA-compatible PCI-CardBus bridges
(RAID mode is not supported)
Intel PIIX, PIIX3, and PIIX4
Intel 82801 (ICH/ICH0/ICH2/ICH3/ICH4/ICH4-M/ICH5/ICH5R/
- ICH6/ICH6M/ICH6R)
+ ICH6/ICH6M/ICH6R/ICH7)
Intel 6300ESB
ITE IT8212F (RAID mode is not supported)
National Semiconductor PC87415
diff --git a/distrib/notes/cats/hardware b/distrib/notes/cats/hardware
index 1a4b1469945..7d7f417a121 100644
--- a/distrib/notes/cats/hardware
+++ b/distrib/notes/cats/hardware
@@ -1,4 +1,4 @@
-dnl $OpenBSD: hardware,v 1.21 2005/04/20 01:01:49 jsg Exp $
+dnl $OpenBSD: hardware,v 1.22 2005/07/21 09:47:57 jsg Exp $
OpenBSD/MACHINE runs on the Chalice/Simtec StrongARM 110 Evaluation Board.
Supported devices {:-include-:}:
@@ -12,7 +12,7 @@ Supported devices {:-include-:}:
(RAID mode is not supported)
Intel PIIX, PIIX3, and PIIX4
Intel 82801 (ICH/ICH0/ICH2/ICH3/ICH4/ICH4-M/ICH5/ICH5R/
- ICH6/ICH6M/ICH6R)
+ ICH6/ICH6M/ICH6R/ICH7)
Intel 6300ESB
National Semiconductor PC87415
NVIDIA nForce/nForce2
diff --git a/distrib/notes/i386/hardware b/distrib/notes/i386/hardware
index efcbd4dac4d..223b1b534c7 100644
--- a/distrib/notes/i386/hardware
+++ b/distrib/notes/i386/hardware
@@ -1,4 +1,4 @@
-dnl $OpenBSD: hardware,v 1.203 2005/06/28 13:46:21 martin Exp $
+dnl $OpenBSD: hardware,v 1.204 2005/07/21 09:47:57 jsg Exp $
OpenBSD/MACHINE OSREV works across a broad range of standard PCs and
clones, with a wide variety of processors and I/O bus architectures. It
can be expected to install and run with minimal difficulties on most
@@ -75,7 +75,7 @@ Supported hardware {:-include-:}:
(RAID mode is not supported)
Intel PIIX, PIIX3, and PIIX4
Intel 82801 (ICH/ICH0/ICH2/ICH3/ICH4/ICH4-M/ICH5/ICH5R/
- ICH6/ICH6M/ICH6R)
+ ICH6/ICH6M/ICH6R/ICH7)
Intel 6300ESB
ITE IT8212F (RAID mode is not supported)
National Semiconductor PC87415
diff --git a/share/man/man4/pciide.4 b/share/man/man4/pciide.4
index 673be168fef..f5dee0e29d2 100644
--- a/share/man/man4/pciide.4
+++ b/share/man/man4/pciide.4
@@ -1,4 +1,4 @@
-.\" $OpenBSD: pciide.4,v 1.50 2005/06/15 04:49:11 fgsch Exp $
+.\" $OpenBSD: pciide.4,v 1.51 2005/07/21 09:47:57 jsg Exp $
.\" $NetBSD: pciide.4,v 1.8 1999/03/16 01:19:17 garbled Exp $
.\"
.\" Copyright (c) 1998 Manuel Bouyer.
@@ -80,7 +80,7 @@ HighPoint HPT366, HPT370, HPT372, HPT302, HPT371, HPT374
.It
Intel PIIX, PIIX3, and PIIX4
.It
-Intel 82801 (ICH/ICH0/ICH2/ICH3/ICH4/ICH4-M/ICH5/ICH5R/ICH6/ICH6M/ICH6R)
+Intel 82801 (ICH/ICH0/ICH2/ICH3/ICH4/ICH4-M/ICH5/ICH5R/ICH6/ICH6M/ICH6R/ICH7)
.It
Intel 6300ESB
.It
diff --git a/sys/dev/pci/pciide.c b/sys/dev/pci/pciide.c
index b58b716e8cd..1349ec3f769 100644
--- a/sys/dev/pci/pciide.c
+++ b/sys/dev/pci/pciide.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pciide.c,v 1.197 2005/07/09 09:45:21 ho Exp $ */
+/* $OpenBSD: pciide.c,v 1.198 2005/07/21 09:47:57 jsg Exp $ */
/* $NetBSD: pciide.c,v 1.127 2001/08/03 01:31:08 tsutsui Exp $ */
/*
@@ -392,6 +392,14 @@ const struct pciide_product_desc pciide_intel_products[] = {
{ PCI_PRODUCT_INTEL_82801FR_SATA, /* Intel 82801FR (ICH6R) SATA */
IDE_PCI_CLASS_OVERRIDE,
piix_chip_map
+ },
+ { PCI_PRODUCT_INTEL_82801GB_IDE, /* Intel 82801GB (ICH7) IDE */
+ IDE_PCI_CLASS_OVERRIDE,
+ piix_chip_map
+ },
+ { PCI_PRODUCT_INTEL_82801GB_SATA_1, /* Intel 82801GB (ICH7) SATA */
+ IDE_PCI_CLASS_OVERRIDE,
+ piix_chip_map
}
};
@@ -1863,6 +1871,8 @@ piix_chip_map(struct pciide_softc *sc, struct pci_attach_args *pa)
case PCI_PRODUCT_INTEL_82801FBM_IDE:
case PCI_PRODUCT_INTEL_82801FB_SATA:
case PCI_PRODUCT_INTEL_82801FR_SATA:
+ case PCI_PRODUCT_INTEL_82801GB_IDE:
+ case PCI_PRODUCT_INTEL_82801GB_SATA_1:
sc->sc_wdcdev.cap |= WDC_CAPABILITY_UDMA;
break;
}
@@ -1889,6 +1899,8 @@ piix_chip_map(struct pciide_softc *sc, struct pci_attach_args *pa)
case PCI_PRODUCT_INTEL_82801FBM_IDE:
case PCI_PRODUCT_INTEL_82801FB_SATA:
case PCI_PRODUCT_INTEL_82801FR_SATA:
+ case PCI_PRODUCT_INTEL_82801GB_IDE:
+ case PCI_PRODUCT_INTEL_82801GB_SATA_1:
sc->sc_wdcdev.UDMA_cap = 5;
break;
default:
@@ -1900,7 +1912,8 @@ piix_chip_map(struct pciide_softc *sc, struct pci_attach_args *pa)
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_6300ESB_SATA ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_6300ESB_SATA2 ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FB_SATA ||
- sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FR_SATA) {
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FR_SATA ||
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801GB_SATA_1) {
sc->sc_wdcdev.cap |= WDC_CAPABILITY_SATA;
sc->sc_wdcdev.set_modes = sata_setup_channel;
} else if (sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82371FB_IDE) {
@@ -1918,7 +1931,8 @@ piix_chip_map(struct pciide_softc *sc, struct pci_attach_args *pa)
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_6300ESB_SATA ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_6300ESB_SATA2 ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FB_SATA ||
- sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FR_SATA)
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FR_SATA ||
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801GB_SATA_1)
goto chansetup;
WDCDEBUG_PRINT(("piix_setup_chip: old idetim=0x%x",
@@ -1944,7 +1958,8 @@ piix_chip_map(struct pciide_softc *sc, struct pci_attach_args *pa)
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801EB_IDE ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_6300ESB_IDE ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FB_IDE ||
- sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FBM_IDE) {
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FBM_IDE ||
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801GB_IDE) {
WDCDEBUG_PRINT((", IDE_CONTROL 0x%x",
pci_conf_read(sc->sc_pc, sc->sc_tag, PIIX_CONFIG)),
DEBUG_PROBE);
@@ -1961,7 +1976,9 @@ chansetup:
if (sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801EB_SATA ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801ER_SATA ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FB_SATA ||
- sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FR_SATA) {
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FR_SATA ||
+ sc->sc_pp->ide_product ==
+ PCI_PRODUCT_INTEL_82801GB_SATA_1) {
if (pciide_chansetup(sc, channel, interface) == 0)
continue;
pciide_mapchan(pa, cp, interface, &cmdsize, &ctlsize,
@@ -2008,7 +2025,8 @@ next:
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_6300ESB_SATA ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_6300ESB_SATA2 ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FB_SATA ||
- sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FR_SATA)
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FR_SATA ||
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801GB_SATA_1)
return;
WDCDEBUG_PRINT(("piix_setup_chip: idetim=0x%x",
@@ -2034,7 +2052,8 @@ next:
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801EB_IDE ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_6300ESB_IDE ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FB_IDE ||
- sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FBM_IDE) {
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FBM_IDE ||
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801GB_IDE) {
WDCDEBUG_PRINT((", IDE_CONTROL 0x%x",
pci_conf_read(sc->sc_pc, sc->sc_tag, PIIX_CONFIG)),
DEBUG_PROBE);
@@ -2201,7 +2220,8 @@ piix3_4_setup_channel(struct channel_softc *chp)
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801EB_IDE ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_6300ESB_IDE ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FB_IDE ||
- sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FBM_IDE) {
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FBM_IDE ||
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801GB_IDE) {
ideconf |= PIIX_CONFIG_PINGPONG;
}
if (sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801BAM_IDE ||
@@ -2213,7 +2233,8 @@ piix3_4_setup_channel(struct channel_softc *chp)
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801EB_IDE ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_6300ESB_IDE ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FB_IDE ||
- sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FBM_IDE) {
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FBM_IDE ||
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801GB_IDE) {
/* setup Ultra/100 */
if (drvp->UDMA_mode > 2 &&
(ideconf & PIIX_CONFIG_CR(channel, drive)) == 0)