[PATCHv7 3/5] kexec/zboot: Add arch independent zboot support

Simon Horman horms at kernel.org
Mon Aug 7 06:22:59 PDT 2023


On Thu, Aug 03, 2023 at 10:41:50AM +0800, Pingfan Liu wrote:
> From: Jeremy Linton <jeremy.linton at arm.com>
> 
> The linux kernel CONFIG_ZBOOT option creates
> self decompressing PE kernel images. So this means
> that kexec should have a generic understanding of
> the format which may be used by multiple arches.
> 
> So lets add an arch independent validation
> and decompression routine.
> 
> Signed-off-by: Jeremy Linton <jeremy.linton at arm.com>
> [Modified by Pingfan to export kernel fd]
> Signed-off-by: Pingfan Liu <piliu at redhat.com>
> To: kexec at lists.infradead.org
> Cc: horms at verge.net.au
> Cc: ardb at kernel.org
> Cc: jeremy.linton at arm.com
> ---
>  include/Makefile         |   1 +
>  include/kexec-pe-zboot.h |  15 +++++
>  kexec/Makefile           |   1 +
>  kexec/kexec-pe-zboot.c   | 131 +++++++++++++++++++++++++++++++++++++++
>  4 files changed, 148 insertions(+)
>  create mode 100644 include/kexec-pe-zboot.h
>  create mode 100644 kexec/kexec-pe-zboot.c
> 
> diff --git a/include/Makefile b/include/Makefile
> index 621ce9f..cd88a26 100644
> --- a/include/Makefile
> +++ b/include/Makefile
> @@ -1,6 +1,7 @@
>  dist += include/Makefile		\
>  	include/config.h		\
>  	include/config.h.in		\
> +	include/kexec-pe-zboot.h	\
>  	include/kexec-uImage.h		\
>  	include/x86/x86-linux.h		\
>  	include/x86/mb_info.h		\
> diff --git a/include/kexec-pe-zboot.h b/include/kexec-pe-zboot.h
> new file mode 100644
> index 0000000..c588ca2
> --- /dev/null
> +++ b/include/kexec-pe-zboot.h
> @@ -0,0 +1,15 @@
> +#ifndef __KEXEC_PE_ZBOOT_H__
> +#define __KEXEC_PE_ZBOOT_H__
> +
> +/* see drivers/firmware/efi/libstub/zboot-header.S */
> +struct linux_pe_zboot_header {
> +	uint32_t mz_magic;
> +        uint32_t image_type;
> +        uint32_t payload_offset;
> +        uint32_t payload_size;
> +        uint32_t reserved[2];
> +        uint32_t compress_type;
> +};

nit: the above should consistently use tabs for indentation.
     I can try and fix this when applying if there is no v8.



More information about the kexec mailing list