[PATCH] mkimage: add register initialization file support to zynqmpbif

Michal Simek michal.simek at amd.com
Mon Sep 29 08:14:19 CEST 2025



On 9/16/25 23:56, Erich E. Hoover wrote:
> 
> The ZynqMP Boot Image Format allows specifying the register
> initialization file with the "[init]" attribute.  Since this
> feature is already supported by the "zynqmpimage" backend, this
> patch implements a binding to that existing support.
> 
> Signed-off-by: Erich E. Hoover <erich.e.hoover at gmail.com>
> ---
>   tools/zynqmpbif.c   | 16 ++++++++++++++--
>   tools/zynqmpimage.c |  4 ++--
>   tools/zynqmpimage.h |  2 ++
>   3 files changed, 18 insertions(+), 4 deletions(-)
> 
> diff --git a/tools/zynqmpbif.c b/tools/zynqmpbif.c
> index 82ce0ac1a52..546b9e4fd9d 100644
> --- a/tools/zynqmpbif.c
> +++ b/tools/zynqmpbif.c
> @@ -191,6 +191,7 @@ static char *parse_partition_owner(char *line,
> struct bif_entry *bf)
>   }
> 
>   static const struct bif_flags bif_flags[] = {
> +    { "init", BIF_FLAG_INIT },
>       { "fsbl_config", BIF_FLAG_FSBL_CONFIG },
>       { "trustzone", BIF_FLAG_TZ },
>       { "pmufw_image", BIF_FLAG_PMUFW_IMAGE },
> @@ -279,7 +280,7 @@ static int bif_add_blob(const void *data, size_t
> len, size_t *offset)
>       return 0;
>   }
> 
> -static int bif_init(void)
> +static int bif_initialize(void)
>   {
>       struct zynqmp_header header = { { 0 } };
>       int r;
> @@ -316,6 +317,15 @@ static int bif_add_pmufw(struct bif_entry *bf,
> const char *data, size_t len)
>       return 0;
>   }
> 
> +static int bif_init(struct bif_entry *init)
> +{
> +    /* User can pass in text file with init list */
> +    if (strlen(init->filename))
> +        zynqmpimage_parse_initparams(bif_output.header, init->filename);
> +
> +    return 0;
> +}
> +
>   static int bif_add_part(struct bif_entry *bf, const char *data, size_t len)
>   {
>       size_t parthdr_offset = 0;
> @@ -340,6 +350,8 @@ static int bif_add_part(struct bif_entry *bf,
> const char *data, size_t len)
> 
>       if (bf->flags & (1ULL << BIF_FLAG_PMUFW_IMAGE))
>           return bif_add_pmufw(bf, data, len);
> +    else if (bf->flags & (1ULL << BIF_FLAG_INIT))
> +        return bif_init(bf);
> 
>       r = bif_add_blob(data, len, &bf->offset);
>       if (r)
> @@ -837,7 +849,7 @@ int zynqmpbif_copy_image(int outfd, struct
> image_tool_params *mparams)
>       uint32_t csum;
>       int bldr = -1;
> 
> -    bif_init();
> +    bif_initialize();
> 
>       /* Read .bif input file */
>       bif = read_full_file(mparams->datafile, NULL);
> diff --git a/tools/zynqmpimage.c b/tools/zynqmpimage.c
> index 4db9877127e..eb79c0696cc 100644
> --- a/tools/zynqmpimage.c
> +++ b/tools/zynqmpimage.c
> @@ -400,8 +400,8 @@ static void zynqmpimage_pmufw(struct zynqmp_header *zynqhdr,
>       fclose(fpmu);
>   }
> 
> -static void zynqmpimage_parse_initparams(struct zynqmp_header *zynqhdr,
> -    const char *filename)
> +void zynqmpimage_parse_initparams(struct zynqmp_header *zynqhdr,
> +                  const char *filename)
>   {
>       FILE *fp;
>       struct zynqmp_reginit reginit;
> diff --git a/tools/zynqmpimage.h b/tools/zynqmpimage.h
> index 7c47dc0763b..867fc5294a3 100644
> --- a/tools/zynqmpimage.h
> +++ b/tools/zynqmpimage.h
> @@ -142,6 +142,8 @@ struct zynqmp_header {
> 
>   void zynqmpimage_default_header(struct zynqmp_header *ptr);
>   void zynqmpimage_print_header(const void *ptr, struct
> image_tool_params *params);
> +void zynqmpimage_parse_initparams(struct zynqmp_header *zynqhdr,
> +                  const char *filename);
> 
>   static inline struct image_header_table *
>   zynqmp_get_iht(const struct zynqmp_header *zynqhdr)
> --
> 2.43.0


Not an issue with the patch but your patch is in utf-8 instead of plain text.
Please try
b4 am CAEU2+vrO5KGeoWkDZGOkmL408R6SHqdGhq315cGq+mbq3XBz4g at mail.gmail.com
git am 
./20250916_erich_e_hoover_mkimage_add_register_initialization_file_support_to_zynqmpbif.mbx
Applying: mkimage: add register initialization file support to zynqmpbif
error: corrupt patch at line 12
Patch failed at 0001 mkimage: add register initialization file support to zynqmpbif
hint: Use 'git am --show-current-patch=diff' to see the failed patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.

Please fix it and send v2.

Thanks,
Michal







More information about the U-Boot mailing list