On Fri, Sep 07, 2012 at 10:11:19AM +0100, Matthew Leach wrote: > Hi all, > > Running a kexec() on ARM platforms has become an issue as information > about the platform that is presented via device-tree is required to > boot newer kernels. > > The ATAGs kernel code is re-used, replacing the ATAGs with a > device-tree blob so that only kexec-tools needs to be changed. There > are two options for generating a dtb to be passed to the kernel from > kexec-tools: 1) Read in the device-tree that is exposed in > /proc/device-tree and flatten this out into a dtb. 2) Allow the user > to specify a dtb file on the command line. These blobs are then > loaded into memory before the kernel image and the address passed > through to r2, as stated in the ARM booting documentation. > > These patches depend upon a kernel patch, namely: > http://lists.infradead.org/pipermail/linux-arm-kernel/2012-September/118275.html > > Simon - you are welcome to add your signed-off-by to my final patch as > I incorporated bits of your final patch into mine. Sure, I'll add the sign-off as part of merging the changes. What I have in mind is to to merge the non ppc64/powerpc patches, that is 5 of the 7 patches. I'm a but unsure how the kernel-side of things will pan out, but an incremental patch can be made to kexec-tools if needed and this series shouldn't break any existing support Does that work for you? > Matt > > Matthew Leach (1): > ARM: Add device tree support to the ARM platform > > Simon Horman (6): > libfdt: Move from kexec/arch/ppc/libfdt/ to kexec/libfdt/ > kexec-elf.h: Include headers for types used > fs2dt: Add a generic copy of fs2dt > ppc64: Move 64bit powerpc to use generic fs2dt code > powerpc: Move 32bit powerpc to use generic fs2dt code > arm: Make use of memory_ranges > > kexec/Makefile | 6 + > kexec/arch/arm/Makefile | 13 + > kexec/arch/arm/crashdump-arm.c | 45 ++- > kexec/arch/arm/crashdump-arm.h | 2 + > kexec/arch/arm/include/arch/options.h | 6 +- > kexec/arch/arm/kexec-arm.h | 7 + > kexec/arch/arm/kexec-zImage-arm.c | 87 ++++- > kexec/arch/ppc/Makefile | 17 +- > kexec/arch/ppc/crashdump-powerpc.c | 2 +- > kexec/arch/ppc/crashdump-powerpc.h | 2 + > kexec/arch/ppc/fs2dt.c | 450 -------------------------- > kexec/arch/ppc/kexec-elf-ppc.c | 2 - > kexec/arch/ppc/kexec-ppc.h | 26 +- > kexec/arch/ppc/kexec-uImage-ppc.c | 3 - > kexec/arch/ppc64/Makefile | 7 +- > kexec/arch/ppc64/crashdump-ppc64.c | 3 +- > kexec/arch/ppc64/crashdump-ppc64.h | 4 + > kexec/arch/ppc64/kexec-elf-ppc64.c | 4 +- > kexec/arch/ppc64/kexec-ppc64.c | 1 + > kexec/arch/ppc64/kexec-ppc64.h | 29 +- > kexec/arch_reuse_initrd.c | 2 + > kexec/{arch/ppc64 => }/fs2dt.c | 277 +++++++++------- > kexec/fs2dt.h | 38 +++ > kexec/kexec-elf.h | 3 + > kexec/kexec.h | 5 + > kexec/{arch/ppc => }/libfdt/Makefile.libfdt | 8 +- > kexec/{arch/ppc => }/libfdt/TODO | 0 > kexec/{arch/ppc => }/libfdt/fdt.c | 0 > kexec/{arch/ppc => }/libfdt/fdt.h | 0 > kexec/{arch/ppc => }/libfdt/fdt_ro.c | 0 > kexec/{arch/ppc => }/libfdt/fdt_rw.c | 0 > kexec/{arch/ppc => }/libfdt/fdt_strerror.c | 0 > kexec/{arch/ppc => }/libfdt/fdt_sw.c | 0 > kexec/{arch/ppc => }/libfdt/fdt_wip.c | 0 > kexec/{arch/ppc => }/libfdt/libfdt.h | 0 > kexec/{arch/ppc => }/libfdt/libfdt_env.h | 0 > kexec/{arch/ppc => }/libfdt/libfdt_internal.h | 0 > 37 files changed, 392 insertions(+), 657 deletions(-) > delete mode 100644 kexec/arch/ppc/fs2dt.c > rename kexec/{arch/ppc64 => }/fs2dt.c (77%) > create mode 100644 kexec/fs2dt.h > rename kexec/{arch/ppc => }/libfdt/Makefile.libfdt (60%) > rename kexec/{arch/ppc => }/libfdt/TODO (100%) > rename kexec/{arch/ppc => }/libfdt/fdt.c (100%) > rename kexec/{arch/ppc => }/libfdt/fdt.h (100%) > rename kexec/{arch/ppc => }/libfdt/fdt_ro.c (100%) > rename kexec/{arch/ppc => }/libfdt/fdt_rw.c (100%) > rename kexec/{arch/ppc => }/libfdt/fdt_strerror.c (100%) > rename kexec/{arch/ppc => }/libfdt/fdt_sw.c (100%) > rename kexec/{arch/ppc => }/libfdt/fdt_wip.c (100%) > rename kexec/{arch/ppc => }/libfdt/libfdt.h (100%) > rename kexec/{arch/ppc => }/libfdt/libfdt_env.h (100%) > rename kexec/{arch/ppc => }/libfdt/libfdt_internal.h (100%) > > -- > 1.7.12 >