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

Hi, I am tring to run U-boot on MIPS 24KE processor. I have done MIPS 24KE cache initilization and configured it for write through mode in the start.S file.
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.
Could you please tell me what could be the problem. Did i mss any thing?.
I see the same behaviour with write back mode also.
Should i call any cache invalidation ( doing this as part of cache initilization in the start.S) or flush functions before calling relocation().
I am enabling primary cache only and no secondary cache.
Thanks in advance.
Regards. Sathesh
--------------------------------- Heres a new way to find what you're looking for - Yahoo! Answers

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

sathesh babu wrote:
Hi, I am tring to run U-boot on MIPS 24KE processor. I have done MIPS 24KE cache initilization and configured it for write through mode in the start.S file.
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.
Could you please tell me what could be the problem. Did i mss any thing?.
I see the same behaviour with write back mode also.
Should i call any cache invalidation ( doing this as part of cache initilization in the start.S) or flush functions before calling relocation().
I am enabling primary cache only and no secondary cache.
Thanks in advance.
Regards. Sathesh
This may be the FAQ. Enabling caches typically enables bursting and disabling caches typically disables bursting (I'm not familiar with your MIPS - YMMV). This class of RAM problems tend to show up only when bursting. http://www.denx.de/wiki/view/DULG/UBootCrashAfterRelocation
gvb
participants (3)
-
Haavard Skinnemoen
-
Jerry Van Baren
-
sathesh babu