diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 2000-04-26 18:39:30 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 2000-04-26 18:39:30 +0000 |
commit | 0f3aa579dc2f6e33b26cdb0350add176ae33b619 (patch) | |
tree | 21adce46bb279c3571196f706dab5187c58ee217 /sys | |
parent | e0528529b640f13385dcccaa9a597b85d18360cc (diff) |
properly probe sub-pci busses for RCC ServerWorks chipsets
Diffstat (limited to 'sys')
-rw-r--r-- | sys/arch/i386/pci/pchb.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/sys/arch/i386/pci/pchb.c b/sys/arch/i386/pci/pchb.c index 40a51301307..35b7c5add1b 100644 --- a/sys/arch/i386/pci/pchb.c +++ b/sys/arch/i386/pci/pchb.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pchb.c,v 1.9 2000/04/26 18:38:47 deraadt Exp $ */ +/* $OpenBSD: pchb.c,v 1.10 2000/04/26 18:39:29 deraadt Exp $ */ /* $NetBSD: pchb.c,v 1.6 1997/06/06 23:29:16 thorpej Exp $ */ /* @@ -162,6 +162,31 @@ pchbattach(parent, self, aux) */ switch (PCI_VENDOR(pa->pa_id)) { + case PCI_VENDOR_RCC: + switch (PCI_PRODUCT(pa->pa_id)) { + case PCI_PRODUCT_RCC_ROSB4: + case PCI_PRODUCT_RCC_CNB20HE: + case PCI_PRODUCT_RCC_CNB20LE: + bdnum = pci_conf_read(pa->pa_pc, pa->pa_tag, + 0x44); + + if (bdnum == 0) + break; + /* + * This host bridge has a second PCI bus. + * Configure it. + */ + printf(": has pci bus %d", bdnum); + pba.pba_busname = "pci"; + pba.pba_iot = pa->pa_iot; + pba.pba_memt = pa->pa_memt; + pba.pba_dmat = pa->pa_dmat; + pba.pba_bus = bdnum; + pba.pba_pc = pa->pa_pc; + config_found(self, &pba, pchb_print); + break; + } + break; case PCI_VENDOR_INTEL: switch (PCI_PRODUCT(pa->pa_id)) { case PCI_PRODUCT_INTEL_82443BX_AGP: /* 82443BX AGP (PAC) */ |