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 - 19:28:54 EDT

  • Next message: Linus Torvalds: "RE: Updated 2.4 TODO List - more on PCI resources...]"

    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 : Fri Oct 13 2000 - 19:31:42 EDT