[PATCH 20/21] [POWERPC] pci32: 4xx embedded platforms want to reassign all PCI resources

Benjamin Herrenschmidt benh at kernel.crashing.org
Fri Dec 21 15:39:37 EST 2007


This makes 4xx embedded platforms re-assign all PCI resources as we
pretty much never care about what the various firmwares have done on
these, it's generally not compatible with the way the kernel will map
the bridges.

We still need to also enable bus renumbering on some of them, but I
will do that from a separate patch after I've fixed 4xx PCIe to handle
all bus numbers.

Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
---

 arch/powerpc/platforms/40x/ep405.c   |    2 ++
 arch/powerpc/platforms/40x/kilauea.c |    3 +++
 arch/powerpc/platforms/40x/walnut.c  |    3 +++
 arch/powerpc/platforms/44x/bamboo.c  |    4 ++++
 arch/powerpc/platforms/44x/ebony.c   |    3 +++
 arch/powerpc/platforms/44x/katmai.c  |    3 +++
 arch/powerpc/platforms/44x/sequoia.c |    5 ++++-
 arch/powerpc/platforms/44x/taishan.c |    2 ++
 8 files changed, 24 insertions(+), 1 deletion(-)

--- linux-merge.orig/arch/powerpc/platforms/44x/bamboo.c	2007-12-14 15:48:53.000000000 +1100
+++ linux-merge/arch/powerpc/platforms/44x/bamboo.c	2007-12-14 15:49:52.000000000 +1100
@@ -21,6 +21,8 @@
 #include <asm/udbg.h>
 #include <asm/time.h>
 #include <asm/uic.h>
+#include <asm/pci-bridge.h>
+
 #include "44x.h"
 
 static struct of_device_id bamboo_of_bus[] = {
@@ -48,6 +50,8 @@ static int __init bamboo_probe(void)
 	if (!of_flat_dt_is_compatible(root, "amcc,bamboo"))
 		return 0;
 
+	ppc_pci_flags = PPC_PCI_REASSIGN_ALL_RSRC;
+
 	return 1;
 }
 
Index: linux-merge/arch/powerpc/platforms/40x/ep405.c
===================================================================
--- linux-merge.orig/arch/powerpc/platforms/40x/ep405.c	2007-12-14 15:49:45.000000000 +1100
+++ linux-merge/arch/powerpc/platforms/40x/ep405.c	2007-12-14 15:49:52.000000000 +1100
@@ -101,6 +101,8 @@ static void __init ep405_setup_arch(void
 {
 	/* Find & init the BCSR CPLD */
 	ep405_init_bcsr();
+
+	ppc_pci_flags = PPC_PCI_REASSIGN_ALL_RSRC;
 }
 
 static int __init ep405_probe(void)
Index: linux-merge/arch/powerpc/platforms/40x/kilauea.c
===================================================================
--- linux-merge.orig/arch/powerpc/platforms/40x/kilauea.c	2007-12-14 15:48:53.000000000 +1100
+++ linux-merge/arch/powerpc/platforms/40x/kilauea.c	2007-12-14 15:49:52.000000000 +1100
@@ -19,6 +19,7 @@
 #include <asm/udbg.h>
 #include <asm/time.h>
 #include <asm/uic.h>
+#include <asm/pci-bridge.h>
 
 static struct of_device_id kilauea_of_bus[] = {
 	{ .compatible = "ibm,plb4", },
@@ -45,6 +46,8 @@ static int __init kilauea_probe(void)
 	if (!of_flat_dt_is_compatible(root, "amcc,kilauea"))
 		return 0;
 
+	ppc_pci_flags = PPC_PCI_REASSIGN_ALL_RSRC;
+
 	return 1;
 }
 
Index: linux-merge/arch/powerpc/platforms/40x/walnut.c
===================================================================
--- linux-merge.orig/arch/powerpc/platforms/40x/walnut.c	2007-12-14 15:48:53.000000000 +1100
+++ linux-merge/arch/powerpc/platforms/40x/walnut.c	2007-12-14 15:49:52.000000000 +1100
@@ -24,6 +24,7 @@
 #include <asm/udbg.h>
 #include <asm/time.h>
 #include <asm/uic.h>
+#include <asm/pci-bridge.h>
 
 static struct of_device_id walnut_of_bus[] = {
 	{ .compatible = "ibm,plb3", },
@@ -51,6 +52,8 @@ static int __init walnut_probe(void)
 	if (!of_flat_dt_is_compatible(root, "ibm,walnut"))
 		return 0;
 
+	ppc_pci_flags = PPC_PCI_REASSIGN_ALL_RSRC;
+
 	return 1;
 }
 
Index: linux-merge/arch/powerpc/platforms/44x/ebony.c
===================================================================
--- linux-merge.orig/arch/powerpc/platforms/44x/ebony.c	2007-12-14 15:48:53.000000000 +1100
+++ linux-merge/arch/powerpc/platforms/44x/ebony.c	2007-12-14 15:49:52.000000000 +1100
@@ -24,6 +24,7 @@
 #include <asm/udbg.h>
 #include <asm/time.h>
 #include <asm/uic.h>
+#include <asm/pci-bridge.h>
 
 #include "44x.h"
 
@@ -55,6 +56,8 @@ static int __init ebony_probe(void)
 	if (!of_flat_dt_is_compatible(root, "ibm,ebony"))
 		return 0;
 
+	ppc_pci_flags = PPC_PCI_REASSIGN_ALL_RSRC;
+
 	return 1;
 }
 
