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.