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. 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 | >