From: Youling Tang <tangyoul...@kylinos.cn> This patchset implement kexec_file_load() support on LoongArch.
This patch series enables us to load the LoongArch vmlinuz.efi or vmlinux.efi by specifying its file decriptor, instead of user-filled buffer via kexec_load() syscall. To use kexec_file_load() system call, instead of kexec_load(), at kexec command, '-s' options must be specified. kexec-tools needs to apply the corresponding patches. These patches can be found in repository [1] and will be submitted to the kexec-tools community later. The basic usage of kexec_file is: 1) Load second kernel image: # kexec -s -l vmlinuz.efi --initrd=initrd.img --reuse-cmdline 2) Startup second kernel: # kexec -e For kdump: 1) Load capture kernel image: # kexec -s -p vmlinuz.efi --initrd=initrd.img --reuse-cmdline 2) Do something to crash, like: # echo c > /proc/sysrq-trigger Link: [1] https://github.com/tangyouling/kexec-tools/commits/main/ Youling Tang (6): LoongArch: Add struct loongarch_image_header for kernel image LoongArch: Add kexec_file support LoongArch/kexec_file: Add initrd loading LoongArch/kexec_file: Add crash dump support LoongArch/kexec_file: Add "mem" parameter to limit memory usage of kdump kernel LoongArch: Enable CONFIG_KEXEC_FILE arch/loongarch/Kconfig | 8 + arch/loongarch/configs/loongson3_defconfig | 1 + arch/loongarch/include/asm/image.h | 58 +++++ arch/loongarch/include/asm/kexec.h | 12 ++ arch/loongarch/kernel/Makefile | 1 + arch/loongarch/kernel/kexec_image.c | 112 ++++++++++ arch/loongarch/kernel/machine_kexec.c | 33 ++- arch/loongarch/kernel/machine_kexec_file.c | 234 +++++++++++++++++++++ 8 files changed, 448 insertions(+), 11 deletions(-) create mode 100644 arch/loongarch/include/asm/image.h create mode 100644 arch/loongarch/kernel/kexec_image.c create mode 100644 arch/loongarch/kernel/machine_kexec_file.c -- 2.34.1