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.fel...@pengutronix.de>
> > ---
> >  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 |
> 

Reply via email to