arm64 kexec-tools patches
Subsystems (2)
v6 cover arm64 kexec-tools patches
This series adds the core support for kexec re-boot on ARM64.
Linux kernel support for ARM64 kexec reboot has been merged in v4.8-rc1 with the expectation that it will be included in the v4.8 stable kernel release.
For ARM64 kdump support see Takahiro's latest kdump patches [1].
[1] http://lists.infradead.org/pipermail/kexec
Changes for v6 (Sep , 2016, 2m):
o Remove the get_memory_ranges_dt() routine.
o Rename dtb_[12] to dtb_{proc,sys,user}.
Changes for v5 (Sep 1, 2016, 2m):
o Add common routine arm64_locate_kernel_segment().
Changes for v4 (Aug 18, 2016, 1m):
o Fix some error return values and error messages.
o Add enum arm64_header_page_size.
o Rename page_offset to vp_offset.
Changes for v3 (Aug 10, 2016, 1m):
o Rebase to 2.0.13.
o Add support for flag bits 1-3 to arm64 image-header.h.
o Fix OPT_ARCH_MAX value.
o Use fdt_pack() in dtb_set_property().
o Remove patch ("kexec: (bugfix) calc correct end address of memory ranges in device tree").
Changes for v2 (July 26, 2016, 0m):
o Inline some small routines.
o Reformat some dbgprintf messages.
o Remove debug_brk from entry.S
o Change arm64_image_header.flags to uint64_t.
o Look in iomem then dt for mem info.
o Remove check_cpu_nodes.
o Remove purgatory printing.
First submission v1 (July 20, 2016).
-Geoff
The following changes since commit 67488beb0a6ee8ad2c0b05f721a9e00041fab93a:
kexec-tools 2.0.13 (2016-08-08 12:26:44 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/geoff/kexec-tools.git for-merge-arm64-v6
for you to fetch changes up to a9f1fafd7c248d33768177438742b90bc4338202:
arm64: Add support for binary image files (2016-09-21 11:04:03 -0700)
----------------------------------------------------------------
Geoff Levand (2):
kexec: Add common device tree routines
arm64: Add arm64 kexec support
Pratyush Anand (1):
arm64: Add support for binary image files
configure.ac | 3 + kexec/Makefile | 5 + kexec/arch/arm64/Makefile | 40 +++ kexec/arch/arm64/crashdump-arm64.c | 21 ++ kexec/arch/arm64/crashdump-arm64.h | 12 + kexec/arch/arm64/image-header.h | 146 ++++++++ kexec/arch/arm64/include/arch/options.h | 39 ++ kexec/arch/arm64/kexec-arm64.c | 615 ++++++++++++++++++++++++++++++++ kexec/arch/arm64/kexec-arm64.h | 71 ++++ kexec/arch/arm64/kexec-elf-arm64.c | 146 ++++++++ kexec/arch/arm64/kexec-image-arm64.c | 80 +++++ kexec/dt-ops.c | 145 ++++++++ kexec/dt-ops.h | 13 + kexec/kexec-syscall.h | 8 +- purgatory/Makefile | 1 + purgatory/arch/arm64/Makefile | 18 + purgatory/arch/arm64/entry.S | 51 +++ purgatory/arch/arm64/purgatory-arm64.c | 19 + 18 files changed, 1431 insertions(+), 2 deletions(-) create mode 100644 kexec/arch/arm64/Makefile create mode 100644 kexec/arch/arm64/crashdump-arm64.c create mode 100644 kexec/arch/arm64/crashdump-arm64.h create mode 100644 kexec/arch/arm64/image-header.h create mode 100644 kexec/arch/arm64/include/arch/options.h create mode 100644 kexec/arch/arm64/kexec-arm64.c create mode 100644 kexec/arch/arm64/kexec-arm64.h create mode 100644 kexec/arch/arm64/kexec-elf-arm64.c create mode 100644 kexec/arch/arm64/kexec-image-arm64.c create mode 100644 kexec/dt-ops.c create mode 100644 kexec/dt-ops.h create mode 100644 purgatory/arch/arm64/Makefile create mode 100644 purgatory/arch/arm64/entry.S create mode 100644 purgatory/arch/arm64/purgatory-arm64.c
Signature · 7 lines
2.7.4 _______________________________________________ kexec mailing list [email protected] http://lists.infradead.org/mailman/listinfo/kexec
PATCH v6 1/3 kexec: Add common device tree routines
Common device tree routines that can be shared between all arches that have device tree support.
--- kexec/Makefile | 4 ++ kexec/dt-ops.c | 145 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ kexec/dt-ops.h | 13 ++++++ 3 files changed, 162 insertions(+) create mode 100644 kexec/dt-ops.c create mode 100644 kexec/dt-ops.h
kexec/Makefile +4 -0
@@ -73,6 +73,10 @@ dist += kexec/mem_regions.c kexec/mem_regions.h $(ARCH)_MEM_REGIONS = KEXEC_SRCS += $($(ARCH)_MEM_REGIONS) +dist += kexec/dt-ops.c kexec/dt-ops.h +$(ARCH)_DT_OPS = +KEXEC_SRCS += $($(ARCH)_DT_OPS) + include $(srcdir)/kexec/arch/alpha/Makefile include $(srcdir)/kexec/arch/arm/Makefile include $(srcdir)/kexec/arch/i386/Makefile
kexec/dt-ops.c new file +145 -0
145 lines not on this page · raw message
kexec/dt-ops.h new file +13 -0
@@ -0,0 +1,13 @@ +#if !defined(KEXEC_DT_OPS_H ) +#define KEXEC_DT_OPS_H + +#include <sys/types.h> + +int dtb_set_initrd (char **dtb,off_t *dtb_size,off_t start,off_t end); +int dtb_set_bootargs (char **dtb,off_t *dtb_size,const char *command_line); +int dtb_set_property (char **dtb,off_t *dtb_size,const char *node, +const char *prop,const void *value,int value_len); + +int dtb_delete_property (char *dtb,const char *node,const char *prop); + +#endif
Signature · 8 lines
2.7.4 _______________________________________________ kexec mailing list [email protected] http://lists.infradead.org/mailman/listinfo/kexec
PATCH v6 2/3 arm64: Add arm64 kexec support
In reply to Geoff LevandAdd kexec reboot support for ARM64 platforms.
--- configure.ac | 3 + kexec/Makefile | 1 + kexec/arch/arm64/Makefile | 40 +++ kexec/arch/arm64/crashdump-arm64.c | 21 ++ kexec/arch/arm64/crashdump-arm64.h | 12 + kexec/arch/arm64/image-header.h | 146 ++++++++ kexec/arch/arm64/include/arch/options.h | 39 ++ kexec/arch/arm64/kexec-arm64.c | 615 ++++++++++++++++++++++++++++++++ kexec/arch/arm64/kexec-arm64.h | 71 ++++ kexec/arch/arm64/kexec-elf-arm64.c | 146 ++++++++ kexec/arch/arm64/kexec-image-arm64.c | 41 +++ kexec/kexec-syscall.h | 8 +- purgatory/Makefile | 1 + purgatory/arch/arm64/Makefile | 18 + purgatory/arch/arm64/entry.S | 51 +++ purgatory/arch/arm64/purgatory-arm64.c | 19 + 16 files changed, 1230 insertions(+), 2 deletions(-) create mode 100644 kexec/arch/arm64/Makefile create mode 100644 kexec/arch/arm64/crashdump-arm64.c create mode 100644 kexec/arch/arm64/crashdump-arm64.h create mode 100644 kexec/arch/arm64/image-header.h create mode 100644 kexec/arch/arm64/include/arch/options.h create mode 100644 kexec/arch/arm64/kexec-arm64.c create mode 100644 kexec/arch/arm64/kexec-arm64.h create mode 100644 kexec/arch/arm64/kexec-elf-arm64.c create mode 100644 kexec/arch/arm64/kexec-image-arm64.c create mode 100644 purgatory/arch/arm64/Makefile create mode 100644 purgatory/arch/arm64/entry.S create mode 100644 purgatory/arch/arm64/purgatory-arm64.c
configure.ac +3 -0
@@ -34,6 +34,9 @@ case $target_cpu in ARCH="ppc64" SUBARCH="LE" ;; + aarch64* ) + ARCH="arm64" + ;; arm* ) ARCH="arm" ;;
kexec/Makefile +1 -0
@@ -79,6 +79,7 @@ KEXEC_SRCS += $($(ARCH)_DT_OPS) include $(srcdir)/kexec/arch/alpha/Makefile include $(srcdir)/kexec/arch/arm/Makefile +include $(srcdir)/kexec/arch/arm64/Makefile include $(srcdir)/kexec/arch/i386/Makefile include $(srcdir)/kexec/arch/ia64/Makefile include $(srcdir)/kexec/arch/m68k/Makefile
kexec/arch/arm64/Makefile new file +40 -0
@@ -0,0 +1,40 @@ + +arm64_FS2DT += kexec/fs2dt.c +arm64_FS2DT_INCLUDE += -include $(srcdir)/kexec/arch/arm64/kexec-arm64.h \ + -include $(srcdir)/kexec/arch/arm64/crashdump-arm64.h + +arm64_DT_OPS += kexec/dt-ops.c + +arm64_CPPFLAGS += -I $(srcdir)/kexec/ + +arm64_KEXEC_SRCS += \ + kexec/arch/arm64/kexec-arm64.c \ + kexec/arch/arm64/kexec-image-arm64.c \ + kexec/arch/arm64/kexec-elf-arm64.c \ + kexec/arch/arm64/crashdump-arm64.c + +arm64_ARCH_REUSE_INITRD = +arm64_ADD_SEGMENT = +arm64_VIRT_TO_PHYS = +arm64_PHYS_TO_VIRT = + +dist += $(arm64_KEXEC_SRCS) \ + kexec/arch/arm64/Makefile \ + kexec/arch/arm64/kexec-arm64.h \ + kexec/arch/arm64/crashdump-arm64.h + +ifdef HAVE_LIBFDT + +LIBS += -lfdt + +else + +include $(srcdir)/kexec/libfdt/Makefile.libfdt + +libfdt_SRCS += $(LIBFDT_SRCS:%=kexec/libfdt/%) + +arm64_CPPFLAGS += -I$(srcdir)/kexec/libfdt + +arm64_KEXEC_SRCS += $(libfdt_SRCS) + +endif
kexec/arch/arm64/crashdump-arm64.c new file +21 -0
@@ -0,0 +1,21 @@ +/* +* ARM64 crashdump. +*/ + +#define _GNU_SOURCE + +#include <errno.h> +#include <linux/elf.h> + +#include "kexec.h" +#include "crashdump.h" +#include "crashdump-arm64.h" +#include "kexec-arm64.h" +#include "kexec-elf.h" + +struct memory_ranges usablemem_rgns = {}; + +int is_crashkernel_mem_reserved (void ) +{ +return 0 ; +}
kexec/arch/arm64/crashdump-arm64.h new file +12 -0
@@ -0,0 +1,12 @@ +/* +* ARM64 crashdump. +*/ + +#if !defined(CRASHDUMP_ARM64_H ) +#define CRASHDUMP_ARM64_H + +#include "kexec.h" + +extern struct memory_ranges usablemem_rgns; + +#endif
kexec/arch/arm64/image-header.h new file +146 -0
146 lines not on this page · raw message
kexec/arch/arm64/include/arch/options.h new file +39 -0
@@ -0,0 +1,39 @@ +#if !defined(KEXEC_ARCH_ARM64_OPTIONS_H ) +#define KEXEC_ARCH_ARM64_OPTIONS_H + +#define OPT_APPEND ((OPT_MAX)+0) +#define OPT_DTB ((OPT_MAX)+1) +#define OPT_INITRD ((OPT_MAX)+2) +#define OPT_REUSE_CMDLINE ((OPT_MAX)+3) +#define OPT_ARCH_MAX ((OPT_MAX)+4) + +#define KEXEC_ARCH_OPTIONS \ + KEXEC_OPTIONS \ + { "append", 1, NULL, OPT_APPEND }, \ + { "command-line", 1, NULL, OPT_APPEND }, \ + { "dtb", 1, NULL, OPT_DTB }, \ + { "initrd", 1, NULL, OPT_INITRD }, \ + { "ramdisk", 1, NULL, OPT_INITRD }, \ + { "reuse-cmdline", 0, NULL, OPT_REUSE_CMDLINE }, \ + +#define KEXEC_ARCH_OPT_STR KEXEC_OPT_STR/* Only accept long arch options. */ +#define KEXEC_ALL_OPTIONS KEXEC_ARCH_OPTIONS +#define KEXEC_ALL_OPT_STR KEXEC_ARCH_OPT_STR + +static const char arm64_opts_usage[] __attribute__ ((unused)) = +" --append=STRING Set the kernel command line to STRING.\n" +" --command-line=STRING Set the kernel command line to STRING.\n" +" --dtb=FILE Use FILE as the device tree blob.\n" +" --initrd=FILE Use FILE as the kernel initial ramdisk.\n" +" --ramdisk=FILE Use FILE as the kernel initial ramdisk.\n" +" --reuse-cmdline Use kernel command line from running system.\n" ; + +struct arm64_opts { +const char *command_line; +const char *dtb; +const char *initrd; +}; + +extern struct arm64_opts arm64_opts; + +#endif
kexec/arch/arm64/kexec-arm64.c new file +615 -0
615 lines not on this page · raw message
kexec/arch/arm64/kexec-arm64.h new file +71 -0
71 lines not on this page · raw message
kexec/arch/arm64/kexec-elf-arm64.c new file +146 -0
146 lines not on this page · raw message
kexec/arch/arm64/kexec-image-arm64.c new file +41 -0
41 lines not on this page · raw message
kexec/kexec-syscall.h +6 -2
@@ -39,8 +39,8 @@#ifdef __s390__#define __NR_kexec_load 277#endif -#ifdef __arm__ -#define __NR_kexec_load __NR_SYSCALL_BASE + 347 +#if defined(__arm__) || defined(__arm64__) +#define __NR_kexec_load __NR_SYSCALL_BASE + 347#endif #if defined(__mips__)#define __NR_kexec_load 4311
@@ -108,6 +108,7 @@ static inline long kexec_file_load(int kernel_fd, int initrd_fd,#define KEXEC_ARCH_PPC64 (21 << 16)#define KEXEC_ARCH_IA_64 (50 << 16)#define KEXEC_ARCH_ARM (40 << 16) +#define KEXEC_ARCH_ARM64 (183 << 16)#define KEXEC_ARCH_S390 (22 << 16)#define KEXEC_ARCH_SH (42 << 16)#define KEXEC_ARCH_MIPS_LE (10 << 16)
@@ -153,5 +154,8 @@ static inline long kexec_file_load(int kernel_fd, int initrd_fd,#ifdef __m68k__#define KEXEC_ARCH_NATIVE KEXEC_ARCH_68K#endif +#if defined(__arm64__) +#define KEXEC_ARCH_NATIVE KEXEC_ARCH_ARM64 +#endif #endif /* KEXEC_SYSCALL_H */
purgatory/Makefile +1 -0
@@ -19,6 +19,7 @@ dist += purgatory/Makefile $(PURGATORY_SRCS) \ include $(srcdir)/purgatory/arch/alpha/Makefile include $(srcdir)/purgatory/arch/arm/Makefile +include $(srcdir)/purgatory/arch/arm64/Makefile include $(srcdir)/purgatory/arch/i386/Makefile include $(srcdir)/purgatory/arch/ia64/Makefile include $(srcdir)/purgatory/arch/mips/Makefile
purgatory/arch/arm64/Makefile new file +18 -0
@@ -0,0 +1,18 @@ + +arm64_PURGATORY_EXTRA_CFLAGS = \ + -mcmodel=large \ + -fno-stack-protector \ + -fno-asynchronous-unwind-tables \ + -Wundef \ + -Werror-implicit-function-declaration \ + -Wdeclaration-after-statement \ + -Werror=implicit-int \ + -Werror=strict-prototypes + +arm64_PURGATORY_SRCS += \ + purgatory/arch/arm64/entry.S \ + purgatory/arch/arm64/purgatory-arm64.c + +dist += \ + $(arm64_PURGATORY_SRCS) \ + purgatory/arch/arm64/Makefile
purgatory/arch/arm64/entry.S new file +51 -0
52 lines not on this page · raw message
purgatory/arch/arm64/purgatory-arm64.c new file +19 -0
@@ -0,0 +1,19 @@ +/* +* ARM64 purgatory. +*/ + +#include <stdint.h> +#include <purgatory.h> + +void putchar (int ch) +{ +/* Nothing for now */ +} + +void post_verification_setup_arch (void ) +{ +} + +void setup_arch (void ) +{ +}
Signature · 8 lines
2.7.4 _______________________________________________ kexec mailing list [email protected] http://lists.infradead.org/mailman/listinfo/kexec
PATCH v6 3/3 arm64: Add support for binary image files
In reply to Geoff LevandFrom: Pratyush Anand <[email protected]>
--- kexec/arch/arm64/kexec-image-arm64.c | 49 ++++++++++++++++++++++++++++++++---- 1 file changed, 44 insertions(+), 5 deletions(-)
kexec/arch/arm64/kexec-image-arm64.c +44 -5
@@ -3,7 +3,9 @@*/ #define _GNU_SOURCE +#include "kexec-arm64.h" +#include <limits.h> int image_arm64_probe (const char *kernel_buf,off_t kernel_size) {
@@ -21,14 +23,53 @@ int image_arm64_probe(const char *kernel_buf, off_t kernel_size)return -1 ; } -fprintf (stderr,"kexec: ARM64 binary image files are currently NOT SUPPORTED.\n" ); -return -1 ; +return 0 ; }int image_arm64_load (int argc,char **argv,const char *kernel_buf,off_t kernel_size,struct kexec_info *info) { -return -1 ; +const struct arm64_image_header *header; +unsigned long kernel_segment; +int result; + + header = (const struct arm64_image_header *)(kernel_buf); + +if (arm64_process_image_header (header)) +return -1 ; + + kernel_segment =arm64_locate_kernel_segment (info); + +if (kernel_segment ==ULONG_MAX ) { +dbgprintf ("%s: Kernel segment is not allocated\n" , __func__); + result = -EFAILED ; + goto exit; + } + +dbgprintf ("%s: kernel_segment: %016lx\n" , __func__, kernel_segment); +dbgprintf ("%s: text_offset: %016lx\n" , __func__, + arm64_mem.text_offset); +dbgprintf ("%s: image_size: %016lx\n" , __func__, + arm64_mem.image_size); +dbgprintf ("%s: phys_offset: %016lx\n" , __func__, + arm64_mem.phys_offset); +dbgprintf ("%s: vp_offset: %016lx\n" , __func__, + arm64_mem.vp_offset); +dbgprintf ("%s: PE format: %s\n" , __func__, + (arm64_header_check_pe_sig (header) ?"yes" :"no" )); + +/* load the kernel */ +add_segment_phys_virt (info, kernel_buf, kernel_size, + kernel_segment + arm64_mem.text_offset, + arm64_mem.image_size,0 ); + + result =arm64_load_other_segments (info, kernel_segment + + arm64_mem.text_offset); + +exit: +if (result) +fprintf (stderr,"kexec: load failed.\n" ); +return result; }void image_arm64_usage (void )
@@ -36,6 +77,4 @@ void image_arm64_usage(void)printf (" An ARM64 binary image, compressed or not, big or little endian.\n" " Typically an Image, Image.gz or Image.lzma file.\n\n" ); -printf ( -" ARM64 binary image files are currently NOT SUPPORTED.\n\n" ); }
Signature · 7 lines
2.7.4 _______________________________________________ kexec mailing list [email protected] http://lists.infradead.org/mailman/listinfo/kexec
Hi Geoff,
Quoted 1 line · Geoff Levand
This series adds the core support for kexec re-boot on ARM64.
I tested this series with mustang and seattle and they work.
So you can use my "Tested-By: Pratyush Anand <[email protected]>".
Just one Nitpick: In patch 2/3 arm64_header_check_msb(), arm64_header_page_size() and arm64_header_placement() have been defined but they have not been used anywhere. So, may be they can be removed.
~Pratyush
Quoted 101 lines
Linux kernel support for ARM64 kexec reboot has been merged in v4.8-rc1 with the expectation that it will be included in the v4.8 stable kernel release.
For ARM64 kdump support see Takahiro's latest kdump patches [1].
[1] http://lists.infradead.org/pipermail/kexec
Changes for v6 (Sep , 2016, 2m):
o Remove the
get_memory_ranges_dt()routine.
o Rename dtb_[12] to dtb_{proc,sys,user}.Changes for v5 (Sep 1, 2016, 2m):
o Add common routine
arm64_locate_kernel_segment().Changes for v4 (Aug 18, 2016, 1m):
o Fix some error return values and error messages.
o Add enumarm64_header_page_size.
o Renamepage_offsettovp_offset.Changes for v3 (Aug 10, 2016, 1m):
o Rebase to 2.0.13.
o Add support for flag bits 1-3 to arm64image-header.h.
o FixOPT_ARCH_MAXvalue.
o Usefdt_pack()indtb_set_property().
o Remove patch ("kexec: (bugfix) calc correct end address of memory ranges in device tree").Changes for v2 (July 26, 2016, 0m):
o Inline some small routines.
o Reformat some dbgprintf messages.
o Removedebug_brkfromentry.S
o Change arm64_image_header.flags touint64_t.
o Look in iomem then dt for mem info.
o Removecheck_cpu_nodes.
o Remove purgatory printing.First submission v1 (July 20, 2016).
-Geoff
The following changes since commit
67488beb0a6ee8ad2c0b05f721a9e00041fab93a:kexec-tools 2.0.13 (2016-08-08 12:26:44 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/geoff/kexec-tools.gitfor-merge-arm64-v6for you to fetch changes up to
a9f1fafd7c248d33768177438742b90bc4338202:arm64: Add support for binary image files (2016-09-21 11:04:03 -0700)
----------------------------------------------------------------
Geoff Levand (2):
kexec: Add common device tree routines
arm64: Add arm64 kexec supportPratyush Anand (1):
arm64: Add support for binary image filesconfigure.ac | 3 + kexec/Makefile | 5 + kexec/arch/arm64/Makefile | 40 +++ kexec/arch/arm64/crashdump-arm64.c | 21 ++ kexec/arch/arm64/crashdump-arm64.h | 12 + kexec/arch/arm64/image-header.h | 146 ++++++++ kexec/arch/arm64/include/arch/options.h | 39 ++ kexec/arch/arm64/kexec-arm64.c | 615 ++++++++++++++++++++++++++++++++ kexec/arch/arm64/kexec-arm64.h | 71 ++++ kexec/arch/arm64/kexec-elf-arm64.c | 146 ++++++++ kexec/arch/arm64/kexec-image-arm64.c | 80 +++++ kexec/dt-ops.c | 145 ++++++++ kexec/dt-ops.h | 13 + kexec/kexec-syscall.h | 8 +- purgatory/Makefile | 1 + purgatory/arch/arm64/Makefile | 18 + purgatory/arch/arm64/entry.S | 51 +++ purgatory/arch/arm64/purgatory-arm64.c | 19 + 18 files changed, 1431 insertions(+), 2 deletions(-) create mode 100644 kexec/arch/arm64/Makefile create mode 100644 kexec/arch/arm64/crashdump-arm64.c create mode 100644 kexec/arch/arm64/crashdump-arm64.h create mode 100644 kexec/arch/arm64/image-header.h create mode 100644 kexec/arch/arm64/include/arch/options.h create mode 100644 kexec/arch/arm64/kexec-arm64.c create mode 100644 kexec/arch/arm64/kexec-arm64.h create mode 100644 kexec/arch/arm64/kexec-elf-arm64.c create mode 100644 kexec/arch/arm64/kexec-image-arm64.c create mode 100644 kexec/dt-ops.c create mode 100644 kexec/dt-ops.h create mode 100644 purgatory/arch/arm64/Makefile create mode 100644 purgatory/arch/arm64/entry.S create mode 100644 purgatory/arch/arm64/purgatory-arm64.cSignature · 1 line
2.7.4
Quoted 2 lines · Geoff Levand
This series adds the core support for kexec re-boot on ARM64.
I also tested on seattle.
Quoted 89 lines
Linux kernel support for ARM64 kexec reboot has been merged in v4.8-rc1 with the expectation that it will be included in the v4.8 stable kernel release.
For ARM64 kdump support see Takahiro's latest kdump patches [1].
[1] http://lists.infradead.org/pipermail/kexec
Changes for v6 (Sep , 2016, 2m):
o Remove the
get_memory_ranges_dt()routine.
o Rename dtb_[12] to dtb_{proc,sys,user}.Changes for v5 (Sep 1, 2016, 2m):
o Add common routine
arm64_locate_kernel_segment().Changes for v4 (Aug 18, 2016, 1m):
o Fix some error return values and error messages.
o Add enumarm64_header_page_size.
o Renamepage_offsettovp_offset.Changes for v3 (Aug 10, 2016, 1m):
o Rebase to 2.0.13.
o Add support for flag bits 1-3 to arm64image-header.h.
o FixOPT_ARCH_MAXvalue.
o Usefdt_pack()indtb_set_property().
o Remove patch ("kexec: (bugfix) calc correct end address of memory ranges in device tree").Changes for v2 (July 26, 2016, 0m):
o Inline some small routines.
o Reformat some dbgprintf messages.
o Removedebug_brkfromentry.S
o Change arm64_image_header.flags touint64_t.
o Look in iomem then dt for mem info.
o Removecheck_cpu_nodes.
o Remove purgatory printing.First submission v1 (July 20, 2016).
-Geoff
The following changes since commit
67488beb0a6ee8ad2c0b05f721a9e00041fab93a:kexec-tools 2.0.13 (2016-08-08 12:26:44 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/geoff/kexec-tools.gitfor-merge-arm64-v6for you to fetch changes up to
a9f1fafd7c248d33768177438742b90bc4338202:arm64: Add support for binary image files (2016-09-21 11:04:03 -0700)
----------------------------------------------------------------
Geoff Levand (2):
kexec: Add common device tree routines
arm64: Add arm64 kexec supportPratyush Anand (1):
arm64: Add support for binary image filesconfigure.ac | 3 + kexec/Makefile | 5 + kexec/arch/arm64/Makefile | 40 +++ kexec/arch/arm64/crashdump-arm64.c | 21 ++ kexec/arch/arm64/crashdump-arm64.h | 12 + kexec/arch/arm64/image-header.h | 146 ++++++++ kexec/arch/arm64/include/arch/options.h | 39 ++ kexec/arch/arm64/kexec-arm64.c | 615 ++++++++++++++++++++++++++++++++ kexec/arch/arm64/kexec-arm64.h | 71 ++++ kexec/arch/arm64/kexec-elf-arm64.c | 146 ++++++++ kexec/arch/arm64/kexec-image-arm64.c | 80 +++++ kexec/dt-ops.c | 145 ++++++++ kexec/dt-ops.h | 13 + kexec/kexec-syscall.h | 8 +- purgatory/Makefile | 1 + purgatory/arch/arm64/Makefile | 18 + purgatory/arch/arm64/entry.S | 51 +++ purgatory/arch/arm64/purgatory-arm64.c | 19 + 18 files changed, 1431 insertions(+), 2 deletions(-) create mode 100644 kexec/arch/arm64/Makefile create mode 100644 kexec/arch/arm64/crashdump-arm64.c create mode 100644 kexec/arch/arm64/crashdump-arm64.h create mode 100644 kexec/arch/arm64/image-header.h create mode 100644 kexec/arch/arm64/include/arch/options.h create mode 100644 kexec/arch/arm64/kexec-arm64.c
Quoted 9 lines
create mode 100644 kexec/arch/arm64/kexec-arm64.h create mode 100644 kexec/arch/arm64/kexec-elf-arm64.c create mode 100644 kexec/arch/arm64/kexec-image-arm64.c create mode 100644 kexec/dt-ops.c create mode 100644 kexec/dt-ops.h create mode 100644 purgatory/arch/arm64/Makefile create mode 100644 purgatory/arch/arm64/entry.S create mode 100644 purgatory/arch/arm64/purgatory-arm64.c
_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec
Quoted 9 lines · Matthias Brugger
Quoted 2 lines · Geoff Levand
This series adds the core support for kexec re-boot on ARM64.
I also tested on seattle.
Tested-by Matthias Brugger <[email protected]>
Quoted 5 lines · Pratyush Anand
Hi Geoff,
Quoted 1 line · Geoff Levand
This series adds the core support for kexec re-boot on ARM64.
Quoted 7 lines
I tested this series with mustang and seattle and they work.
So you can use my "Tested-By: Pratyush Anand <[email protected]>".
Just one Nitpick: In patch 2/3
arm64_header_check_msb(),arm64_header_page_size()andarm64_header_placement()have been defined but they have not been used anywhere. So, may be they can be removed.
Thanks everyone, I have queued this up with the above tags.
Please consider a follow-up patch to remove the functions mentioned above.
FWIW I tested v5 of this patchset on Renesas Gen3 R-Car H3 and M3-W and it seems to work fine.
_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec