On Tue, Aug 5, 2025 at 11:53 PM Frieder Schrempf
<frieder.schre...@kontron.de> wrote:
>
> Am 31.07.25 um 20:47 schrieb João Paulo Gonçalves:
> > Hello,
> >
> > On Mon, Jul 28, 2025 at 11:25:04AM -0300, Fabio Estevam wrote:
> >> What confuses me about João's patch is that it was not tested against
> >> the mainline U-Boot.
> >
> > In the end, the code is nearly identical between the downstream and
> > mainline U-Boot.
> >
> > On Wed, Jul 30, 2025 at 08:35:40AM +0200, Frieder Schrempf wrote:
> >> I have the below patch in our downstream fork to fix the issue mentioned
> >> here for i.MX93. It is derived from Fabio's patch [1]. I'm not sure if
> >> it's correct, though.
> >
> > We are also doing something similar on our branch.
> >
> > I have two proposals. My goal is to prevent the board from hanging when
> > booting from USB if CONFIG_ENV_IS_NOWHERE=n (since the current code
> > assumes it is always enabled) and/or if the environment is defined
> > elsewhere:
> >
> > 1) Imply CONFIG_ENV_IS_NOWHERE for i.MX9 (as mentioned earlier), to make
> > it clear that it is required by ARCH.
> >
> > or
> >
> > 2) Doing something similar to what Frieder showed for USB boot (which is
> > almost the same on i.MX8MM/i.MX8MP), but preserving the current
> > behavior:
> >
> > diff --git a/arch/arm/mach-imx/imx9/scmi/soc.c 
> > b/arch/arm/mach-imx/imx9/scmi/soc.c
> > index 13f13ca7d105..f973652d0cbe 100644
> > --- a/arch/arm/mach-imx/imx9/scmi/soc.c
> > +++ b/arch/arm/mach-imx/imx9/scmi/soc.c
> > @@ -635,7 +635,8 @@ enum env_location env_get_location(enum env_operation 
> > op, int prio)
> >
> >         switch (dev) {
> >         case QSPI_BOOT:
> > -               env_loc = ENVL_SPI_FLASH;
> > +               if (IS_ENABLED(CONFIG_ENV_IS_IN_SPI_FLASH))
> > +                       env_loc = ENVL_SPI_FLASH;
> >                 break;
> >         case SD1_BOOT:
> >         case SD2_BOOT:
> > @@ -643,10 +644,16 @@ enum env_location env_get_location(enum env_operation 
> > op, int prio)
> >         case MMC1_BOOT:
> >         case MMC2_BOOT:
> >         case MMC3_BOOT:
> > -               env_loc =  ENVL_MMC;
> > +               if (IS_ENABLED(CONFIG_ENV_IS_IN_MMC))
> > +                       env_loc =  ENVL_MMC;
> >                 break;
> >         default:
> > -               env_loc = ENVL_NOWHERE;
> > +               if (IS_ENABLED(CONFIG_ENV_IS_NOWHERE))
> > +                       env_loc = ENVL_NOWHERE;
> > +               else if (IS_ENABLED(CONFIG_ENV_IS_IN_SPI_FLASH))
> > +                       env_loc = ENVL_SPI_FLASH;
> > +               else if (IS_ENABLED(CONFIG_ENV_IS_IN_MMC))
> > +                       env_loc = ENVL_MMC;
> >                 break;
> >         }
> >
> > With this patch, I believe Peng's concerns are addressed, and it also
> > works for our use case.
> >
> > What do you think?
>
> On first glance, this looks good to me. If possible, can you please also
> send a patch for i.MX93 (arch/arm/mach-imx/imx9/soc.c) to align the
> behavior of both platforms?
>
> Thanks!
>

Hi João,

This does resolve an issue I encountered as well on the imx95 while
booting via USB2 SDP.

Can you submit a formal patch?

Best Regards,

Tim

Reply via email to