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. This series introduce a new image probe interface probe2(), which returns three factors: kernel buffer, kernel size and kernel fd through a struct parsed_info. -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 ease the review, a branch is accessable at https://github.com/pfliu/kexec-tools.git branch zbootV5 To: kexec@xxxxxxxxxxxxxxxxxxx Cc: horms@xxxxxxxxxxxx Cc: ardb@xxxxxxxxxx Cc: jeremy.linton@xxxxxxx --- v4 -> v5: Amend label 'error' to 'err' in [4/8] v3 -> v4: Give up the method to change the image probe method prototype system-wide, instead, introducing a probe2() for the affected arch Jeremy Linton (4): arm64: Fix some issues with zImage _probe() kexec/zboot: Add arch independent zboot support arm64: Add ZBOOT PE containing compressed image support arm64: Hook up the ZBOOT support as vmlinuz Pingfan Liu (4): kexec: Isolate probe method kexec: Introduce a new image probe method 'probe2' arm64: Transfer from probe() to probe2() kexec: Drop condition macro for aarch64 include/kexec-pe-zboot.h | 15 +++ kexec/Makefile | 1 + kexec/arch/arm64/Makefile | 3 +- kexec/arch/arm64/image-header.h | 1 + kexec/arch/arm64/kexec-arm64.c | 10 +- kexec/arch/arm64/kexec-arm64.h | 11 +- kexec/arch/arm64/kexec-elf-arm64.c | 7 +- kexec/arch/arm64/kexec-image-arm64.c | 16 ++- kexec/arch/arm64/kexec-uImage-arm64.c | 15 ++- kexec/arch/arm64/kexec-vmlinuz-arm64.c | 102 +++++++++++++++++++ kexec/arch/arm64/kexec-zImage-arm64.c | 41 ++------ kexec/kexec-pe-zboot.c | 133 +++++++++++++++++++++++++ kexec/kexec.c | 86 ++++++++++------ kexec/kexec.h | 9 ++ 14 files changed, 367 insertions(+), 83 deletions(-) create mode 100644 include/kexec-pe-zboot.h create mode 100644 kexec/arch/arm64/kexec-vmlinuz-arm64.c create mode 100644 kexec/kexec-pe-zboot.c -- 2.31.1 _______________________________________________ kexec mailing list kexec@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/kexec