[U-Boot] mvebu spl: translation offset set too late?

Pierre Bourdon delroth at gmail.com
Wed Apr 10 20:19:15 UTC 2019


[cc: mvebu maintainers]

I've spent the best part of today trying to get upstream u-boot
running on my Armada 835 device (Turris Omnia). I think in the process
I might have uncovered a bug with SPL u-boot on these SoC.

mvebu is "special" in having a different memory map in SPL vs. "main"
mode. The arch SPL initialization code calls dm_set_translation_offset
to tell the DM subsystem how to translate addresses. However, this is
called *after* spl_init, which triggers a DM scan. So at the point
where the DM subsystem is aware of the translation offset, drivers
might have already cached addresses (priv->base) or even performed
initialization (the TWSI i2c module does some configuration at bind
time).

This seems broken but I'm not experienced enough with u-boot to
suggest a good fix here. Could someone confirm that at least I'm not
completely off base with this analysis?

Thanks,
Best,

-- 
Pierre Bourdon <delroth at gmail.com>
Software Engineer @ Zürich, Switzerland
https://delroth.net/


More information about the U-Boot mailing list