diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2005-11-15 18:21:45 +1100 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2005-11-16 13:51:58 +1100 |
commit | de93f0d62ccaa730fd46de14d46c0317bd82596a (patch) | |
tree | 38184c1a318f111abd0f20c541ea2e1b69da0b41 /arch/ppc | |
parent | c0ce5c5228dd17d4e3dd1d15b8d52714262cab70 (diff) | |
download | linux-stable-de93f0d62ccaa730fd46de14d46c0317bd82596a.tar.gz linux-stable-de93f0d62ccaa730fd46de14d46c0317bd82596a.tar.bz2 linux-stable-de93f0d62ccaa730fd46de14d46c0317bd82596a.zip |
[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 <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/ppc')
-rw-r--r-- | arch/ppc/kernel/setup.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/arch/ppc/kernel/setup.c b/arch/ppc/kernel/setup.c index dc55e1abc45b..0eb0b7085e6a 100644 --- a/arch/ppc/kernel/setup.c +++ b/arch/ppc/kernel/setup.c @@ -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: |