summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/amd64/pci/pci_bus.c9
-rw-r--r--sys/amd64/pci/pci_cfgreg.c9
-rw-r--r--sys/dev/usb/uhci_pci.c16
-rw-r--r--sys/i386/isa/pcibus.c9
-rw-r--r--sys/i386/pci/pci_bus.c9
-rw-r--r--sys/i386/pci/pci_cfgreg.c9
-rw-r--r--sys/i386/pci/pci_pir.c9
-rw-r--r--sys/pci/pcisupport.c35
-rw-r--r--sys/pci/uhci_pci.c16
9 files changed, 118 insertions, 3 deletions
diff --git a/sys/amd64/pci/pci_bus.c b/sys/amd64/pci/pci_bus.c
index f9aa406..838ef22 100644
--- a/sys/amd64/pci/pci_bus.c
+++ b/sys/amd64/pci/pci_bus.c
@@ -279,6 +279,15 @@ nexus_pcib_is_host_bridge(pcicfgregs *cfg,
/* XXX This is a guess */
*busnum = pci_cfgread(cfg, 0x41, 1);
break;
+ case 0x71208086:
+ s = "Intel 82810 (i810 GMCH) Host To Hub bridge";
+ break;
+ case 0x71228086:
+ s = "Intel 82810-DC100 (i810-DC100 GMCH) Host To Hub bridge";
+ break;
+ case 0x71248086:
+ s = "Intel 82810E (i810E GMCH) Host To Hub bridge";
+ break;
case 0x71808086:
s = "Intel 82443LX (440 LX) host to PCI bridge";
break;
diff --git a/sys/amd64/pci/pci_cfgreg.c b/sys/amd64/pci/pci_cfgreg.c
index f9aa406..838ef22 100644
--- a/sys/amd64/pci/pci_cfgreg.c
+++ b/sys/amd64/pci/pci_cfgreg.c
@@ -279,6 +279,15 @@ nexus_pcib_is_host_bridge(pcicfgregs *cfg,
/* XXX This is a guess */
*busnum = pci_cfgread(cfg, 0x41, 1);
break;
+ case 0x71208086:
+ s = "Intel 82810 (i810 GMCH) Host To Hub bridge";
+ break;
+ case 0x71228086:
+ s = "Intel 82810-DC100 (i810-DC100 GMCH) Host To Hub bridge";
+ break;
+ case 0x71248086:
+ s = "Intel 82810E (i810E GMCH) Host To Hub bridge";
+ break;
case 0x71808086:
s = "Intel 82443LX (440 LX) host to PCI bridge";
break;
diff --git a/sys/dev/usb/uhci_pci.c b/sys/dev/usb/uhci_pci.c
index 0a3959b..a5d6c9e 100644
--- a/sys/dev/usb/uhci_pci.c
+++ b/sys/dev/usb/uhci_pci.c
@@ -83,6 +83,10 @@ static const char *uhci_device_piix3 = "Intel 82371SB (PIIX3) USB controller";
#define PCI_UHCI_DEVICEID_PIIX4 0x71128086
#define PCI_UHCI_DEVICEID_PIIX4E 0x71128086 /* no separate stepping */
static const char *uhci_device_piix4 = "Intel 82371AB/EB (PIIX4) USB controller";
+#define PCI_UHCI_DEVICEID_ICH 0x24128086
+static const char *uhci_device_ich = "Intel 82801AA (ICH) USB controller";
+#define PCI_UHCI_DEVICEID_ICH0 0x24228086
+static const char *uhci_device_ich0 = "Intel 82801AB (ICH0) USB controller";
#define PCI_UHCI_DEVICEID_VT83C572 0x30381106
static const char *uhci_device_vt83c572 = "VIA 83C572 USB controller";
@@ -124,6 +128,10 @@ uhci_pci_match(device_t self)
return (uhci_device_piix3);
} else if (device_id == PCI_UHCI_DEVICEID_PIIX4) {
return (uhci_device_piix4);
+ } else if (device_id == PCI_UHCI_DEVICEID_ICH) {
+ return (uhci_device_ich);
+ } else if (device_id == PCI_UHCI_DEVICEID_ICH0) {
+ return (uhci_device_ich0);
} else if (device_id == PCI_UHCI_DEVICEID_VT83C572) {
return (uhci_device_vt83c572);
} else {
@@ -200,6 +208,14 @@ uhci_pci_attach(device_t self)
device_set_desc(sc->sc_bus.bdev, uhci_device_piix4);
sprintf(sc->sc_vendor, "Intel");
break;
+ case PCI_UHCI_DEVICEID_ICH:
+ device_set_desc(sc->sc_bus.bdev, uhci_device_ich);
+ sprintf(sc->sc_vendor, "Intel");
+ break;
+ case PCI_UHCI_DEVICEID_ICH0:
+ device_set_desc(sc->sc_bus.bdev, uhci_device_ich0);
+ sprintf(sc->sc_vendor, "Intel");
+ break;
case PCI_UHCI_DEVICEID_VT83C572:
device_set_desc(sc->sc_bus.bdev, uhci_device_vt83c572);
sprintf(sc->sc_vendor, "VIA");
diff --git a/sys/i386/isa/pcibus.c b/sys/i386/isa/pcibus.c
index f9aa406..838ef22 100644
--- a/sys/i386/isa/pcibus.c
+++ b/sys/i386/isa/pcibus.c
@@ -279,6 +279,15 @@ nexus_pcib_is_host_bridge(pcicfgregs *cfg,
/* XXX This is a guess */
*busnum = pci_cfgread(cfg, 0x41, 1);
break;
+ case 0x71208086:
+ s = "Intel 82810 (i810 GMCH) Host To Hub bridge";
+ break;
+ case 0x71228086:
+ s = "Intel 82810-DC100 (i810-DC100 GMCH) Host To Hub bridge";
+ break;
+ case 0x71248086:
+ s = "Intel 82810E (i810E GMCH) Host To Hub bridge";
+ break;
case 0x71808086:
s = "Intel 82443LX (440 LX) host to PCI bridge";
break;
diff --git a/sys/i386/pci/pci_bus.c b/sys/i386/pci/pci_bus.c
index f9aa406..838ef22 100644
--- a/sys/i386/pci/pci_bus.c
+++ b/sys/i386/pci/pci_bus.c
@@ -279,6 +279,15 @@ nexus_pcib_is_host_bridge(pcicfgregs *cfg,
/* XXX This is a guess */
*busnum = pci_cfgread(cfg, 0x41, 1);
break;
+ case 0x71208086:
+ s = "Intel 82810 (i810 GMCH) Host To Hub bridge";
+ break;
+ case 0x71228086:
+ s = "Intel 82810-DC100 (i810-DC100 GMCH) Host To Hub bridge";
+ break;
+ case 0x71248086:
+ s = "Intel 82810E (i810E GMCH) Host To Hub bridge";
+ break;
case 0x71808086:
s = "Intel 82443LX (440 LX) host to PCI bridge";
break;
diff --git a/sys/i386/pci/pci_cfgreg.c b/sys/i386/pci/pci_cfgreg.c
index f9aa406..838ef22 100644
--- a/sys/i386/pci/pci_cfgreg.c
+++ b/sys/i386/pci/pci_cfgreg.c
@@ -279,6 +279,15 @@ nexus_pcib_is_host_bridge(pcicfgregs *cfg,
/* XXX This is a guess */
*busnum = pci_cfgread(cfg, 0x41, 1);
break;
+ case 0x71208086:
+ s = "Intel 82810 (i810 GMCH) Host To Hub bridge";
+ break;
+ case 0x71228086:
+ s = "Intel 82810-DC100 (i810-DC100 GMCH) Host To Hub bridge";
+ break;
+ case 0x71248086:
+ s = "Intel 82810E (i810E GMCH) Host To Hub bridge";
+ break;
case 0x71808086:
s = "Intel 82443LX (440 LX) host to PCI bridge";
break;
diff --git a/sys/i386/pci/pci_pir.c b/sys/i386/pci/pci_pir.c
index f9aa406..838ef22 100644
--- a/sys/i386/pci/pci_pir.c
+++ b/sys/i386/pci/pci_pir.c
@@ -279,6 +279,15 @@ nexus_pcib_is_host_bridge(pcicfgregs *cfg,
/* XXX This is a guess */
*busnum = pci_cfgread(cfg, 0x41, 1);
break;
+ case 0x71208086:
+ s = "Intel 82810 (i810 GMCH) Host To Hub bridge";
+ break;
+ case 0x71228086:
+ s = "Intel 82810-DC100 (i810-DC100 GMCH) Host To Hub bridge";
+ break;
+ case 0x71248086:
+ s = "Intel 82810E (i810E GMCH) Host To Hub bridge";
+ break;
case 0x71808086:
s = "Intel 82443LX (440 LX) host to PCI bridge";
break;
diff --git a/sys/pci/pcisupport.c b/sys/pci/pcisupport.c
index abdd38e..58253ae 100644
--- a/sys/pci/pcisupport.c
+++ b/sys/pci/pcisupport.c
@@ -685,6 +685,10 @@ pcib_match(device_t dev)
return ("Intel 82454NX PCI Expander Bridge");
case 0x124b8086:
return ("Intel 82380FB mobile PCI to PCI bridge");
+ case 0x24188086:
+ return ("Intel 82801AA (ICH) Hub to PCI bridge");
+ case 0x24288086:
+ return ("Intel 82801AB (ICH0) Hub to PCI bridge");
/* VLSI -- vendor 0x1004 */
case 0x01021004:
@@ -840,6 +844,10 @@ isab_match(device_t dev)
return ("Intel 82371SB PCI to ISA bridge");
case 0x71108086:
return ("Intel 82371AB PCI to ISA bridge");
+ case 0x24108086:
+ return ("Intel 82801AA (ICH) PCI to LPC bridge");
+ case 0x24208086:
+ return ("Intel 82801AB (ICH0) PCI to LPC bridge");
/* VLSI -- vendor 0x1004 */
case 0x00061004:
@@ -963,7 +971,6 @@ DRIVER_MODULE(isab, pci, isab_driver, isab_devclass, 0, 0);
const char *
pci_usb_match(device_t dev)
{
-
switch (pci_get_devid(dev)) {
/* Intel -- vendor 0x8086 */
@@ -971,6 +978,10 @@ pci_usb_match(device_t dev)
return ("Intel 82371SB (PIIX3) USB controller");
case 0x71128086:
return ("Intel 82371AB/EB (PIIX4) USB controller");
+ case 0x24128086:
+ return ("Intel 82801AA (ICH) USB controller");
+ case 0x24228086:
+ return ("Intel 82801AB (ICH0) USB controller");
/* VIA Technologies -- vendor 0x1106 (0x1107 on the Apollo Master) */
case 0x30381106:
@@ -1139,6 +1150,16 @@ chip_match(device_t dev)
return ("Intel 82440FX (Natoma) PCI and memory controller");
case 0x84c58086:
return ("Intel 82453KX/GX (Orion) PCI memory controller");
+ case 0x71208086:
+ return ("Intel 82810 (i810 GMCH) Host To Hub bridge");
+ case 0x71228086:
+ return ("Intel 82810-DC100 (i810-DC100 GMCH) Host To Hub bridge");
+ case 0x71248086:
+ return ("Intel 82810E (i810E GMCH) Host To Hub bridge");
+ case 0x24158086:
+ return ("Intel 82801AA (ICH) AC'97 Audio Controller");
+ case 0x24258086:
+ return ("Intel 82801AB (ICH0) AC'97 Audio Controller");
/* Sony -- vendor 0x104d */
case 0x8009104d:
@@ -1712,8 +1733,16 @@ static const char* vga_match(device_t dev)
break;
case 0x8086:
vendor = "Intel";
- if ((id >> 16) == 0x7800)
- chip = "i740 AGP";
+ switch (id >> 16) {
+ case 0x7121:
+ chip = "82810 (i810 GMCH)"; break;
+ case 0x7123:
+ chip = "82810-DC100 (i810-DC100 GMCH)"; break;
+ case 0x7125:
+ chip = "82810E (i810E GMCH)"; break;
+ case 0x7800:
+ chip = "i740 AGP"; break;
+ }
break;
case 0x10ea:
vendor = "Intergraphics";
diff --git a/sys/pci/uhci_pci.c b/sys/pci/uhci_pci.c
index 0a3959b..a5d6c9e 100644
--- a/sys/pci/uhci_pci.c
+++ b/sys/pci/uhci_pci.c
@@ -83,6 +83,10 @@ static const char *uhci_device_piix3 = "Intel 82371SB (PIIX3) USB controller";
#define PCI_UHCI_DEVICEID_PIIX4 0x71128086
#define PCI_UHCI_DEVICEID_PIIX4E 0x71128086 /* no separate stepping */
static const char *uhci_device_piix4 = "Intel 82371AB/EB (PIIX4) USB controller";
+#define PCI_UHCI_DEVICEID_ICH 0x24128086
+static const char *uhci_device_ich = "Intel 82801AA (ICH) USB controller";
+#define PCI_UHCI_DEVICEID_ICH0 0x24228086
+static const char *uhci_device_ich0 = "Intel 82801AB (ICH0) USB controller";
#define PCI_UHCI_DEVICEID_VT83C572 0x30381106
static const char *uhci_device_vt83c572 = "VIA 83C572 USB controller";
@@ -124,6 +128,10 @@ uhci_pci_match(device_t self)
return (uhci_device_piix3);
} else if (device_id == PCI_UHCI_DEVICEID_PIIX4) {
return (uhci_device_piix4);
+ } else if (device_id == PCI_UHCI_DEVICEID_ICH) {
+ return (uhci_device_ich);
+ } else if (device_id == PCI_UHCI_DEVICEID_ICH0) {
+ return (uhci_device_ich0);
} else if (device_id == PCI_UHCI_DEVICEID_VT83C572) {
return (uhci_device_vt83c572);
} else {
@@ -200,6 +208,14 @@ uhci_pci_attach(device_t self)
device_set_desc(sc->sc_bus.bdev, uhci_device_piix4);
sprintf(sc->sc_vendor, "Intel");
break;
+ case PCI_UHCI_DEVICEID_ICH:
+ device_set_desc(sc->sc_bus.bdev, uhci_device_ich);
+ sprintf(sc->sc_vendor, "Intel");
+ break;
+ case PCI_UHCI_DEVICEID_ICH0:
+ device_set_desc(sc->sc_bus.bdev, uhci_device_ich0);
+ sprintf(sc->sc_vendor, "Intel");
+ break;
case PCI_UHCI_DEVICEID_VT83C572:
device_set_desc(sc->sc_bus.bdev, uhci_device_vt83c572);
sprintf(sc->sc_vendor, "VIA");
OpenPOWER on IntegriCloud