diff options
-rw-r--r-- | sys/amd64/pci/pci_bus.c | 9 | ||||
-rw-r--r-- | sys/amd64/pci/pci_cfgreg.c | 9 | ||||
-rw-r--r-- | sys/dev/usb/uhci_pci.c | 16 | ||||
-rw-r--r-- | sys/i386/isa/pcibus.c | 9 | ||||
-rw-r--r-- | sys/i386/pci/pci_bus.c | 9 | ||||
-rw-r--r-- | sys/i386/pci/pci_cfgreg.c | 9 | ||||
-rw-r--r-- | sys/i386/pci/pci_pir.c | 9 | ||||
-rw-r--r-- | sys/pci/pcisupport.c | 35 | ||||
-rw-r--r-- | sys/pci/uhci_pci.c | 16 |
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"); |