[U-Boot-Users] Running U-boot in cache area.

Haavard Skinnemoen hskinnemoen at gmail.com
Sun Jan 21 22:54:03 CET 2007


On 1/21/07, sathesh babu <sathesh_edara2003 at 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




More information about the U-Boot mailing list