Thread (6 messages) 6 messages, 3 authors, 2012-05-31

ARM Versatile defconfig PCI io out of range?

From: arnd@arndb.de (Arnd Bergmann)
Date: 2012-05-31 09:32:50
Subsystem: arm integrator, versatile and realview support, arm port, arm/versatile express platform, the rest · Maintainers: Linus Walleij, Russell King, Liviu Dudau, Sudeep Holla, Lorenzo Pieralisi, Linus Torvalds

On Wednesday 30 May 2012, Rob Herring wrote:
On 05/30/2012 01:02 PM, Richard Maw wrote:
quoted
We've tried to track down the problem, but we couldn't get much further
than finding out that the IO_SPACE_LIMIT in kernel/resource.c is 0xffff,
which is lower than the required 0x44000000.

We're not sure whether this is a problem with it not being allocated
enough space, or that it is not being translated properly.

Is this a known issue, I did a quick google for the "sym53c8xx
 can't reserve io" error, but nothing turned up.
If not, does anyone have any pointers to how this could be fixed?
I believe this is the same issue:

http://www.gossamer-threads.com/lists/linux/kernel/1543569

In looking at various PCI platforms and for a qemu platform with PCI to
test PCI changes, I had concluded (wrongly I guess) that Versatile PCI
was broken. This patch which has never gone upstream also played a part
in my conclusion:

http://lists.infradead.org/pipermail/linux-arm-kernel/2010-July/021035.html

The simple fix is to restore io.h for Versatile, but I'm looking for a
better way.
It looks like it's a simple bug in pci.c, which puts the wrong thing into the
pcibios_min_io variable.

Does the below patch fix it?

	Arnd
diff --git a/arch/arm/mach-versatile/pci.c b/arch/arm/mach-versatile/pci.c
index 4ae4fc8..aeb7b60 100644
--- a/arch/arm/mach-versatile/pci.c
+++ b/arch/arm/mach-versatile/pci.c
@@ -305,7 +305,7 @@ int __init pci_versatile_setup(int nr, struct pci_sys_data *sys)
 
 void __init pci_versatile_preinit(void)
 {
-	pcibios_min_io = 0x44000000;
+	pcibios_min_io = 0x100;
 	pcibios_min_mem = 0x50000000;
 
 	__raw_writel(VERSATILE_PCI_MEM_BASE0 >> 28, PCI_IMAP0);
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help