[PATCH 0/7] Add device-tree support to kexec-tools for ARM

Matthew Leach matthew.leach at arm.com
Fri Sep 7 05:11:19 EDT 2012


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.

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




More information about the kexec mailing list