Hi, I have a very similar question !i would like to separate my DDR memory into 2 sections :one, used by the processor only, this section have to be cacheable the other shared with external processes. this section mus be set as a device.i'm working on a Cortex A9 inside a Xilinx's Zynq. i could find a library with these functions :void Xil_DCacheInvalidateLine(unsigned int adr);void Xil_DCacheFlushLine(unsigned int adr);void Xil_DCacheStoreLine(unsigned int adr);void Xil_ICacheInvalidateLine(unsigned int adr);void Xil_L1DCacheEnable(void);void Xil_L1DCacheDisable(void);void Xil_L1DCacheInvalidate(void);void Xil_L1DCacheInvalidateLine(unsigned int adr);void Xil_L1DCacheInvalidateRange(unsigned int adr, unsigned len);void Xil_L1DCacheFlush(void);void Xil_L1DCacheFlushLine(unsigned int adr);void Xil_L1DCacheFlushRange(unsigned int adr, unsigned len);void Xil_L1DCacheStoreLine(unsigned int adr);void Xil_L1ICacheEnable(void);void Xil_L1ICacheDisable(void);void Xil_L1ICacheInvalidate(void);void Xil_L1ICacheInvalidateLine(unsigned int adr);void Xil_L1ICacheInvalidateRange(unsigned int adr, unsigned len);void Xil_L2CacheEnable(void);void Xil_L2CacheDisable(void);void Xil_L2CacheInvalidate(void);void Xil_L2CacheInvalidateLine(unsigned int adr);void Xil_L2CacheInvalidateRange(unsigned int adr, unsigned len);void Xil_L2CacheFlush(void);void Xil_L2CacheFlushLine(unsigned int adr);void Xil_L2CacheFlushRange(unsigned int adr, unsigned len);void Xil_L2CacheStoreLine(unsigned int adr);but it doesn't enable disable cache for only a section of the DDR.i saw there is a stuff called PL 310 who looks like the L2 Cache, and also some explanation about MMU and translation table but i could not finda simple example that i could modify to make the job. I hope someone could help !! regards. Thomas.