
On 4/11/22 18:26, Ovidiu Panait wrote:
Migrate XILINX_DCACHE_BYTE_SIZE to Kconfig and rename it to XILINX_MICROBLAZE0_DEFAULT_CACHE_SIZE. Use it as the default size for both instruction/data caches and get rid of the hardcoded value in icache_disable().
Microblaze can have different icache and dcache sizes that's why there is a need to use two symbols to cover it. cache ranges are from 64B to 64KB.
I think the best way how to handle this is save icache/dcache sizes to one static variable/structure because actually these Kconfig symbols should be really only use as default value. What Xilinx tools is doing that it generates XILINX_DCACHE_BYTE_SIZE based on current design and overwrites that macro. That's why there are ifndef around it.
#ifndef XILINX_DCACHE_BYTE_SIZE #define XILINX_DCACHE_BYTE_SIZE 32768 #endif
icache handling is not that sensitive because it is not working with data and self modifying code is not used.
It means default value for dcache and icache setup to 32kB should be fine.
And saving it to static variable can open good way to overwrite this structure based on information from DT or based on values from PVRs.
Thanks, Michal