On Thu, Apr 3, 2014 at 4:40 AM, Helmut Raiger <helmut.rai...@hale.at> wrote: > Hi, > > for all the wrong reasons I have to load a second u-boot from a first one.
FYI, I can do this without problems on highbank. It's certainly useful for development. > I'm finally able to start it, but it only works if I do a > cleanup_before_linux(), > i.e. turn off interrupts and caches before the actual 'go'. Most platforms (at least on ARM) don't enable interrupts, so your problem is probably the cache. Loaded data (2nd u-boot) goes into the d-cache and needs to be flushed to be in sync with the i-cache on Harvard architecture processors. It works for me since the d-cache is not enabled in u-boot on highbank (and all the init code is safe to run twice). > For testing I patched the go command, but obviously this can't be > contributed as such. > > Anyone having a suggestion on how to do this? The go command should have a defined state with respect to caches as to how programs are entered. Loading code and jumping to it without any cache maintenance is simply broken. Fix the go command. If an architecture does not need a cache flush, then it should simply be a nop. Rob _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot