Re: 2.6.31-rc1: parisc: multiple PCI BAR collisions



On Fri, Jun 26, 2009 at 11:03:04AM -0600, Grant Grundler wrote:
On Fri, Jun 26, 2009 at 12:58:22PM +0400, Alexander Beregalov wrote:
Hi

Hardware is HP j6000.
It cannot initialize many PCI devices (sym53c8xx, tulip, STI,
usb(onci)) and cannot boot (no root device).
Messages like this:
sym53c8xx 0:0:0f.0: device not available because of BAR 1 [0xf4005000
- 0xf40053ff] collisions.

I'm pretty sure this is a problem of the root bus resources not getting
setup correctly. I'm not clear on what's wrong. jejb and willy are looking
at it now as well.

This patch fixes it for me.

----

Fix PCI resource allocation on non-PAT SBA machines

We weren't marking the resources as memory resources, so they weren't
being found by pci_claim_resource().

Signed-off-by: Matthew Wilcox <willy@xxxxxxxxxxxxxxx>
Reviewed-by: Grant Grundler <grundler@xxxxxxxxxxxxxxxx>

diff --git a/drivers/parisc/sba_iommu.c b/drivers/parisc/sba_iommu.c
index d46dd57..123d8fe 100644
--- a/drivers/parisc/sba_iommu.c
+++ b/drivers/parisc/sba_iommu.c
@@ -2057,6 +2057,7 @@ void sba_directed_lmmio(struct parisc_device *pci_hba, struct resource *r)
r->start = (base & ~1UL) | PCI_F_EXTEND;
size = ~ READ_REG32(reg + LMMIO_DIRECT0_MASK);
r->end = r->start + size;
+ r->flags = IORESOURCE_MEM;
}
}

@@ -2093,4 +2094,5 @@ void sba_distributed_lmmio(struct parisc_device *pci_hba, struct resource *r )
size = (~READ_REG32(sba->sba_hpa + LMMIO_DIST_MASK)) / ROPES_PER_IOC;
r->start += rope * (size + 1); /* adjust base for this rope */
r->end = r->start + size;
+ r->flags = IORESOURCE_MEM;
}

--
Matthew Wilcox Intel Open Source Technology Centre
"Bill, look, we understand that you're interested in selling us this
operating system, but compare it to ours. We can't possibly take such
a retrograde step."
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages