
Hello DaveKucharczyk,
On Fri, 14 Nov 2014 13:20:09 -0700 (MST), DaveKucharczyk david.kucharczyk@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,