On Sat, 2010-02-20 at 19:57 -0700, Bjorn Helgaas wrote:
> On Sat, 2010-02-20 at 21:18 +0900, Yoichi Yuasa wrote:
> > Hi Ralf,
> >
> > On Sat, 20 Feb 2010 12:31:34 +0100
> > Ralf Baechle <ralf@linux-mips.org> wrote:
> >
> > > Below 9f7670e4ddd940d95e48997c2da51614e5fde2cf, an old hack which I
> > > committed in December '07 I think mostly for Cobalt machines. This is
> > > now getting in the way - in fact the whole loop in
> > > pcibios_fixup_device_resources() may have to go. So I wonder if this
> > > old hack is still necessary. Only testing can answer so I'm going to
> > > put a patch to revert this into the -queue tree for 2.6.34.
> >
> > It is still necessary for Cobalt.
> > I got the following IDE resource errors.
> >
> > pata_via 0000:00:09.1: BAR 0: can't reserve [io 0xf00001f0-0xf00001f7]
> >
> > pata_via 0000:00:09.1: failed to request/iomap BARs for port 0 (errno=-16)
> >
> > pata_via 0000:00:09.1: BAR 2: can't reserve [io 0xf0000170-0xf0000177]
> >
> > pata_via 0000:00:09.1: failed to request/iomap BARs for port 1 (errno=-16)
> >
> > pata_via 0000:00:09.1: no available native port
>
> I think the problem is that cobalt_io_resource contains PCI bus
> addresses when it should contain CPU addresses:
>
> static struct resource cobalt_io_resource = {
> .start = 0x1000,
> .end = GT_DEF_PCI0_IO_SIZE - 1,
> .name = "PCI I/O",
> .flags = IORESOURCE_IO,
> };
>
> I think .start and .end need to be adjusted by GT_DEF_PCI0_IO_BASE.
Sorry, this was a half-baked answer. This would probably fix the
reservation conflicts, but of course we'll still have a problem when we
remove the IORESOURCE_PCI_FIXED check. I'll work on it more and come up
with a patch.
Bjorn
|