Am 22.08.25 um 19:05 schrieb Tim Harvey:
> 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?

I think the patch you are looking for has already been sent:
https://patchwork.ozlabs.org/project/uboot/patch/20250811-v2-fix-imx9-usb-boot-v2-1-3d89974e2...@toradex.com/

Reply via email to