[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [microblaze-uclinux] Caches
Hi Jan,
Schunke Jan-Hendrik wrote:
> Does anbody have a running uclinux on microblaze with caches enabled? We
> have a hard time to get them running. The Kernel hangs (See boot log
> below):
I use them both (icache and dcache) all the time. The dcache had a bug
in EDK3.2 (to do with byte-wide fetches), however it all works well in 6.1.
> Calibrating delay loop... 24.83 BogoMIPS
What's your clock speed? My board (at 66mhz) reports about 33 bogoMIPs...
> The caches are enabled in the MHS like this:
>
> PARAMETER C_USE_ICACHE = 1
> PARAMETER C_CACHE_BYTE_SIZE = 65536
> PARAMETER C_USE_DCACHE = 1
> PARAMETER C_DCACHE_BYTE_SIZE = 65536
> PARAMETER C_ADDR_TAG_BITS = 9
> PARAMETER C_DCACHE_ADDR_TAG = 9
> Any suggestions about what to change are welcome.
I think I see the problem. The cache size in the kernel is hardcoded to
16K (see linux/include/asm-microblaze/pgalloc.h). You've increased the
physical cache size, but the kernel doesn't know that, and is failing to
properly invalidate the instruction cache after the kernel loads an
executable.
Fix should be easy - first make sure you are up to date with CVS, as I
made some changes last week that greatly improve performance, then edit
this file. Line 29, change the cache size from 0x8000 to 0x10000 and
you should be right. This parameter should move into xparameters.h -
I'll do it today and submit it to the CVS! :)
Regards,
John
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@itee.uq.edu.au
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/