Re: Updated 2.4 TODO List -- new addition WAS(test9 PCI resource collisions (fwd)

From: Linus Torvalds (torvalds@transmeta.com)
Date: Fri Oct 13 2000 - 18:28:54 EST


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 majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Oct 15 2000 - 21:00:26 EST