
In message EGEGIJHKDKJGAJMGIDPNOEPICKAA.jwalden@digitalatlantic.com you wrote:
Thanks for the response. I think my problem may be the base uboot address. The address is 0x3fcf000. The mask is 3fff. If my uboot started on a nice 16 bit address then the result would be 0(3fc0000 & 3fff) but I was getting 0xf000(3fcf000 & 3fff). So I think that the fix is to move uboot down to 0x3fc0000 or 0x3fc8000.
I have warned often enough NOT to try to start U-Boot from RAM unless you know _EXACTLY_ what you are doing.
You tried, and you failed. You kind of got what you deserved ;-)
Put U-Boot in flash, and start it from the reset entry point like it was designed for, and everything will be fine.
Actually I have to admit that I don't remember why the target address was computed using "& 3fff" instead of a hard-wired 0x100. I don't even remember where I got this code fragment from.
A similar assumption is buried in the code relocation stuff - see llandre's problem when setting CFG_MONITOR_BASE to a value that was not a multiple of 16 k.
We probably should get rid of this ASAP.
Wolfgang Denk