2005-11-15 07:21:56

by Benjamin Herrenschmidt

[permalink] [raw]
Subject: [PATCH] ppc: Fix boot with yaboot with ARCH=ppc

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 <[email protected]>

Index: linux-work/arch/ppc/kernel/setup.c
===================================================================
--- linux-work.orig/arch/ppc/kernel/setup.c 2005-11-15 18:15:23.000000000 +1100
+++ linux-work/arch/ppc/kernel/setup.c 2005-11-15 18:18:37.000000000 +1100
@@ -602,7 +602,19 @@
#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:



2005-11-15 12:34:06

by Mikael Pettersson

[permalink] [raw]
Subject: Re: [PATCH] ppc: Fix boot with yaboot with ARCH=ppc

Benjamin Herrenschmidt writes:
> 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 <[email protected]>

This fixed my eMac, thanks.

Acked-by: Mikael Pettersson <[email protected]>

>
> Index: linux-work/arch/ppc/kernel/setup.c
> ===================================================================
> --- linux-work.orig/arch/ppc/kernel/setup.c 2005-11-15 18:15:23.000000000 +1100
> +++ linux-work/arch/ppc/kernel/setup.c 2005-11-15 18:18:37.000000000 +1100
> @@ -602,7 +602,19 @@
> #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:
>
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>