summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPratyush Anand <panand@redhat.com>2015-05-14 11:25:37 +0530
committerAKASHI Takahiro <takahiro.akashi@linaro.org>2017-05-22 09:09:37 +0900
commit6a448fadac853017e1adc627ce599a09df51a255 (patch)
tree3e9897ab5c2631da1ceae194a736b0d016734838
parent8446684cd8347f19079acb9fa95305f89c7705ee (diff)
downloadkexec-tools-6a448fadac853017e1adc627ce599a09df51a255.tar.gz
arm64: kdump: Add support for binary image filesarm64/kdump
This patch adds support to use binary image ie arch/arm64/boot/Image with kdump. Signed-off-by: Pratyush Anand <panand@redhat.com> [takahiro.akashi@linaro.org: a bit reworked] Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
-rw-r--r--kexec/arch/arm64/kexec-image-arm64.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/kexec/arch/arm64/kexec-image-arm64.c b/kexec/arch/arm64/kexec-image-arm64.c
index e5f2a9b..e1b1e54 100644
--- a/kexec/arch/arm64/kexec-image-arm64.c
+++ b/kexec/arch/arm64/kexec-image-arm64.c
@@ -4,7 +4,9 @@
#define _GNU_SOURCE
+#include "crashdump-arm64.h"
#include "kexec-arm64.h"
+#include "kexec-syscall.h"
#include <limits.h>
int image_arm64_probe(const char *kernel_buf, off_t kernel_size)
@@ -58,11 +60,22 @@ int image_arm64_load(int argc, char **argv, const char *kernel_buf,
dbgprintf("%s: PE format: %s\n", __func__,
(arm64_header_check_pe_sig(header) ? "yes" : "no"));
+ /* create and initialize elf core header segment */
+ if (info->kexec_flags & KEXEC_ON_CRASH) {
+ result = load_crashdump_segments(info);
+ if (result) {
+ dbgprintf("%s: Creating eflcorehdr failed.\n",
+ __func__);
+ goto exit;
+ }
+ }
+
/* load the kernel */
add_segment_phys_virt(info, kernel_buf, kernel_size,
kernel_segment + arm64_mem.text_offset,
arm64_mem.image_size, 0);
+ /* load additional data */
result = arm64_load_other_segments(info, kernel_segment
+ arm64_mem.text_offset);