i.MX8M Mini Hangs at ATF when booting from USB

Marek Vasut marex at denx.de
Thu Feb 3 18:44:04 CET 2022

On 2/3/22 18:27, Adam Ford wrote:
> On Thu, Feb 3, 2022 at 11:23 AM Marek Vasut <marex at denx.de> wrote:
>> On 2/3/22 17:46, Tom Rini wrote:
>>> On Wed, Feb 02, 2022 at 12:48:06PM -0600, Adam Ford wrote:
>>>> On Wed, Feb 2, 2022 at 12:42 PM Tom Rini <trini at konsulko.com> wrote:
>>>>> On Wed, Feb 02, 2022 at 02:45:44PM -0300, Fabio Estevam wrote:
>>>>>> Hi Marcel,
>>>>>> [Adding Tom and Marek]
>>>>>> On Wed, Feb 2, 2022 at 2:40 PM Marcel Ziswiler
>>>>>> <marcel.ziswiler at toradex.com> wrote:
>>>>>>>> The blocker to getting non-dm-spl-usb support for IMX8M appears to be
>>>>>>>> the base addresses and instead of adding more of them to imx-regs.h we
>>>>>>>> need to get them from DT via of_platdata which nobody has had time to
>>>>>>>> dig into yet.
>>>>>>> I was also a little hesitant due to not using DM in SPL might no longer be accepted upstream. What is the
>>>>>>> stance on this?
>>>>>> My understanding is that there is no requirement to use DM in SPL.
>>>>> DM isn't required in SPL, no.  Are we running in to some size limit
>>>>> here?  I see SPL_DM being set in a number of imx8m* platforms is why I
>>>>> ask.
>>>> If we try to run SPL_DM_USB we run into serious space issues.  Some of
>>>> us are trying to boot over USB, but the only real way to do it appears
>>>> to be to not use DM_USB in SPL, but that requires adding some more
>>>> manual registers.
>>>> Ideally, we would use of_platdata, but if that's enabled, it requires
>>>> a bunch of drivers to be updated, and until that's done, all kinds of
>>>> stuff break.  I think Fabio tried to push a non-DM-USB method, but
>>>> there was some resistance.
>>> OK.  Yes, I would prefer that ideal situation but given the current
>>> backlog of imx changes, I understand the hesitation to add still more to
>>> the to be merged queue.
>> Stefano should be back soon.
>> That said, the hang in MX8M USB likely happens because USB block depends
>> on GPC driver to bring up its power domains, which does so by means of
>> SMC calls into ATF, which at SPL time is unavailable, hence the hang.
> I did some experiments on that, but the USB enumerates, downloads the
> image, parses the image, but hangs on the jump.  From what I could
> tell, the boot ROM appeared to enable enough of the USB to facilitate
> the USB transfer.

And this works when you load SPL via USB or does it also work when you 
load SPL from e.g. SD card ? I bet it is only the former.

> If I did the same experiment without SPL_DM_USB,
> the load was successful.  I am guessing the memory is too tight with
> SPL_DM_USB, because I am not seeing a significant difference in
> behavior other than code and memory footprint with and without DM_USB.
>> So someone would have to rewrite the MX8M GPC driver to NOT do SMC
>> calls, but rather control the GPC registers directly, like it is done in
>> Linux.
> This has been in my radar, since I think I understand it fairly well,
> but I haven't had the time to tackle it.

It's not going to implement itself.


More information about the U-Boot mailing list