[U-Boot] Memory test post relocation
Albert ARIBAUD
albert.u.boot at aribaud.net
Sat Nov 15 13:26:49 CET 2014
Hello DaveKucharczyk,
On Fri, 14 Nov 2014 13:20:09 -0700 (MST), DaveKucharczyk
<david.kucharczyk at gmail.com> wrote:
> Old u-boot was u-boot-2009.08.
>
> I guess the main source of frustration the last 3 weeks could be attributed
> to my lack of experience with u-boot and the fact that we were working with
> an old Freescale version of u-boot. Not to mention 5 years worth of changes
> between the versions. Most of the init functions seem to have moved in the
> boot sequence between u-boot-2009.08 and u-boot-2014.07. For instance,
> board_init was one of the first functions called before relocation to RAM,
> but now it called after relocation.
When porting from a 5-years old version, you should think less in terms
of function names and more in terms of functionality. Names can change,
but setting chip selects or base address registers remains the same.
It's a matter of porting the functionality.
> I have our board almost fully working with mainline u-boot-2014.07, but now
> I'm just trying to understand a few how's and why's before continuing.
>
> In u-boot-2009.08 we set CONFIG_SKIP_RELOCATE_UBOOT. When I run with DEBUG
> on I confirm that no relocation messages are reported, but this is due to
> the fact that u-boot-2009.08 did not have debug messages pertaining to
> relocation (that I can tell). I'm not sure how to confirm that relocation
> didn't actually happen and where it actually runs from on the mx53, but I
> can confirm that memory tests ran all the way to the end of RAM without
> issue. We did run the test from within dram_init though, which would be
> before relocation. Too bad that doesn't work in u-boot-2014.07.
Wolfgang and myself at least have already toched on the subject:
testing /all/ of the DDR is simply *not* possible, so whether your
tests can go all the way to the end of the DDR (or start from as low as
the DDR start) is not really relevant, since in any case, they will
necessarily miss some other part of the DDR address space.
If you *need* to test all of the DDR, then you *must* do it from code
running in non-DDR RAM, eiher IRAM or locked cache; and since these are
usually small, you probably have to do it from SPL, no U-Boot (which
makes sense, since you should not load U-Boot into DDR before having
tested it).
Amicalement,
--
Albert.
More information about the U-Boot
mailing list