Maple fails to boot current git

Tom Rini trini at kernel.crashing.org
Wed Feb 1 02:08:24 EST 2006


On Tue, Jan 31, 2006 at 02:53:11PM +1100, Benjamin Herrenschmidt wrote:
> On Tue, 2006-01-31 at 12:11 +1300, David Gibson wrote:
> > On Mon, Jan 30, 2006 at 10:17:59AM -0700, Tom Rini wrote:
> > > Hello, trying to boot my maple board (ppc64_defconfig +
> > > CONFIG_PPC_EARLY_DEBUG_MAPLE=y) fails as follows (the "dirty" is
> > > #define DEBUG in kernel/prom_parse.c and platforms/maple/time.c):
> > 
> > Crud.  Our Maple is stuffed at the moment (doesn't complete the CPU
> > init script, so PIBS never even comes up on the 970), so I can't
> > really investigate.
> 
> Well, the RTC problem definitely looks like a bogus or lack of "ranges"
> property or the fact that the parser doesn't recognize "ht" as a PCI
> bus. You may want to try updating prom_parse.c to treat "ht" as a PCI
> bus and see if that helps.

With the following, I get parent bus is pci now, but still:
OF: ** translation for device /ht at 0/isa at 4/rtc at 900 **
OF: bus is isa (na=2, ns=1) on /ht at 0/isa at 4
OF: translating address: 00000001 00000900
OF: parent bus is pci (na=3, ns=2) on /ht at 0
OF: walking ranges...
OF: not found !
Maple: Unable to translate RTC address
Maple: No device node for RTC, assuming legacy address (0x70)

diff --git a/arch/powerpc/kernel/prom_parse.c b/arch/powerpc/kernel/prom_parse.c
index a8099c8..6006201 100644
--- a/arch/powerpc/kernel/prom_parse.c
+++ b/arch/powerpc/kernel/prom_parse.c
@@ -1,4 +1,4 @@
-#undef DEBUG
+#define DEBUG
 
 #include <linux/kernel.h>
 #include <linux/string.h>
@@ -113,8 +113,10 @@ static unsigned int of_bus_default_get_f
 
 static int of_bus_pci_match(struct device_node *np)
 {
-	/* "vci" is for the /chaos bridge on 1st-gen PCI powermacs */
-	return !strcmp(np->type, "pci") || !strcmp(np->type, "vci");
+	/* "vci" is for the /chaos bridge on 1st-gen PCI powermacs, "ht"
+	 * is the maple board. */
+	return !strcmp(np->type, "pci") || !strcmp(np->type, "vci") ||
+		!strcmp(np->type, "ht");
 }
 
 static void of_bus_pci_count_cells(struct device_node *np,
@@ -239,6 +241,16 @@ static struct of_bus of_busses[] = {
 		.translate = of_bus_pci_translate,
 		.get_flags = of_bus_pci_get_flags,
 	},
+	/* HT */
+	{
+		.name = "ht",
+		.addresses = "assigned-addresses",
+		.match = of_bus_pci_match,
+		.count_cells = of_bus_pci_count_cells,
+		.map = of_bus_pci_map,
+		.translate = of_bus_pci_translate,
+		.get_flags = of_bus_pci_get_flags,
+	},
 	/* ISA */
 	{
 		.name = "isa",


-- 
Tom Rini
http://gate.crashing.org/~trini/



More information about the Linuxppc64-dev mailing list