Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 40dfef66 authored by Benjamin Herrenschmidt's avatar Benjamin Herrenschmidt
Browse files

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: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent cee72d5b
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -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...
	 * 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();

	/*
@@ -2987,8 +2989,12 @@ unsigned long __init prom_init(unsigned long r3, unsigned long r4,
	 * is common to us and kexec
	 */
	hdr = RELOC(dt_header_start);

	/* 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
	reloc_got2(-offset);