| |||
| Home > Programmer’s Model > Register 15: Test and Debug > Debug Control Register | |||
The Debug Control Register forces specific cache behavior required for debug. Table 2.11 shows the Debug Control Register bit assignments.
Table 2.11. Debug Control Register
| Bit | Field | Description |
|---|---|---|
| [31:2] | Reserved | SBZ/RAZ |
| [1] | DWB Disable Write-Back, force WT | 0 = Enable Write-Back behavior, default. 1 = Force Write-Through and read-allocate only behavior |
| [0] | DCL Disable cache linefill | 0 = Enable cache linefills, default 1 = Disable cache linefills |
Setting the DWB bit to 1 forces the cache controller to treat all cacheable accesses as though they are in a Write-Through read-allocate only region of memory. Setting the DWB bit overrides access attributes. If the cache contains dirty cache lines, these remain dirty while the DWB bit is set, unless they are written back because of a Write-Back eviction after a linefill, or because of an explicit clean operation. Lines that are clean are not marked as dirty if they are updated while the DWB is set. This functionality enables a debugger to download code or data to external memory, without the requirement to clean part or the entire cache to ensure that the code or data being downloaded has been written to external memory.
If the DWB is set, and a write is made to a cache line that is dirty, then both the cache line and the external memory are updated with the write data. Other entries in the cache line still have to be written back to main memory to achieve coherency.
Setting the DCL bit prevents the cache from updating when performing a linefill on a miss. When set, a linefill is performed on a cache miss, reading eight words from external memory, but the cache is not updated with the linefill data. This mode of operation is required for debug so that the memory image, as seen by the CPU core, can be examined in a noninvasive manner. Cache hits read data words from the cache, and cache misses from a cacheable region read words directly from memory.
Setting the DCL bit overrides the write-allocate attributes. Write-Through write allocate and Write-Back write allocate accesses are treated as normal Write-Through and Write-Back accesses respectively.