Hello,
We have a vcu118-based SoC design with four ariane cores and we exchange data with an accelerator. To maintain cache coherence, we used the 0xA3 special access i/o address, as described on par. 5.4.3 of the microarchitecture manual.
All well when we had 256kiB L2, but when we changed to 512kiB, there are indications that coherency is not always working. I see in manual that the index selection field is 8-bit long and for 256kiB it was enough: 4 nodes x 4 ways x 2^8 idx x 64bytes/line = 256kiB. In 512kiB we normally require a 9-bit index and the hw team says that indeed that index selection path has become so. However, even i changed the code to assume index sel field is now [14:6], pushing the way sel field to [16:15], we still have the issue.
My question is, can 0xA3 support systems with >256kB L2? What happens with the index selection field then? Or there is a hardwired upper limit?
If it does, is there anything more we should have done to make it work with the larger cache? The hw team told me that increasing the cache is straightforward but could they be missing something regarding the 0xA3?
Thank you,
-- Ioannis