Hi, Youling,
On Wed, Aug 20, 2025 at 1:57 PM Youling Tang <youling.tang@linux.dev> wrote:
>
> From: Youling Tang <tangyouling@kylinos.cn>
>
> This patchset implement kexec_file_load() support on LoongArch.
>
> This patch series enables us to load the LoongArch vmlinuz.efi(pez) or
> vmlinux.efi(pei) or vmlinux(elf) 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/
>
> Changelog:
> v2:
> * Merge some patches.
> * Add support for ELF format images.
> * Rename kexec_image.c to kexec_efi.c .
> * When KEXEC_FILE is enabled, RELOCATABLE is selected by default.
> * Some minor modifications.
>
> Youling Tang (5):
> LoongArch: Add struct loongarch_image_header for kernel image
> LoongArch: Add kexec_file support
> LoongArch/kexec_file: Support loading ELF binary file
I prefer to combine Patch-2 and Patch-3. :)
Huacai
> LoongArch/kexec_file: Add crash dump support
> LoongArch: Enable CONFIG_KEXEC_FILE
>
> arch/loongarch/Kconfig | 10 +
> arch/loongarch/configs/loongson3_defconfig | 1 +
> arch/loongarch/include/asm/image.h | 57 +++++
> arch/loongarch/include/asm/kexec.h | 13 ++
> arch/loongarch/kernel/Makefile | 1 +
> arch/loongarch/kernel/kexec_efi.c | 111 ++++++++++
> arch/loongarch/kernel/kexec_elf.c | 105 +++++++++
> arch/loongarch/kernel/machine_kexec.c | 33 ++-
> arch/loongarch/kernel/machine_kexec_file.c | 235 +++++++++++++++++++++
> 9 files changed, 555 insertions(+), 11 deletions(-)
> create mode 100644 arch/loongarch/include/asm/image.h
> create mode 100644 arch/loongarch/kernel/kexec_efi.c
> create mode 100644 arch/loongarch/kernel/kexec_elf.c
> create mode 100644 arch/loongarch/kernel/machine_kexec_file.c
>
> --
> 2.43.0
>