powerpc/powernv: Workaround OFW issues in prom_init.c
Open Firmware on OPAL machines seems to have issues if we close stdin and/or we try to print things after calling "quiesce" so we avoid doing both. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
cee72d5bb4
commit
40dfef66a9
@ -2969,9 +2969,11 @@ unsigned long __init prom_init(unsigned long r3, unsigned long r4,
|
|||||||
/*
|
/*
|
||||||
* in case stdin is USB and still active on IBM machines...
|
* in case stdin is USB and still active on IBM machines...
|
||||||
* Unfortunately quiesce crashes on some powermacs if we have
|
* Unfortunately quiesce crashes on some powermacs if we have
|
||||||
* closed stdin already (in particular the powerbook 101).
|
* closed stdin already (in particular the powerbook 101). It
|
||||||
|
* appears that the OPAL version of OFW doesn't like it either.
|
||||||
*/
|
*/
|
||||||
if (RELOC(of_platform) != PLATFORM_POWERMAC)
|
if (RELOC(of_platform) != PLATFORM_POWERMAC &&
|
||||||
|
RELOC(of_platform) != PLATFORM_OPAL)
|
||||||
prom_close_stdin();
|
prom_close_stdin();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -2987,8 +2989,12 @@ unsigned long __init prom_init(unsigned long r3, unsigned long r4,
|
|||||||
* is common to us and kexec
|
* is common to us and kexec
|
||||||
*/
|
*/
|
||||||
hdr = RELOC(dt_header_start);
|
hdr = RELOC(dt_header_start);
|
||||||
prom_printf("returning from prom_init\n");
|
|
||||||
prom_debug("->dt_header_start=0x%x\n", hdr);
|
/* Don't print anything after quiesce under OPAL, it crashes OFW */
|
||||||
|
if (RELOC(of_platform) != PLATFORM_OPAL) {
|
||||||
|
prom_printf("returning from prom_init\n");
|
||||||
|
prom_debug("->dt_header_start=0x%x\n", hdr);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_PPC32
|
#ifdef CONFIG_PPC32
|
||||||
reloc_got2(-offset);
|
reloc_got2(-offset);
|
||||||
|
Loading…
Reference in New Issue
Block a user