On Sunday 17 February 2008 00:35:30 Andrew Sharp wrote: > Actually, IIRC, resources are based on what the device requested, so a > device behind a bridge could request a resource starting at 0. I had > to change this for a system as well. I changed it to > > if (!r->start && !r->end) { > > because I couldn't see anything in the code that made r->start == 0 an > improper thing. Not to mention I couldn't access the device any other > way. Both being 0 is definitelty bogus. I think what's happening for me is the following: I have a PCI bridge and behind that bridge is one device. This has a fixed location and fixed size memory window (hardwired). register_pci_controller() requires me to pass some io_resource and mem_resource in the controller struct. So I pass the memory window which is assigned to the controller and the devices behind it. Later I fixup the bases and sizes for each resource in the pcibios_plat_dev_init() routine. So, well. I still don't know where the mips PCI subsystem would detect this resource conflict and what that means to me. If I simply rip out the check everything works fine, as I fixup the addresses and sizes later anyway. (I fixup more stuff like the IRQ routing an so on, too). The code is in drivers/ssb/driver_pcicore.c -- Greetings Michael.