[PATCH] powerpc: Fix machine detection in prom_init.c
Michael Neuling
mikey at neuling.org
Fri Apr 7 13:56:21 EST 2006
From: Michael Ellerman <michael at ellerman.id.au>
In e8222502ee6157e2713da9e0792c21f4ad458d50 the detection of machine types
in prom_init broke for some machines. We should be checking /device_type
instead of /model. This should make Power3 and Power4 boot again. Haven't
been able to test this. We also need to relocate before comparing.
Signed-off-by: Michael Ellerman <michael at ellerman.id.au>
Signed-off-by: Michael Neuling <mikey at neuling.org>
---
> > In e8222502ee6157e2713da9e0792c21f4ad458d50 the detection of machine
> > types in prom_init broke for some machines. We should be checking
> > /device_type instead of /model. This should make Power3 and Power4
> > boot again. Haven't been able to test this.
>
> We also need to relocate the string before comparing.
>
> Combined patch below. Tested on POWER3.
Oops, let's be a little more careful walking off into nowhere.
Again, combined patch below. Tested on POWER3.
arch/powerpc/kernel/prom_init.c | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
Index: linux-2.6-powerpc/arch/powerpc/kernel/prom_init.c
===================================================================
--- linux-2.6-powerpc.orig/arch/powerpc/kernel/prom_init.c
+++ linux-2.6-powerpc/arch/powerpc/kernel/prom_init.c
@@ -1528,12 +1528,11 @@ static int __init prom_find_machine_type
* non-IBM designs !
* - it has /rtas
*/
- len = prom_getprop(_prom->root, "model",
+ len = prom_getprop(_prom->root, "device_type",
compat, sizeof(compat)-1);
if (len <= 0)
return PLATFORM_GENERIC;
- compat[len] = 0;
- if (strcmp(compat, "chrp"))
+ if (strncmp(compat, RELOC("chrp"), 4))
return PLATFORM_GENERIC;
/* Default to pSeries. We need to know if we are running LPAR */
More information about the Linuxppc-dev
mailing list