Re: [PATCH] powerpc: Fix machine detection in prom_init.c
From: Michael Neuling <hidden>
Date: 2006-04-07 03:56:21
From: Michael Ellerman <redacted> 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 <redacted> Signed-off-by: Michael Neuling <redacted> ---
quoted
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 */