]> err.no Git - linux-2.6/commitdiff
[PATCH] ppc: Fix boot with yaboot with ARCH=ppc
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 15 Nov 2005 07:21:45 +0000 (18:21 +1100)
committerPaul Mackerras <paulus@samba.org>
Wed, 16 Nov 2005 02:51:58 +0000 (13:51 +1100)
The merge of machine types broke boot with yaboot & ARCH=ppc due to the
old code still retreiving the old-syle machine type passed in by yaboot.
This patch fixes it by translating those old numbers. Since that whole
mecanism is deprecated, this is a temporary fix until ARCH=ppc uses the
new prom_init that the merged architecture now uses for both ppc32 and
ppc64 (after 2.6.15)

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/ppc/kernel/setup.c

index dc55e1abc45bde685741522caa14f1cfae7cfb5e..0eb0b7085e6a86f9e9b18df12dac6f0ad03d89f0 100644 (file)
@@ -602,7 +602,19 @@ void parse_bootinfo(struct bi_record *rec)
 #endif /* CONFIG_BLK_DEV_INITRD */
 #ifdef CONFIG_PPC_MULTIPLATFORM
                case BI_MACHTYPE:
-                       _machine = data[0];
+                       /* Machine types changed with the merge. Since the
+                        * bootinfo are now deprecated, we can just hard code
+                        * the appropriate conversion here for when we are
+                        * called with yaboot which passes us a machine type
+                        * this way.
+                        */
+                       switch(data[0]) {
+                       case 1: _machine = _MACH_prep; break;
+                       case 2: _machine = _MACH_Pmac; break;
+                       case 4: _machine = _MACH_chrp; break;
+                       default:
+                               _machine = data[0];
+                       }
                        break;
 #endif
                case BI_MEMSIZE: