android_kernel_xiaomi_sm8350/arch/powerpc/boot
Sebastian Siewior c10c178a92 powerpc/boot: Compare _start against ei.loadsize instead ei.memsize
If the vmlinux binary in memory is larger than 4 MiB than it collides
with the initial boot code which is linked at 4 MiB in case of cuBoot.
If the the uncompressed image size (on disk size) is less than 4 MiB
then it would fit. The difference between those two sizes is the bss
section. In cuBoot we have the dtb embedded right after the data
section so it is very likely that the reset of the bss section (in
kernel's start up code) will overwrite the dtb blob. Therefore we
reallocate the dtb. Something similar is allready done to the initrd.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Acked-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2008-10-21 15:17:47 +11:00
..
dtc-src powerpc: Update in-kernel dtc and libfdt to version 1.2.0 2008-08-20 16:34:58 +10:00
dts powerpc/40x: Add support for Netstal HCU4 board 2008-10-17 13:28:05 -04:00
libfdt powerpc: Update in-kernel dtc and libfdt to version 1.2.0 2008-08-20 16:34:58 +10:00
.gitignore [POWERPC] Update arch/powerpc/boot/.gitignore 2008-05-20 00:35:29 -05:00
4xx.c [POWERPC] 4xx: Workaround for CHIP_11 Errata 2008-05-19 09:36:40 -05:00
4xx.h
44x.h
addnote.c powerpc: Sync RPA note in zImage with kernel's RPA note 2008-10-10 15:55:19 +11:00
addRamDisk.c
bamboo.c [POWERPC] Start removing linux,network-index in favour of aliases 2008-03-26 07:19:16 -05:00
cpm-serial.c [POWERPC] cpm-serial: Relocate CPM buffer descriptors and SMC parameter ram. 2008-04-17 01:01:37 -05:00
crt0.S
crtsavres.S [POWERPC] Fix bootwrapper builds with newer gcc versions 2008-06-16 15:00:52 +10:00
cuboot-8xx.c
cuboot-52xx.c powerpc/52xx: Make cuImage more robust in locating immr node. 2008-10-15 11:09:59 -06:00
cuboot-83xx.c
cuboot-85xx-cpm2.c
cuboot-85xx.c
cuboot-824x.c
cuboot-acadia.c powerpc/40x: Add cuboot wrapper for Acadia board 2008-10-17 10:31:19 -04:00
cuboot-bamboo.c
cuboot-c2k.c powerpc: Boot code for the C2K 2008-06-09 13:42:25 +10:00
cuboot-ebony.c
cuboot-katmai.c
cuboot-mpc7448hpc2.c
cuboot-pq2.c [POWERPC] cuboot-pq2: PCI fixes 2008-04-17 01:01:40 -05:00
cuboot-rainier.c [POWERPC] Start removing linux,network-index in favour of aliases 2008-03-26 07:19:16 -05:00
cuboot-sam440ep.c powerpc/4xx: Sam440ep support 2008-06-11 08:32:49 -04:00
cuboot-sequoia.c [POWERPC] Start removing linux,network-index in favour of aliases 2008-03-26 07:19:16 -05:00
cuboot-taishan.c [POWERPC] Start removing linux,network-index in favour of aliases 2008-03-26 07:19:16 -05:00
cuboot-warp.c [POWERPC] PIKA Warp: Update platform code to support Rev B boards 2008-05-29 07:06:56 -05:00
cuboot-yosemite.c [POWERPC] 4xx: Add bootwrapper for AMCC Yosemite board 2008-03-26 07:19:17 -05:00
cuboot.c
cuboot.h
dcr.h
devtree.c [POWERPC] Add bootwrapper function to get virtual reg from the device tree. 2008-04-17 01:01:37 -05:00
div64.S
dummy.c
ebony.c [POWERPC] Start removing linux,network-index in favour of aliases 2008-03-26 07:19:16 -05:00
elf_util.c powerpc: Make the 64-bit kernel as a position-independent executable 2008-09-15 11:08:38 -07:00
elf.h
ep88xc.c
ep405.c
ep8248e.c
fixed-head.S
flatdevtree_env.h
fsl-soc.c
fsl-soc.h
gunzip_util.c
gunzip_util.h
hack-coff.c
holly.c
install.sh
io.h powerpc: Move include files to arch/powerpc/include/asm 2008-08-04 12:02:00 +10:00
libfdt_env.h powerpc: Update in-kernel dtc and libfdt to version 1.2.0 2008-08-20 16:34:58 +10:00
libfdt-wrapper.c powerpc/boot: Compare _start against ei.loadsize instead ei.memsize 2008-10-21 15:17:47 +11:00
main.c powerpc/boot: Compare _start against ei.loadsize instead ei.memsize 2008-10-21 15:17:47 +11:00
Makefile powerpc/40x: Add cuboot wrapper for Acadia board 2008-10-17 10:31:19 -04:00
mktree.c
mpc8xx.c
mpc8xx.h
mpc52xx-psc.c [POWERPC] Add bootwrapper function to get virtual reg from the device tree. 2008-04-17 01:01:37 -05:00
mpsc.c [POWERPC] prpmc2800: Clean up dts properties 2008-04-15 21:21:24 +10:00
mv64x60_i2c.c [POWERPC] mv64x60: Remove device tree absolute path references 2008-04-15 21:21:24 +10:00
mv64x60.c [POWERPC] mv64x60: Remove device tree absolute path references 2008-04-15 21:21:24 +10:00
mv64x60.h
ns16550.c [POWERPC] Xilinx: boot support for Xilinx uart 16550. 2008-04-24 13:32:46 -05:00
of.c
of.h
ofconsole.c
oflib.c powerpc: Change the default link address for pSeries zImage kernels 2008-07-01 11:28:32 +10:00
ops.h [POWERPC] Add bootwrapper function to get virtual reg from the device tree. 2008-04-17 01:01:37 -05:00
page.h
planetcore.c
planetcore.h
ppc_asm.h
ppcboot.h
pq2.c
pq2.h
prpmc2800.c [POWERPC] mv64x60: Remove device tree absolute path references 2008-04-15 21:21:24 +10:00
ps3-head.S [POWERPC] PS3: Bootwrapper improvements 2008-04-01 20:43:07 +11:00
ps3-hvcall.S
ps3.c [POWERPC] PS3: Bootwrapper improvements 2008-04-01 20:43:07 +11:00
README
redboot-8xx.c
redboot-83xx.c [POWERPC] 83xx: Add support for Analogue & Micro ASP837E board 2008-06-02 14:44:25 -05:00
redboot.h
reg.h
rs6000.h
serial.c [POWERPC] mv64x60: Fix FDT compatible names: mv64x60 => mv64360 2008-04-15 21:21:24 +10:00
simple_alloc.c
simpleboot.c powerpc/virtex: Fix booting of Xilinx FPGAs with 16550 for 405 and 440 2008-07-04 00:58:59 -06:00
stdio.c
stdio.h
stdlib.c
stdlib.h
string.h
string.S
treeboot-bamboo.c
treeboot-ebony.c
treeboot-walnut.c [POWERPC] Start removing linux,network-index in favour of aliases 2008-03-26 07:19:16 -05:00
types.h
uartlite.c
util.S
virtex405-head.S [POWERPC] bootwrapper: Add a firmware-independent simpleboot target. 2008-04-02 20:36:11 -05:00
virtex.c powerpc/virtex: Fix booting of Xilinx FPGAs with 16550 for 405 and 440 2008-07-04 00:58:59 -06:00
wrapper powerpc: Sync RPA note in zImage with kernel's RPA note 2008-10-10 15:55:19 +11:00
zImage.coff.lds.S powerpc: Change the default link address for pSeries zImage kernels 2008-07-01 11:28:32 +10:00
zImage.lds.S powerpc: Change the default link address for pSeries zImage kernels 2008-07-01 11:28:32 +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