
On 1/21/07, sathesh babu sathesh_edara2003@yahoo.co.in wrote:
If I specify SDRAM start address as uncached area ( start with 0xa0000000), u-boot boots up and able to get the u-boot prompt.
It I try SDRAM start address as cached area ( Start with 0x80000000), the u-boot comes up to relocation function and hangs.
Should i call any cache invalidation ( doing this as part of cache initilization in the start.S) or flush functions before calling relocation().
I don't know too much about MIPS, but I did write relocation code for AVR32 not very long ago, and it runs with caches enabled the whole time.
I would imagine that you have to clean (and optionally invalidate) the dcache and invalidate the icache after copying the new code into place. The easiest way is probably to do a full flush (i.e. clean+invalidate) of the whole dcache and invalidate the whole icache just before jumping to the relocated entry address.
Haavard