Messages in this thread |  | | Date | Tue, 24 Oct 2000 13:50:10 -0700 (PDT) | From | Linus Torvalds <> | Subject | Re: Updated 2.4 TODO List -- new addition WAS(test9 PCI resource collisions (fwd) |
| |
On Tue, 24 Oct 2000, jamal wrote: > > (Now that i see Martin alive). > Could we pursue this further?
The trouble definitely seems to be the fact that your PCI-PCI bridge does not seem to have been set up for bridging:
bus res 0 0 00000000-00000000 bus res 1 0 00000000-00000000 bus res 2 1200 e4000000-e5ffffff
and it appears that the reason 2.2.x works is simply that 2.2.x doesn't care because it doesn't keep track of resources at all - it just takes what the devices say their resources are. And the bridge obviously _works_, it just doesn't tell which area it bridges.
Can you do a "lspci -vvxxx" on a 2.2.x setup, so that I can take a look at what the bridge claims it is doing.
I quite frankly have no idea what to do otherwise. We could special-case a bridge resource that is all zeroes, and say that it's a "transparent" bridge and just say that the resource is the same as the parent resource. That might get you going. It's probably not the right thing to do, but you _can_ try something like this in pci_read_bridge_bases(), where it does
if (base && base <= limit) { res->flags |= ... .. - } + } else { + /* Transparent bridge */ + child->resource[0] = child->bus->resource[0]; + }
..
(and do same thing for resource[1] and resource[2]..)
Does the above make it work for you? I don't know if PCI even has the notion of transparent bridging, and quite frankly I doubt it does. The above would be nothing but a hack that basically says "I don't understand the resources of this bridge, so I'll just say it bridges everything".
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/
|  |