linux/arch/powerpc/boot
David Gibson 35af89eb49 [POWERPC] Cleanup zImage handling of kernel entry with flat device tree
This makes 2 changes to clean up the flat device tree handling
logic in the zImage wrapper.

First, there were two callbacks from the dt_ops structure used for
producing a final flat tree to pass to the kerne: dt_ops.ft_pack()
which packed the flat tree (possibly a no-op) and dt_ops.ft_addr()
which retreived the address of the final blob.  Since they were only
ever called together, this patch combines the two into a single new
callback, dt_ops.finalize().  This new callback does whatever
platform-dependent things are necessary to produce a final flat device
tree blob, and returns the blob's addres.

Second, the current logic calls the kernel with a flat device tree if
one is build into the zImage wrapper, otherwise it boots the kernel
with a PROM pointer, expecting the kernel to copy the OF device tree
itself.  This approach precludes the possibility of the platform
wrapper code building a flat device tree from whatever
platform-specific information firmware provides.  Thus, this patch
takes the more sensible approach of invoking the kernel with a flat
tree if the dt_ops.finalize callback provides one (by whatever means).

So, the dt_ops.finalize callback can be NULL, or can be a function
which returns NULL.  In either case, the zImage wrapper logic assumes
that this is a platform with OF and invokes the kernel accordingly.

Signed-off-by: David Gibson <dwg@au1.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-12-04 20:39:34 +11:00
..
dts [POWERPC] Make pci_read_irq_line the default on mpc7448hpc2 board 2006-12-04 20:39:27 +11:00
.gitignore [PATCH] Make git ignore new wrapper generated files 2006-11-13 14:49:22 +11:00
addnote.c powerpc: Move ppc64 boot wrapper code over to arch/powerpc 2005-11-16 13:52:21 +11:00
addRamDisk.c powerpc: Move ppc64 boot wrapper code over to arch/powerpc 2005-11-16 13:52:21 +11:00
crt0.S [PATCH] powerpc: correct cacheflush loop in zImage 2006-03-16 16:54:57 +11:00
div64.S powerpc: Move ppc64 boot wrapper code over to arch/powerpc 2005-11-16 13:52:21 +11:00
dummy.c powerpc/32: Generate miboot images with ARCH=powerpc 2006-01-15 13:00:08 +11:00
elf.h powerpc: Move ppc64 boot wrapper code over to arch/powerpc 2005-11-16 13:52:21 +11:00
flatdevtree_env.h [POWERPC] Add flatdevtree source 2006-10-23 12:49:18 +10:00
flatdevtree_misc.c [POWERPC] Cleanup zImage handling of kernel entry with flat device tree 2006-12-04 20:39:34 +11:00
flatdevtree.c [POWERPC] Add flatdevtree source 2006-10-23 12:49:18 +10:00
flatdevtree.h [POWERPC] Add flatdevtree source 2006-10-23 12:49:18 +10:00
hack-coff.c powerpc: Make COFF zImages for old 32-bit powermacs 2006-01-14 15:04:06 +11:00
install.sh [PATCH] powerpc: trivial: modify comments to refer to new location of files 2006-02-10 16:53:51 +11:00
io.h [POWERPC] Add non-OF serial console support 2006-10-23 12:49:19 +10:00
main.c [POWERPC] Cleanup zImage handling of kernel entry with flat device tree 2006-12-04 20:39:34 +11:00
Makefile Merge branch 'linux-2.6' into for-linus 2006-12-04 15:59:07 +11:00
mktree.c [POWERPC] Add mktree utility to arch/powerpc/boot 2006-10-24 15:01:27 +10:00
ns16550.c [POWERPC] Add non-OF serial console support 2006-10-23 12:49:19 +10:00
of.c [POWERPC] More bootwrapper reorganization 2006-10-18 15:50:18 +10:00
ops.h [POWERPC] Cleanup zImage handling of kernel entry with flat device tree 2006-12-04 20:39:34 +11:00
page.h powerpc: Move ppc64 boot wrapper code over to arch/powerpc 2005-11-16 13:52:21 +11:00
ppc_asm.h powerpc: Move ppc64 boot wrapper code over to arch/powerpc 2005-11-16 13:52:21 +11:00
README powerpc: Move ppc64 boot wrapper code over to arch/powerpc 2005-11-16 13:52:21 +11:00
rs6000.h powerpc: Make COFF zImages for old 32-bit powermacs 2006-01-14 15:04:06 +11:00
serial.c [POWERPC] Add non-OF serial console support 2006-10-23 12:49:19 +10:00
simple_alloc.c [POWERPC] Add simple memory allocator to bootwrapper 2006-10-23 12:49:19 +10:00
stdio.c [POWERPC] More bootwrapper reorganization 2006-10-18 15:50:18 +10:00
stdio.h [POWERPC] Start arch/powerpc/boot code reorganization 2006-09-20 15:09:58 +10:00
string.h powerpc: Move ppc64 boot wrapper code over to arch/powerpc 2005-11-16 13:52:21 +11:00
string.S powerpc: Avoid unaligned loads and stores in boot memcpy code 2006-01-14 15:06:51 +11:00
types.h [POWERPC] Start arch/powerpc/boot code reorganization 2006-09-20 15:09:58 +10:00
util.S [POWERPC] Add non-OF serial console support 2006-10-23 12:49:19 +10:00
wrapper [PATCH] Remove dtb file created by wrapper script 2006-11-13 14:48:58 +11:00
zImage.coff.lds.S [POWERPC] More bootwrapper reorganization 2006-10-18 15:50:18 +10:00
zImage.lds.S [POWERPC] Make sure initrd and dtb sections get into zImage correctly 2006-11-09 16:00:06 +11:00

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