Index: linux-merge/arch/powerpc/platforms/44x/katmai.c
===================================================================
--- linux-merge.orig/arch/powerpc/platforms/44x/katmai.c	2007-12-14 15:49:51.000000000 +1100
+++ linux-merge/arch/powerpc/platforms/44x/katmai.c	2007-12-14 15:49:52.000000000 +1100
@@ -21,6 +21,7 @@
 #include <asm/udbg.h>
 #include <asm/time.h>
 #include <asm/uic.h>
+#include <asm/pci-bridge.h>
 
 #include "44x.h"
 
@@ -49,6 +50,8 @@ static int __init katmai_probe(void)
 	if (!of_flat_dt_is_compatible(root, "amcc,katmai"))
 		return 0;
 
+	ppc_pci_flags = PPC_PCI_REASSIGN_ALL_RSRC;
+
 	return 1;
 }
 
Index: linux-merge/arch/powerpc/platforms/44x/sequoia.c
===================================================================
--- linux-merge.orig/arch/powerpc/platforms/44x/sequoia.c	2007-12-14 15:48:53.000000000 +1100
+++ linux-merge/arch/powerpc/platforms/44x/sequoia.c	2007-12-14 15:49:52.000000000 +1100
@@ -21,7 +21,8 @@
 #include <asm/udbg.h>
 #include <asm/time.h>
 #include <asm/uic.h>
-#include "44x.h"
+#include <asm/pci-bridge.h>
+
 
 static struct of_device_id sequoia_of_bus[] = {
 	{ .compatible = "ibm,plb4", },
@@ -48,6 +49,8 @@ static int __init sequoia_probe(void)
 	if (!of_flat_dt_is_compatible(root, "amcc,sequoia"))
 		return 0;
 
+	ppc_pci_flags = PPC_PCI_REASSIGN_ALL_RSRC;
+
 	return 1;
 }
 
Index: linux-merge/arch/powerpc/platforms/44x/taishan.c
===================================================================
--- linux-merge.orig/arch/powerpc/platforms/44x/taishan.c	2007-12-14 15:49:46.000000000 +1100
+++ linux-merge/arch/powerpc/platforms/44x/taishan.c	2007-12-14 15:49:52.000000000 +1100
@@ -60,6 +60,8 @@ static int __init taishan_probe(void)
 	if (!of_flat_dt_is_compatible(root, "amcc,taishan"))
 		return 0;
 
+	ppc_pci_flags = PPC_PCI_REASSIGN_ALL_RSRC;
+
 	return 1;
 }
 



More information about the Linuxppc-dev mailing list