Hi Sascha, On 23-10-16, Marco Felsch wrote: > On 23-10-13, Sascha Hauer wrote: > > On Tue, Oct 10, 2023 at 04:33:09PM +0200, Marco Felsch wrote: > > > The upcoming commit fixes the HAB support for FlexSPI enabled barebox > > > images. This commit prepares the source to keep the diff smaller. > > > > > > For the upcoming fix we need a 2nd CSF command sequence which is > > > basically the same as the first except for the "Blocks = ...." command. > > > Therefore we need to handle the blocks command separately which is done > > > by this commit. At the moment there is no functional change. > > > > > > Signed-off-by: Marco Felsch <m.felsch@xxxxxxxxxxxxxx> > > > --- > > > scripts/imx/imx.c | 22 ++++++++++++++++++++-- > > > 1 file changed, 20 insertions(+), 2 deletions(-) > > > > > > diff --git a/scripts/imx/imx.c b/scripts/imx/imx.c > > > index 933019eba449..acc8424e547d 100644 > > > --- a/scripts/imx/imx.c > > > +++ b/scripts/imx/imx.c > > > @@ -296,6 +296,24 @@ static int hab_add_str(struct config_data *data, const char *str) > > > return 0; > > > } > > > > > > +static int hab_add_barebox_blocks(struct config_data *data, > > > + const char *csf_str, > > > + const char *flexspi_csf_str) > > > +{ > > > + int len = strlen(csf_str); > > > + > > > + if (data->csf_space < len) > > > + return -ENOMEM; > > > + > > > + strcat(data->csf, csf_str); > > > + if (flexspi_csf_str) > > > + strcat(data->flexspi_csf, flexspi_csf_str); > > > > Do we need a space check here as well? > > To be 100% accurate yes since the strings can have different lengths > albeit the difference would be <5 chars. I will rework that, thanks for > the review. While integrating your review feedback I noticed that my comment was wrong. Both strings using the same size limited format string: "Blocks = 0x%08x 0x%08x 0x%08x \"%s\"" with "%s" always point to data->outfile. So both stings do not differ and checking csf_str in enough. Regards, Marco > > Regards, > Marco > > > > > Sascha > > > > > + > > > + data->csf_space -= len; > > > + > > > + return 0; > > > +} > > > + > > > static int do_hab(struct config_data *data, int argc, char *argv[]) > > > { > > > int i, ret; > > > @@ -343,7 +361,7 @@ imx8m_get_offset_size(struct config_data *data, > > > > > > static int do_hab_blocks(struct config_data *data, int argc, char *argv[]) > > > { > > > - char *str; > > > + char *str, *flexspi_str = NULL; > > > int ret; > > > int i; > > > uint32_t signed_size = data->load_size; > > > @@ -378,7 +396,7 @@ static int do_hab_blocks(struct config_data *data, int argc, char *argv[]) > > > if (ret < 0) > > > return -ENOMEM; > > > > > > - ret = hab_add_str(data, str); > > > + ret = hab_add_barebox_blocks(data, str, flexspi_str); > > > free(str); > > > if (ret) > > > return ret; > > > -- > > > 2.39.2 > > > > > > > > > > > > > -- > > Pengutronix e.K. | | > > Steuerwalder Str. 21 | http://www.pengutronix.de/ | > > 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | > > Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | > > > >