Hi,

I plugged my HP Omnibook 4150 into my dock for the first time in a couple
months only to discover that I couldn't attach any of the PCI devices in
it.  I'm running -current as of sometime in the last week or so.  I traced
the problem to the new PCI code comitted six weeks ago.  Specificaly:

 - Make the PCI-PCI bridge code a little more paranoid about valid
   I/O and memory decodes.

It looks like the new code is too paranoid.  The following patch lets me
attach devices in the dock though it's obviously bogus.  You can find a
kernel config, verbose dmesg output, pciconf -l -v output, and acpidump
output at:

http://www.one-eyed-alien.net/~brooks/FreeBSD/dock/

Please let me know if you need anything more from me to help debug this.

Thanks,
Brooks

-- 
Any statement of the form "X is the one, true Y" is FALSE.

Index: pci_pci.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/pci/pci_pci.c,v
retrieving revision 1.3
diff -u -r1.3 pci_pci.c
--- pci_pci.c   2000/12/13 01:25:11     1.3
+++ pci_pci.c   2001/01/26 19:56:40
@@ -283,10 +283,10 @@
        case SYS_RES_IOPORT:
            if ((start < sc->iobase) || (end > sc->iolimit)) {
                device_printf(dev, "device %s%d requested unsupported I/O range 
0x%lx-0x%lx"
-                             " (decoding 0x%x-0x%x)\n",
+                             " (decoding 0x%x-0x%x) IGNORED\n",
                              device_get_name(child), device_get_unit(child), start, 
end,
                              sc->iobase, sc->iolimit);
-               return(NULL);
+               /* return(NULL); */
            }
            if (bootverbose)
                device_printf(sc->dev, "device %s%d requested decoded I/O range 
0x%lx-0x%lx\n",
@@ -303,10 +303,10 @@
            if (((start < sc->membase) || (end > sc->memlimit)) &&
                ((start < sc->pmembase) || (end > sc->pmemlimit))) {
                device_printf(dev, "device %s%d requested unsupported memory range 
0x%lx-0x%lx"
-                             " (decoding 0x%x-0x%x, 0x%x-0x%x)\n",
+                             " (decoding 0x%x-0x%x, 0x%x-0x%x) IGNORED\n",
                              device_get_name(child), device_get_unit(child), start, 
end,
                              sc->membase, sc->memlimit, sc->pmembase, sc->pmemlimit);
-               return(NULL);
+               /* return(NULL); */
            }
            if (bootverbose)
                device_printf(sc->dev, "device %s%d requested decoded memory range 
0x%lx-0x%lx\n",


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to