diff options
Diffstat (limited to 'arch/powerpc/kernel')
-rw-r--r-- | arch/powerpc/kernel/prom_init.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c index 813c2cd194c2..0d0887844501 100644 --- a/arch/powerpc/kernel/prom_init.c +++ b/arch/powerpc/kernel/prom_init.c | |||
@@ -397,6 +397,11 @@ static void __init __attribute__((noreturn)) prom_panic(const char *reason) | |||
397 | reason = PTRRELOC(reason); | 397 | reason = PTRRELOC(reason); |
398 | #endif | 398 | #endif |
399 | prom_print(reason); | 399 | prom_print(reason); |
400 | /* Do not call exit because it clears the screen on pmac | ||
401 | * it also causes some sort of double-fault on early pmacs */ | ||
402 | if (RELOC(of_platform) == PLATFORM_POWERMAC) | ||
403 | asm("trap\n"); | ||
404 | |||
400 | /* ToDo: should put up an SRC here on p/iSeries */ | 405 | /* ToDo: should put up an SRC here on p/iSeries */ |
401 | call_prom("exit", 0, 0); | 406 | call_prom("exit", 0, 0); |
402 | 407 | ||
@@ -2060,15 +2065,6 @@ unsigned long __init prom_init(unsigned long r3, unsigned long r4, | |||
2060 | */ | 2065 | */ |
2061 | prom_init_stdout(); | 2066 | prom_init_stdout(); |
2062 | 2067 | ||
2063 | /* Bail if this is a kdump kernel. */ | ||
2064 | if (PHYSICAL_START > 0) | ||
2065 | prom_panic("Error: You can't boot a kdump kernel from OF!\n"); | ||
2066 | |||
2067 | /* | ||
2068 | * Check for an initrd | ||
2069 | */ | ||
2070 | prom_check_initrd(r3, r4); | ||
2071 | |||
2072 | /* | 2068 | /* |
2073 | * Get default machine type. At this point, we do not differentiate | 2069 | * Get default machine type. At this point, we do not differentiate |
2074 | * between pSeries SMP and pSeries LPAR | 2070 | * between pSeries SMP and pSeries LPAR |
@@ -2078,6 +2074,15 @@ unsigned long __init prom_init(unsigned long r3, unsigned long r4, | |||
2078 | prom_setprop(_prom->chosen, "/chosen", "linux,platform", | 2074 | prom_setprop(_prom->chosen, "/chosen", "linux,platform", |
2079 | &getprop_rval, sizeof(getprop_rval)); | 2075 | &getprop_rval, sizeof(getprop_rval)); |
2080 | 2076 | ||
2077 | /* Bail if this is a kdump kernel. */ | ||
2078 | if (PHYSICAL_START > 0) | ||
2079 | prom_panic("Error: You can't boot a kdump kernel from OF!\n"); | ||
2080 | |||
2081 | /* | ||
2082 | * Check for an initrd | ||
2083 | */ | ||
2084 | prom_check_initrd(r3, r4); | ||
2085 | |||
2081 | #ifdef CONFIG_PPC_PSERIES | 2086 | #ifdef CONFIG_PPC_PSERIES |
2082 | /* | 2087 | /* |
2083 | * On pSeries, inform the firmware about our capabilities | 2088 | * On pSeries, inform the firmware about our capabilities |