On Mon, Aug 25, 2025 at 12:50 AM Frieder Schrempf <frieder.schre...@kontron.de> wrote: > > 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/ >
Hi Frieder, Indeed it has - I missed that. Thanks, Tim