linux-mips
[Top] [All Lists]

Re: Linux MIPS PCI resource sanity check

To: Andrew Sharp <andy.sharp@onstor.com>
Subject: Re: Linux MIPS PCI resource sanity check
From: Michael Buesch <mb@bu3sch.de>
Date: Sun, 17 Feb 2008 12:19:41 +0100
Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>, ralf@linux-mips.org, linux-mips@linux-mips.org
In-reply-to: <20080216153530.7a426a73@ripper.onstor.net>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <200802161139.10791.mb@bu3sch.de> <47B6BFD4.5050404@ru.mvista.com> <20080216153530.7a426a73@ripper.onstor.net>
Sender: linux-mips-bounce@linux-mips.org
User-agent: KMail/1.9.6 (enterprise 0.20070907.709405)
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.

<Prev in Thread] Current Thread [Next in Thread>