MSMC implements debug hardware to allow software to query the state of the SRAM snoop filter and L3 cache tag/snoop filter. Software can query the tag structures using the MSMC_DBGTAGCTL and MSMC_DBGTAGVIEW registers in the following sequence:
- Write the desired tag or snoop filter information to the MSMC_DBGTAGCTL register and wait for status return
- Read the MSMC_DBGTAGVIEW register to collect the values populated from step 1
The write in step 1 triggers population of the MSMC_DBGTAGVIEW register with the appropriate values from the tag or snoop filter memory. The following are important notes about this feature:
- Writing invalid values into the MSMC_DBGTAGCTL register results in undefined values in the MSMC_DBGTAGVIEW register.
- All writes to MSMC_DBGTAGCTL triggers re-population of MSMC_DBGTAGVIEW, regardless of whether MSMC_DBGTAGVIEW has been read since the last write to MSMC_DBGTAGCTL
- This feature is intended for debug use when the system is halted or quiet. If software writes MSMC_DBGTAGCTL during active operation MSMC will find an empty cycle on the tag/snoop filter memory to read the contents and return to MSMC_DBGTAGVIEW. However, if there are accesses in flight which operate on the desired tag or snoop filter block the contents of MSMC_DBGTAGVIEW will reflect whatever was in the memory at the time of read.
- Security considerations for cache tag view must be comprehended in the firewalls present before all MSMC request interfaces. MSMC does not perform additional security checks.