
Hello Dave,
On Thu, 13 Nov 2014 15:19:20 -0700 (MST), DaveKucharczyk david.kucharczyk@gmail.com wrote:
We have 2GB’s of RAM starting at 0x70000000 on our Freescale MX53 based board.
With old U-Boot we defined TEXT_BASE at the bottom of RAM at 0x70600000 and CONFIG_SKIP_RELOCATE_UBOOT, presumably so that we can run memory tests all the way to the top of RAM (this was brought over from the mx53loco board and precedes me). Why else would CONFIG_SKIP_RELOCATE_UBOOT be set?
CONFIG_SKIP_RELOCATE_UBOOT is not used in U-Boot nowadays [but is still defined by target snapper9260, which means either that target is utterly broken, or it does not actually need the option].
In new U-Boot we are not skipping relocation. I define CONFIG_SYS_TEXT_BASE = 0xeff89000 so that relocation offset is 0x00000000.
Baaad, bad. The first time you change something in your code, your relocation offset might change and this will make U-Boot crash and burn in interesting ways.
Just define CONFIG_SYS_TEXT_BASE to some low address and let relocation happen. You can find your actual relocation address in the global data structure.
I run with DEBUG on to doublecheck where things get setup…
(typically, builds with and without DEBUG will have differing relocation addresses)
I run a memory test from 0x70000000 to 0xefe88cb0, but I get a mismatch fail at 0xefe88aa4.
Shouldn’t I be able to run mem test all the way to the stack? I don’t see anything else being setup under the stack.
How do you know the lowest address used by your stack during your memory test?
Amicalement,