On Fri, 13 Oct 2000, jamal wrote:
>
> On Fri, 13 Oct 2000, Linus Torvalds wrote:>
> > Can you add the same extra debug code that I asked Dag Bakke to add for
> > his problem:
>
> Attached.
Thanks.
It looks like the bridge that your docking devices are behind (I assume
that's just a regular docking bridge) has not been set up correctly, and
has a serious lack of bridging windows, which causes the inability for
Linux to map any of the devices behind that bus. So you get printouts like
bus res 0 0 00000000-00000000
bus res 1 0 00000000-00000000
bus res 2 1200 e4000000-e5ffffff
device Matrox Graphics, Inc. MGA 2164W [Millennium II] resource 1 size 00004000
PCI: Failed to allocate resource 1 for Matrox Graphics, Inc. MGA 2164W
[Millennium II]
The above means that of the three bus windows set up for the PCI-PCI
bridge for the docking, two are disabled, and the last one is a
prefetchable memory window which is unacceptable to most devices (the
Matrox want a non-prefetchable window for its command area).
The other cases all show the same.
Martin, what's up? It looks like PCI-PCI bridge windows are not enabled
and set up at all. At least on this particular machine.
And I don't find any code that would ever have done this, either. It must
be somewhere, if 2.2 works for you.
Ehh. How about yet another debugging patch, to see what the bridge bases
are? In drivers/pci/pci.c, function pci_read_bridge_bases(), find the
place where it reads the PCI_IO_BASE/LIMIT and the UPPER bits, and add
printk("IO base: %04x%04x limit: %04x%04x\n",
io_base_hi, io_base_lo,
io_limit_hi, io_limit_lo);
to before the sanity test for the resource[0] case (ie before the stuff
that says "if (base && base <= limit) {" etc).
And do the same for the mem_base stuff for the resource[1] and resource[2]
cases.
Martin, any ideas on why only the prefetchable memory case would show up?
Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/