Hello Bob Perry,
For L2 Cache partitioning, please refer to sections "5.8.4.5 L2 cache partitioning" and "2.12.4 L2 cache partitioning registers" in https://www.nxp.com/docs/en/reference-manual/E6500RM.pdf.
CPC(L3 cache) cannot be programmed to be partitioned by way of cores/CPU(sources). You can only partition the CPC by way of transactions based on addresses usually using hypervisor.
A key aspect of partitioning a system is to partition the system's physical memory. To do this physical memory is divided into physical memory areas (or PMAs). PMAs are statically defined by the system architect and cannot be changed dynamically in a running system. The hypervisor itself is also assigned a PMA for its internal use.
A PMA is defined with the following properties:
True physical address (must be size aligned)
Size (must be a power of 2)
CPC partitioning—specifies one or more ways of the Corenet platform cache (CPC) to be allocated and dedicated to this PMA.
Each PMA corresponds to a CoreNet coherence domain (CSDID). Coherence is implied—if a PMA is only referenced by one partition, the PMA is private to that partition and only CPUs within that partition are snooped to maintain cache coherency. For shared PMAs, all partitions that reference the PMA will have their CPUs listed in the CSDID for the PMA.
Have a great day,
TIC
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------