forked from pool/kexec-tools
59 lines
1.8 KiB
Diff
59 lines
1.8 KiB
Diff
|
From c504ff5d85aa035aed9f14f5ce96c5d959952dd9 Mon Sep 17 00:00:00 2001
|
||
|
From: Pratyush Anand <panand@redhat.com>
|
||
|
Date: Wed, 17 May 2017 14:51:50 +0900
|
||
|
Subject: [PATCH 44/45] arm64: kdump: Add support for binary image files
|
||
|
|
||
|
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>
|
||
|
Tested-by: David Woodhouse <dwmw@amazon.co.uk>
|
||
|
Tested-by: Pratyush Anand <panand@redhat.com>
|
||
|
Signed-off-by: Simon Horman <horms@verge.net.au>
|
||
|
---
|
||
|
kexec/arch/arm64/kexec-image-arm64.c | 13 +++++++++++++
|
||
|
1 file changed, 13 insertions(+)
|
||
|
|
||
|
diff --git a/kexec/arch/arm64/kexec-image-arm64.c b/kexec/arch/arm64/kexec-image-arm64.c
|
||
|
index e5f2a9befdb1..e1b1e54b149f 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);
|
||
|
|
||
|
--
|
||
|
2.13.0
|
||
|
|