summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormsmith <msmith@FreeBSD.org>2000-12-11 10:04:01 +0000
committermsmith <msmith@FreeBSD.org>2000-12-11 10:04:01 +0000
commit4f02e974cd21ad9322ea4acd45307aee6c78c864 (patch)
tree00a33b30a1e7fd8234a2afa2e7fb3e01df7989d7
parent399022346877db3ba6f34ab18052d12e68a6a226 (diff)
downloadFreeBSD-src-4f02e974cd21ad9322ea4acd45307aee6c78c864.zip
FreeBSD-src-4f02e974cd21ad9322ea4acd45307aee6c78c864.tar.gz
It looks like we can't count on these devices always having a consistent
class/subclass, so give up trying to cull the list. Instead, complain in the bootverbose case, but otherwise just accept that we will have to carry this list of device IDs around.
-rw-r--r--sys/dev/pci/isa_pci.c87
1 files changed, 43 insertions, 44 deletions
diff --git a/sys/dev/pci/isa_pci.c b/sys/dev/pci/isa_pci.c
index 20efd0c..1967286 100644
--- a/sys/dev/pci/isa_pci.c
+++ b/sys/dev/pci/isa_pci.c
@@ -87,51 +87,50 @@ isab_probe(device_t dev)
/*
* Try for a generic match based on class/subclass.
*/
- if ((pci_get_class(dev) == PCIC_BRIDGE) &&
- (pci_get_subclass(dev) == PCIS_BRIDGE_ISA))
- matched = 1;
- /*
- * Some bridges don't report the ISA bus correctly.
- * (Note that some of the devices listed here probably do, we will
- * kvetch about this below and request updates.)
- */
- switch (pci_get_devid(dev)) {
- case 0x04848086: /* Intel 82378ZB/82378IB */
- case 0x122e8086: /* Intel 82371FB */
- case 0x70008086: /* Intel 82371SB */
- case 0x71988086: /* Intel 82443MX */
- case 0x24108086: /* Intel 82801AA (ICH) */
- case 0x24208086: /* Intel 82801AB (ICH0) */
- case 0x00061004: /* VLSI 82C593 */
- case 0x05861106: /* VIA 82C586 */
- case 0x05961106: /* VIA 82C596 PCI-ISA */
- /* AcerLabs -- vendor 0x10b9 */
- /* Funny : The datasheet told me vendor id is "10b8",sub-vendor */
- /* id is '10b9" but the register always shows "10b9". -Foxfair */
- case 0x153310b9: /* AcerLabs M1533 */
- case 0x154310b9: /* AcerLabs M1543 */
- case 0x00081039: /* SiS 85c503 */
- case 0x00001078: /* Cyrix Cx5510 */
- case 0x01001078: /* Cyrix Cx5530 */
- case 0xc7001045: /* OPTi 82C700 (FireStar) */
- case 0x00011033: /* NEC 0001 (C-bus) */
- case 0x002c1033: /* NEC 002C (C-bus) */
- case 0x003b1033: /* NEC 003B (C-bus) */
- case 0x886a1060: /* UMC UM8886 ISA */
- case 0x02001166: /* ServerWorks IB6566 PCI */
- matched = 1;
- /*
- * Report redundant matches (debugging)
- */
- if ((pci_get_class(dev) == PCIC_BRIDGE) &&
- (pci_get_subclass(dev) == PCIS_BRIDGE_ISA)) {
- printf("** REDUNDANT ISA BRIDGE MATCH FOR DEVICE 0x%08x\n", pci_get_devid(dev));
- printf("** Please report to msmith@freebsd.org\n");
- }
- break;
+ if (pci_get_class(dev) == PCIC_BRIDGE) {
+ if (pci_get_subclass(dev) == PCIS_BRIDGE_ISA) {
+ matched = 1;
+ } else {
+ /*
+ * These are devices that we *know* are PCI:ISA bridges.
+ * Sometimes, however, they don't report themselves as
+ * such. Check in case one of them is pretending to be
+ * something else.
+ */
+ switch (pci_get_devid(dev)) {
+ case 0x04848086: /* Intel 82378ZB/82378IB */
+ case 0x122e8086: /* Intel 82371FB */
+ case 0x70008086: /* Intel 82371SB */
+ case 0x71108086: /* Intel 82371AB */
+ case 0x71988086: /* Intel 82371MX */
+ case 0x24108086: /* Intel 82801AA (ICH) */
+ case 0x24208086: /* Intel 82801AB (ICH0) */
+ case 0x24408086: /* Intel 82801AB (ICH2) */
+ case 0x00061004: /* VLSI 82C593 */
+ case 0x05861106: /* VIA 82C586 */
+ case 0x05961106: /* VIA 82C596 */
+ case 0x06861106: /* VIA 82C686 */
+ case 0x153310b9: /* AcerLabs M1533 */
+ case 0x154310b9: /* AcerLabs M1543 */
+ case 0x00081039: /* SiS 85c503 */
+ case 0x00001078: /* Cyrix Cx5510 */
+ case 0x01001078: /* Cyrix Cx5530 */
+ case 0xc7001045: /* OPTi 82C700 (FireStar) */
+ case 0x00011033: /* NEC 0001 (C-bus) */
+ case 0x002c1033: /* NEC 002C (C-bus) */
+ case 0x003b1033: /* NEC 003B (C-bus) */
+ case 0x886a1060: /* UMC UM8886 ISA */
+ case 0x02001166: /* ServerWorks IB6566 PCI */
+ if (bootverbose)
+ printf("PCI-ISA bridge with incorrect subclass 0x%x\n",
+ pci_get_subclass(dev));
+ matched = 1;
+ break;
- default:
- break;
+ default:
+ break;
+ }
+ }
}
if (matched) {
OpenPOWER on IntegriCloud