aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-kernel/kexec/kexec-tools/0008-arm64-kdump-add-DT-properties-to-crash-dump-kernel-s.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-kernel/kexec/kexec-tools/0008-arm64-kdump-add-DT-properties-to-crash-dump-kernel-s.patch')
-rw-r--r--meta/recipes-kernel/kexec/kexec-tools/0008-arm64-kdump-add-DT-properties-to-crash-dump-kernel-s.patch150
1 files changed, 0 insertions, 150 deletions
diff --git a/meta/recipes-kernel/kexec/kexec-tools/0008-arm64-kdump-add-DT-properties-to-crash-dump-kernel-s.patch b/meta/recipes-kernel/kexec/kexec-tools/0008-arm64-kdump-add-DT-properties-to-crash-dump-kernel-s.patch
deleted file mode 100644
index 31c3d8510a..0000000000
--- a/meta/recipes-kernel/kexec/kexec-tools/0008-arm64-kdump-add-DT-properties-to-crash-dump-kernel-s.patch
+++ /dev/null
@@ -1,150 +0,0 @@
-From 23bf7ac189cc3b87ceb9d1d3b69b5c4815354add Mon Sep 17 00:00:00 2001
-From: AKASHI Takahiro <takahiro.akashi@linaro.org>
-Date: Wed, 27 Jan 2016 13:38:39 +0900
-Subject: [PATCH 8/9] arm64: kdump: add DT properties to crash dump kernel's
- dtb
-
-We pass the following properties to crash dump kernel:
-linux,elfcorehdr: elf core header segment,
- same as "elfcorehdr=" kernel parameter on other archs
-linux,usable-memory-range: usable memory reserved for crash dump kernel
-
-Upstream-Status: Backport [https://git.linaro.org/people/takahiro.akashi/kexec-tools.git]
-
-Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
-Signed-off-by: He Zhe <zhe.he@windriver.com>
----
- kexec/arch/arm64/kexec-arm64.c | 76 +++++++++++++++++++++++++++++++++++---
- kexec/arch/arm64/kexec-elf-arm64.c | 5 ---
- 2 files changed, 71 insertions(+), 10 deletions(-)
-
-diff --git a/kexec/arch/arm64/kexec-arm64.c b/kexec/arch/arm64/kexec-arm64.c
-index 78a0035..a8fb64f 100644
---- a/kexec/arch/arm64/kexec-arm64.c
-+++ b/kexec/arch/arm64/kexec-arm64.c
-@@ -128,9 +128,6 @@ int arch_process_options(int argc, char **argv)
- case OPT_INITRD:
- arm64_opts.initrd = optarg;
- break;
-- case OPT_PANIC:
-- die("load-panic (-p) not supported");
-- break;
- default:
- break; /* Ignore core and unknown options. */
- }
-@@ -285,8 +282,12 @@ on_success:
- * setup_2nd_dtb - Setup the 2nd stage kernel's dtb.
- */
-
--static int setup_2nd_dtb(struct dtb *dtb, char *command_line)
-+static int setup_2nd_dtb(struct dtb *dtb, char *command_line, int on_crash)
- {
-+ char *new_buf;
-+ int new_size;
-+ int nodeoffset;
-+ uint64_t range[2];
- int result;
-
- result = fdt_check_header(dtb->buf);
-@@ -298,8 +299,72 @@ static int setup_2nd_dtb(struct dtb *dtb, char *command_line)
-
- result = set_bootargs(dtb, command_line);
-
-+ /* remove those anyway */
-+ nodeoffset = fdt_path_offset(dtb->buf, "/chosen");
-+ fdt_delprop(dtb->buf, nodeoffset, "linux,crashkernel-base");
-+ fdt_delprop(dtb->buf, nodeoffset, "linux,crashkernel-size");
-+
-+ if (on_crash) {
-+ nodeoffset = fdt_path_offset(dtb->buf, "/chosen");
-+ fdt_delprop(dtb->buf, nodeoffset, "linux,elfcorehdr");
-+ fdt_delprop(dtb->buf, nodeoffset, "linux,usable-memory-range");
-+ new_size = fdt_totalsize(dtb->buf)
-+ + 2 * (sizeof(struct fdt_property)
-+ + FDT_TAGALIGN(sizeof(range)))
-+ + strlen("linux,elfcorehdr") + 1
-+ + strlen("linux,usable-memory-range") + 1;
-+
-+ new_buf = xmalloc(new_size);
-+ result = fdt_open_into(dtb->buf, new_buf, new_size);
-+ if (result) {
-+ dbgprintf("%s: fdt_open_into failed: %s\n", __func__,
-+ fdt_strerror(result));
-+ result = -ENOSPC;
-+ goto on_error;
-+ }
-+
-+ range[0] = cpu_to_be64(elfcorehdr_mem.start);
-+ range[1] = cpu_to_be64(elfcorehdr_mem.end
-+ - elfcorehdr_mem.start + 1);
-+ nodeoffset = fdt_path_offset(new_buf, "/chosen");
-+ result = fdt_setprop(new_buf, nodeoffset, "linux,elfcorehdr",
-+ (void *)range, sizeof(range));
-+ if (result) {
-+ dbgprintf("%s: fdt_setprop failed: %s\n", __func__,
-+ fdt_strerror(result));
-+ result = -EINVAL;
-+ goto on_error;
-+ }
-+
-+ range[0] = cpu_to_be64(crash_reserved_mem.start);
-+ range[1] = cpu_to_be64(crash_reserved_mem.end
-+ - crash_reserved_mem.start + 1);
-+ nodeoffset = fdt_path_offset(new_buf, "/chosen");
-+ result = fdt_setprop(new_buf, nodeoffset,
-+ "linux,usable-memory-range",
-+ (void *)range, sizeof(range));
-+ if (result) {
-+ dbgprintf("%s: fdt_setprop failed: %s\n", __func__,
-+ fdt_strerror(result));
-+ result = -EINVAL;
-+ goto on_error;
-+ }
-+
-+ fdt_pack(new_buf);
-+ dtb->buf = new_buf;
-+ dtb->size = fdt_totalsize(new_buf);
-+ }
-+
- dump_reservemap(dtb);
-
-+
-+ return result;
-+
-+on_error:
-+ fprintf(stderr, "kexec: %s failed.\n", __func__);
-+ if (new_buf)
-+ free(new_buf);
-+
- return result;
- }
-
-@@ -366,7 +431,8 @@ int arm64_load_other_segments(struct kexec_info *info,
- }
- }
-
-- result = setup_2nd_dtb(&dtb, command_line);
-+ result = setup_2nd_dtb(&dtb, command_line,
-+ info->kexec_flags & KEXEC_ON_CRASH);
-
- if (result)
- return -EFAILED;
-diff --git a/kexec/arch/arm64/kexec-elf-arm64.c b/kexec/arch/arm64/kexec-elf-arm64.c
-index 842ce21..b17a31a 100644
---- a/kexec/arch/arm64/kexec-elf-arm64.c
-+++ b/kexec/arch/arm64/kexec-elf-arm64.c
-@@ -47,11 +47,6 @@ int elf_arm64_load(int argc, char **argv, const char *kernel_buf,
- int result;
- int i;
-
-- if (info->kexec_flags & KEXEC_ON_CRASH) {
-- fprintf(stderr, "kexec: kdump not yet supported on arm64\n");
-- return -EFAILED;
-- }
--
- result = build_elf_exec_info(kernel_buf, kernel_size, &ehdr, 0);
-
- if (result < 0) {
---
-1.9.1
-