As more complicated capsule kernel format occurs like zboot, where the compressed kernel is stored as a payload. The straight forward decompression can not meet the demand.
As the first step, on aarch64, reading in the kernel file in a probe method and decide how to unfold the content by the method itself. The new designed probe interface returns two factors: 1. the parsed kernel_buf should be returned so that it can be used by the image load method later. 2. the final fd passed to sys_kexec_file_load, since aarch64 kernel can only work with Image format, the outer payload should be stripped and a temporary file of Image should be created. To: kexec@lists.infradead.org Cc: ho...@verge.net.au Cc: a...@kernel.org Cc: jeremy.lin...@arm.com Pingfan Liu (5): kexec: Adding missing free for kernel_buf arm64/zImage: Remove unnecessary allocation for kernel_uncompressed_buf arm64: change the prototype of image probe function arm64: Scatter the reading of kernel file into each probe arm64: add support for zboot image kexec/arch/arm/kexec-arm.h | 4 +- kexec/arch/arm/kexec-uImage-arm.c | 2 +- kexec/arch/arm64/Makefile | 3 +- kexec/arch/arm64/kexec-arm64.c | 1 + kexec/arch/arm64/kexec-arm64.h | 13 +- kexec/arch/arm64/kexec-elf-arm64.c | 7 +- kexec/arch/arm64/kexec-image-arm64.c | 6 +- kexec/arch/arm64/kexec-uImage-arm64.c | 17 +- kexec/arch/arm64/kexec-zImage-arm64.c | 23 +-- kexec/arch/arm64/kexec-zboot-arm64.c | 261 ++++++++++++++++++++++++++ kexec/arch/arm64/zboot.h | 26 +++ kexec/kexec.c | 48 +++-- kexec/kexec.h | 8 + 13 files changed, 377 insertions(+), 42 deletions(-) create mode 100644 kexec/arch/arm64/kexec-zboot-arm64.c create mode 100644 kexec/arch/arm64/zboot.h -- 2.31.1 _______________________________________________ kexec mailing list kexec@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kexec