Hi Czeslaw,

Can you try the attached patch?  You'll have to do a make in
sys/dev/pci after you've applied the patch.

Index: dev/pci/pcidevs
===================================================================
RCS file: /cvs/src/sys/dev/pci/pcidevs,v
retrieving revision 1.1139
diff -u -p -r1.1139 pcidevs
--- dev/pci/pcidevs     25 Aug 2006 04:26:29 -0000      1.1139
+++ dev/pci/pcidevs     11 Sep 2006 15:45:17 -0000
@@ -1203,6 +1203,7 @@ product COMPAQ CSA6400            0x409c  Smart Arr
 product COMPAQ CSA6400EM       0x409d  Smart Array 6400 EM
 product COMPAQ CSA6422         0x409e  Smart Array 6422
 product COMPAQ CSA64XX         0x0046  Smart Array 64xx
+product COMPAQ HOTPLUG_PCI     0x6010  Hotplug PCI
 product COMPAQ USB             0x7020  USB
 product COMPAQ FXP             0xa0f0  Netelligent ASMC
 product COMPAQ PCI_ISA_BRIDGE1 0xa0f3  ISA
Index: arch/i386/pci/pchb.c
===================================================================
RCS file: /cvs/src/sys/arch/i386/pci/pchb.c,v
retrieving revision 1.52
diff -u -p -r1.52 pchb.c
--- arch/i386/pci/pchb.c        13 Mar 2006 20:10:49 -0000      1.52
+++ arch/i386/pci/pchb.c        11 Sep 2006 15:45:17 -0000
@@ -220,6 +220,27 @@ pchbattach(parent, self, aux)
                        break;
                }
                break;
+       case PCI_VENDOR_COMPAQ:
+               switch (PCI_PRODUCT(pa->pa_id)) {
+               case PCI_PRODUCT_COMPAQ_HOTPLUG_PCI:
+                       pbnum = pci_conf_read(pa->pa_pc, pa->pa_tag, 0xc8);
+
+                       /*
+                        * This host bridge has a second PCI bus.
+                        * Configure it.
+                        */
+                       neednl = 0;
+                       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 = pbnum;
+                       pba.pba_bridgetag = NULL;
+                       pba.pba_pc = pa->pa_pc;
+                       printf("\n");
+                       config_found(self, &pba, pchb_print);
+               }
+               break;
        case PCI_VENDOR_RCC:
                bdnum = pci_conf_read(pa->pa_pc, pa->pa_tag, 0x44);
                if (bdnum >= (sizeof(rcc_bus_visited) * 8) ||

Reply via email to