OSDN Git Service

RISC-V: Add kdump support
authorNick Kossifidis <mick@ics.forth.gr>
Mon, 19 Apr 2021 00:55:38 +0000 (03:55 +0300)
committerPalmer Dabbelt <palmerdabbelt@google.com>
Mon, 26 Apr 2021 15:25:23 +0000 (08:25 -0700)
commite53d28180d4d0fd12b6d2bde49cb87aa775b6ba8
tree9d1a42513601c0eed0654b85a60f4818ae982e41
parentffe0e526126884cf036a6f724220f1f9b4094fd2
RISC-V: Add kdump support

This patch adds support for kdump, the kernel will reserve a
region for the crash kernel and jump there on panic. In order
for userspace tools (kexec-tools) to prepare the crash kernel
kexec image, we also need to expose some information on
/proc/iomem for the memory regions used by the kernel and for
the region reserved for crash kernel. Note that on userspace
the device tree is used to determine the system's memory
layout so the "System RAM" on /proc/iomem is ignored.

I tested this on riscv64 qemu and works as expected, you may
test it by triggering a crash through /proc/sysrq_trigger:

echo c > /proc/sysrq_trigger

Signed-off-by: Nick Kossifidis <mick@ics.forth.gr>
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
arch/riscv/include/asm/elf.h
arch/riscv/include/asm/kexec.h
arch/riscv/kernel/Makefile
arch/riscv/kernel/crash_save_regs.S [new file with mode: 0644]
arch/riscv/kernel/kexec_relocate.S
arch/riscv/kernel/machine_kexec.c
arch/riscv/kernel/setup.c
arch/riscv/mm/init.c