We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 42735

13.1 EDK - Must microblaze_enable_dcache() be called when C_DCACHE_ALWAYS_USED is set to 1?


When the MicroBlaze setting "C_DCACHE_ALWAYS_USED" or "C_ICACHE_ALWAYS_USED" is set to 1, is it necessary to enable cache in software?


It is necessary to enable cache in software even if CACHE_ALWAYS_USED is set 1.

"C_DCACHE_ALWAYS_USED" or "C_ICACHE_ALWAYS_USED" = 1 meansthe cached memory range is always accessed via the CacheLink, but data may not be cached. Otherwise, AXI or PLB will be used when Cache is not enabled in software(that is, MSR[DCE]=0 or MSR[ICE]=0) or memory locations outside the cacheable range.

microblaze_enable_icache() andmicroblaze_enable_dcache() set MSR[DCE] = 1 and MSR[ICE] = 1. These functions enable the cache function.
C_DCACHE_ALWAYS_USED or C_ICACHE_ALWAYS_USED set PVR4[IAU] or PVR5[DAU] bits. These settings select the data path.
AR# 42735
Date Created 06/28/2011
Last Updated 12/15/2012
Status Active
Type General Article
  • EDK - 13.1