mkimage: allow zynqmp to use a register initialization file
Michal Simek
michal.simek at amd.com
Wed Jun 3 08:08:45 CEST 2026
please fill description here. Then I can look at changes below.
M
On 6/2/26 23:01, Erich E. Hoover wrote:
> 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)
More information about the U-Boot
mailing list