linux/arch/powerpc/boot
Oliver O'Halloran a1ff57416a powerpc/boot: Fix the early OPAL console wrappers
When configured with CONFIG_PPC_EARLY_DEBUG_OPAL=y the kernel expects
the OPAL entry and base addresses to be passed in r8 and r9
respectively. Currently the wrapper does not attempt to restore these
values before entering the decompressed kernel which causes the kernel
to branch into whatever happens to be in r9 when doing a write to the
OPAL console in early boot.

This patch adds a platform_ops hook that can be used to branch into the
new kernel. The OPAL console driver patches this at runtime so that if
the console is used it will be restored just prior to entering the
kernel.

Fixes: 656ad58ef1 ("powerpc/boot: Add OPAL console to epapr wrappers")
Cc: stable@vger.kernel.org # v4.8+
Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2016-11-24 17:34:01 +11:00
..
dts powerpc updates for 4.8 # 1 2016-07-30 21:01:36 -07:00
.gitignore powerpc/boot: Ignore .dtb files. 2013-12-02 14:06:57 +11:00
4xx.c
4xx.h
44x.h
addnote.c powerpc/boot: Add 64bit and little endian support to addnote 2014-04-28 17:36:00 +10:00
bamboo.c
cpm-serial.c
crt0.S powerpc/boot: don't clobber r6 and r7 in epapr boot 2015-03-16 18:58:35 +11:00
crtsavres.S
cuboot-8xx.c
cuboot-52xx.c
cuboot-83xx.c
cuboot-85xx-cpm2.c
cuboot-85xx.c
cuboot-824x.c
cuboot-acadia.c
cuboot-amigaone.c
cuboot-bamboo.c
cuboot-c2k.c powerpc/boot: Remove the legacy gzip wrapper 2016-09-28 14:31:50 +10:00
cuboot-ebony.c
cuboot-hotfoot.c
cuboot-katmai.c
cuboot-kilauea.c
cuboot-mpc7448hpc2.c
cuboot-pq2.c
cuboot-rainier.c
cuboot-sam440ep.c
cuboot-sequoia.c
cuboot-taishan.c
cuboot-warp.c
cuboot-yosemite.c
cuboot.c
cuboot.h
dcr.h IBM Akebono: Add the Akebono platform 2014-05-01 08:26:26 +10:00
decompress.c powerpc/boot: Add support for XZ compression 2016-09-28 14:35:14 +10:00
devtree.c
div64.S powerpc/boot: Add extended precision shifts to the boot wrapper. 2011-12-09 07:49:27 -05:00
dummy.c
ebony.c
elf_util.c powerpc/boot: Add little endian support to elf utils 2014-04-28 17:36:04 +10:00
elf.h
ep88xc.c
ep405.c
ep8248e.c
epapr-wrapper.c powerpc/zImage: make the "OF" wrapper support ePAPR boot 2013-09-25 14:18:44 +10:00
epapr.c powerpc/zImage: make the "OF" wrapper support ePAPR boot 2013-09-25 14:18:44 +10:00
fixed-head.S
fixup-headers.sed powerpc/boot: Add sed script 2016-09-28 14:20:44 +10:00
fsl-soc.c
fsl-soc.h
gamecube-head.S
gamecube.c
hack-coff.c
holly.c
install.sh
io.h powerpc: Fix wrong defintion in boot/io.h 2014-08-05 15:41:03 +10:00
libfdt_env.h libfdt: add fdt type definitions 2015-04-29 17:17:17 -05:00
libfdt-wrapper.c powerpc/boot/fdt: Use unsigned long for pointer casts 2015-03-16 18:58:30 +11:00
main.c powerpc/boot: Fix the early OPAL console wrappers 2016-11-24 17:34:01 +11:00
Makefile powerpc/boot: Add support for XZ compression 2016-09-28 14:35:14 +10:00
mktree.c
motload-head.S powerpc/86xx: Add support for Emerson/Artesyn MVME7100 2016-07-08 20:01:27 -05:00
mpc8xx.c
mpc8xx.h
mpc52xx-psc.c
mpsc.c
mv64x60_i2c.c
mv64x60.c
mv64x60.h
mvme5100.c powerpc/embedded6xx: Add support for Motorola/Emerson MVME5100 2014-01-09 17:52:20 -06:00
mvme7100.c powerpc/86xx: Add support for Emerson/Artesyn MVME7100 2016-07-08 20:01:27 -05:00
ns16550.c
of.c powerpc/boot: Rework of_claim() to make it 64bit friendly 2014-04-28 17:35:43 +10:00
of.h libfdt: add fdt type definitions 2015-04-29 17:17:17 -05:00
ofconsole.c powerpc/boot: Add byteswapping routines in oflib 2014-04-28 17:35:35 +10:00
oflib.c powerpc/boot: Define a routine to enter prom 2014-04-28 17:36:08 +10:00
opal-calls.S powerpc/boot: Fix the early OPAL console wrappers 2016-11-24 17:34:01 +11:00
opal.c powerpc/boot: Fix the early OPAL console wrappers 2016-11-24 17:34:01 +11:00
ops.h powerpc/boot: Fix the early OPAL console wrappers 2016-11-24 17:34:01 +11:00
page.h powerpc: Fix _ALIGN_* errors due to type difference. 2015-10-09 08:02:25 +11:00
planetcore.c powerpc/boot: drop planetcore_set_serial_speed 2015-03-16 18:50:17 +11:00
planetcore.h powerpc/boot: drop planetcore_set_serial_speed 2015-03-16 18:50:17 +11:00
ppc_asm.h powerpc/boot: Add OPAL console to epapr wrappers 2016-07-05 23:58:54 +10:00
ppcboot-hotfoot.h
ppcboot.h powerpc/86xx: Add support for Emerson/Artesyn MVME7100 2016-07-08 20:01:27 -05:00
pq2.c
pq2.h
ps3-head.S
ps3-hvcall.S
ps3.c powerpc: Rename duplicate COMMAND_LINE_SIZE define 2014-04-28 16:31:54 +10:00
pseries-head.S powerpc/boot: Add support for 64bit little endian wrapper 2014-04-28 17:36:21 +10:00
README
redboot-8xx.c
redboot-83xx.c
redboot.h
reg.h
rs6000.h powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
serial.c powerpc/boot: Add OPAL console to epapr wrappers 2016-07-05 23:58:54 +10:00
simple_alloc.c
simpleboot.c powerpc/simpleboot: fix comment 2014-08-26 09:35:57 +02:00
stdbool.h powerpc/boot: Add support for XZ compression 2016-09-28 14:35:14 +10:00
stdint.h powerpc/boot: Add support for XZ compression 2016-09-28 14:35:14 +10:00
stdio.c powerpc/boot: Fix do_div for 64bit wrapper 2014-04-28 17:35:22 +10:00
stdio.h
stdlib.c
stdlib.h
string.h
string.S
swab.h powerpc/boot: Define byteswapping routines for little endian 2014-04-28 17:35:56 +10:00
treeboot-akebono.c powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
treeboot-bamboo.c
treeboot-currituck.c powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
treeboot-ebony.c
treeboot-iss4xx.c powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
treeboot-walnut.c
types.h powerpc/boot: Add support for XZ compression 2016-09-28 14:35:14 +10:00
uartlite.c
ugecon.c
ugecon.h
util.S powerpc: No need to use dot symbols when branching to a function 2014-04-23 10:05:16 +10:00
virtex405-head.S
virtex.c
wii-head.S
wii.c
wrapper powerpc/boot: Add XZ support to the wrapper script 2016-09-28 14:32:27 +10:00
xz_config.h powerpc/boot: Add support for XZ compression 2016-09-28 14:35:14 +10:00
zImage.coff.lds.S powerpc/boot: Allow building the zImage wrapper as a relocatable ET_DYN 2011-04-20 16:59:20 +10:00
zImage.lds.S powerpc/boot: Add support for 64bit little endian wrapper 2014-04-28 17:36:21 +10:00
zImage.ps3.lds.S

To extract the kernel vmlinux, System.map, .config or initrd from the zImage binary:

objcopy -j .kernel:vmlinux -O binary zImage vmlinux.gz
objcopy -j .kernel:System.map -O binary zImage System.map.gz
objcopy -j .kernel:.config -O binary zImage config.gz
objcopy -j .kernel:initrd -O binary zImage.initrd initrd.gz


	Peter