SWRU626 December 2025 CC3501E , CC3551E
Table 8-17 lists the memory-mapped registers for the DCACHE registers. All register offset addresses not listed in Table 8-17 should be considered as reserved locations and the register contents should not be modified.
| Offset | Acronym | Register Name | Section |
|---|---|---|---|
| 0h | MOD_VER | Module Identification | Section 8.8.1 |
| 4h | CTRL | Cache Configuration | Section 8.8.2 |
| 8h | STS | Module Status | Section 8.8.3 |
| 10h | CAL | Cache Address Low | Section 8.8.4 |
| 18h | CAH | Cache Range End | Section 8.8.5 |
| 40h | READ_COUNTER | Cache Hit Counter | Section 8.8.6 |
| 44h | WRITE_COUNTER | Cache Miss Counter | Section 8.8.7 |
| 48h | ADDRESS_LATCH | Error Address Storage | Section 8.8.8 |
| 4Ch | CACHE_FSM_STATE | Cache Status Register | Section 8.8.9 |
| 80h | IRQSTATUS_RAW | Error Interrupt Status | Section 8.8.10 |
| 84h | IRQSTATUS_MSK | Masked Interrupt Status | Section 8.8.11 |
| 88h | IRQENABLE_SET | Interrupt Enable Set | Section 8.8.12 |
| 8Ch | IRQENABLE_CLR | Interrupt Enable Clear | Section 8.8.13 |
| C0h | CTRL1 | Cache Control | Section 8.8.14 |
| C4h | STATUS1 | Cache Operation Status | Section 8.8.15 |
Complex bit access types are encoded to fit into small table cells. Table 8-18 shows the codes that are used for access types in this section.
| Access Type | Code | Description |
|---|---|---|
| Read Type | ||
| R | R | Read |
| RH | R H | Read Set or cleared by hardware |
| Write Type | ||
| W | W | Write |
| W1C | W 1C | Write 1 to clear |
| W1S | W 1S | Write 1 to set |
| Reset or Default Value | ||
| -n | Value after reset or the default value | |
MOD_VER is shown in Table 8-19.
Return to the Summary Table.
The Module and Version Register identifies the module identifier and revision of the L1 module.
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-30 | SCHEME | RH | 1h | Module Scheme |
| 29-28 | BU | RH | 2h | Module Business Unit |
| 27-16 | MODULE_ID | RH | 880h | L1 module ID. |
| 15-11 | RTL_VERSION | RH | 1h | RTL Version. |
| 10-8 | MAJOR_REVISION | RH | 0h | Major Revision. |
| 7-6 | CUSTOM_REVISION | RH | 0h | Custom Revision. |
| 5-0 | MINOR_REVISION | RH | 0h | Minor Revision. |
CTRL is shown in Table 8-20.
Return to the Summary Table.
The control register defines the size of the remote cache data storage memory to use and whether the L1 is enabled.
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31 | CENABLE | RH/W | 0h | The ~icenable field determines whether the L1 configuration is enabled or not. 0: Disabled 1: Enabled This field is write protected when the t_cfg_lock_ipcfg input is high. |
| 30 | RENABLE | RH/W | 1h | The ~irenable field determines if half the cache space is RAM or cache. 0: No RAM 64K of cache 1: RAM 32K of cache, 32K of RAM. This field is write protected when ~icenable is set or the t_cfg_lock_ipcfg input is high. |
| 29-0 | RESERVED | RH | 0h |
STS is shown in Table 8-21.
Return to the Summary Table.
The Status register displays the state of the L1 module
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31 | OK_TO_GO | RH | 0h | The ~iok_to_go status bit indicates the Tag/LRU Ram has been initialized and the cache is in an operable state. |
| 30-0 | RESERVED | R | 0h |
CAL is shown in Table 8-22.
Return to the Summary Table.
The L1 Cache Address Low Register defines start of the L1 cacheable space. The L1 cache can cache up to a range of 8MB of of the target Flash as defined by CAL>=CachedRange<=CAH. This register is write protected when ~icenable is set or the t_cfg_lock_ipcfg input is high.
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-12 | ADDR_LO | RH/W | 0h | The ~iaddr_lo defines the L1 low address[31:12] for the L1 to cache. The remaining bits 10:0 are assumed to be zero. |
| 11-0 | RESERVED | RH | 0h |
CAH is shown in Table 8-23.
Return to the Summary Table.
The L1 Cache Address High Register defines end of the L1 cacheable space. The L1 cache can cache up to a range of 8MB of of the target Flash as defined by CAL>=CachedRange<=CAH. This register is write protected when ~icenable is set or the t_cfg_lock_ipcfg input is high.
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-12 | ADDR_HI | RH/W | 0h | The ~iaddr_hi defines the L1 high address[31:12] for the L1 to cache. The remaining bits 10:0 are assumed to be ones. |
| 11-0 | RESERVED | RH | 0h |
READ_COUNTER is shown in Table 8-24.
Return to the Summary Table.
The L1 HIT Counter register holds the number of L1 Hits to the internal cache.
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-12 | READ_HIT_COUNTER | RH/W | 0h | The hit Counts the number of hits to the L1 cache. Writing zero to this register will clear its contents When one reach the max, the rest of the counters are halted too. |
| 11-0 | READ_MISS_COUNTER | RH/W | 0h | The miss Counts the number of misses to the L1 cache. Writing zero to this register will clear its contents. When one reach the max, the rest of the counters are halted too. |
WRITE_COUNTER is shown in Table 8-25.
Return to the Summary Table.
The L1 MISS Counter register holds the number of L1 Misses to the internal cache.
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-12 | WRITE_HIT_COUNTER | RH/W | 0h | The hit Counts the number of hits to the L1 cache. Writing zero to this register will clear its contents. When one reach the max, the rest of the counters are halted too. |
| 11-0 | WRITE_MISS_COUNTER | RH/W | 0h | The miss Counts the number of misses to the L1 cache. Writing zero to this register will clear its contents. When one reach the max, the rest of the counters are halted too |
ADDRESS_LATCH is shown in Table 8-26.
Return to the Summary Table.
When having OTFDE AHB error, Latch the address accessed by D-cache
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-0 | ADDRESS_LATCH | RH/W | 0h | When D-cache receive AHB error from the OTFDE it should latch the address accessed by D-cache. (OTFDE generates an error for write only) Writing zero to this register will clear its contents. |
CACHE_FSM_STATE is shown in Table 8-27.
Return to the Summary Table.
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-5 | RESERVED | R | 0h | Dcache current FSM state |
| 4-0 | FSM_STATE | R | 0h | Dcache current FSM state WIDLE = 5'd0; - No access to D-cache WRAMWR = 5'd1; - Data RAM Write WRAMRD = 5'd2; - Data RAM Read WCREADT = 5'd4; - Read Hit WCREADC = 5'd5; - Read Miss WCWRITET = 5'd6; - Write Hit EVICT = 5'd7; -Write back to PSRAM WR_ALLOC = 5'd8; - Write Allocate in write miss RD_WA = 5'd9; - Word aligned read for a byte aligned read WD = 5'd10; - Writing data to PSRAM RDATA_CACHE = 5'd3; Reading data RAM for eviction DEC_DIR = 5'd11; - Deciding direction RDATA_CACHE_FLUSH = 5'd12; Reading data from data RAM for flush RD_SET = 5'd13; Reading TAG & MRU DET_GRANT = 5'd14; Detecting the granted way to evict EVICT_FLUSH = 5'd15; Eviction during Flush WD_DEBUG = 5'd16; Writing data to PSRAM during a debugger access |
IRQSTATUS_RAW is shown in Table 8-28.
Return to the Summary Table.
The Interrupt Raw Status Register holds the raw status of the L1 error interrupts. Note: Read to the field of this register gives raw status of corresponding interrupt. S/W can set corresponding interrupt field for diagnostic purposes.
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-2 | RESERVED | R/W | 0h | |
| 1 | LOCK_CFG_WR | R/W | 0h | The ~ilock_cfg_wr bit indicates a write to a locked configuration register has occured. Write 1 to set the ~ilock_cfg_wr status for diagnostic purposes. Writing a 0 has no effect. |
| 0 | RESERVED | RH/W1S | 0h | reserved |
IRQSTATUS_MSK is shown in Table 8-29.
Return to the Summary Table.
The Interrupt Masked Status Register holds the masked status for the L1 error interrupts. Writing to this register will EOI the interrupt, that is if another interrupt is pending, a new pulse interrupt will be generated. Note: Read to the field of this register gives masked status of corresponding interrupt. Writing 1 to the field of this register clears corresponding interrupt.
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-2 | RESERVED | R/W | 0h | |
| 1 | LOCK_CFG_WR | R/W | 0h | The ~ilock_cfg_wr bit indicates a write to a locked configuration register has occured. Write 1 to clear the ~ilock_cfg_wr status after interrupt has been serviced (raw status gets cleared, i.e. even if not enabled). Writing a 0 has no effect to this field. |
| 0 | RESERVED | RH/W1C | 0h | reserved |
IRQENABLE_SET is shown in Table 8-30.
Return to the Summary Table.
The Interrupt Enable Set Register holds the interrupt enable status of the L1 error interrupts. Note:Writing 1 to field of this register will not mask the corresponding interrupt. IRQSTATUS_RAW and IRQSTATUS_MSK status field gives the same status.
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-2 | RESERVED | R/W | 0h | |
| 1 | EN_LOCK_CFG_WR | R/W | 0h | Interrupt Enable Set for ~ilock_cfg_wr error bit. Writing a 1 will enable the interrupt, and set this bit as well as the corresponding Interrupt Enable Clear Register. Writing a 0 has no effect. |
| 0 | RESERVED | RH/W1S | 0h | reserved |
IRQENABLE_CLR is shown in Table 8-31.
Return to the Summary Table.
The Interrupt Enable Clear Register holds the interrupt enable status of the L1 error interrupts. Note:Writing 1 to field of this register masks the corresponding interrupt. IRQSTATUS_RAW and IRQSTATUS_MSK status field gives the raw status and masked status respectively
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-2 | RESERVED | R/W | 0h | |
| 1 | EN_LOCK_CFG_WR | R/W | 0h | Interrupt Enable Clear for ~ilock_cfg_wr error bit. Writing a 1 will disable the interrupt, and clear this bit as well as the corresponding Interrupt Enable Set Register. Writing a 0 has no effect. |
| 0 | RESERVED | RH/W1C | 0h | reserved |
CTRL1 is shown in Table 8-32.
Return to the Summary Table.
Flush and invalidates requests
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31 | FLUSH | RH/W | 0h | 0x0 - Do nothing 0x1 - Flush The bit is self cleared when flush completed |
| 30 | INVALIDATE | RH/W | 0h | 0x0 - Do nothing 0x1 - Invalidate This bit is self cleared when invalidate completed |
| 29-0 | RESERVED | R | 0h |
STATUS1 is shown in Table 8-33.
Return to the Summary Table.
Flush and invalidates status
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31 | FLUSH_STATUS | R | 0h | This bit indicates that Flush as been completed ( Bit is cleared when Flush request bit is asserted ) |
| 30 | INVALIDATE_STATUS | RH | 0h | This bit indicates that invalidate has been completed ( Bit is cleared when flush request bit is asserted ) |
| 29 | FLUSH_FAIL | RH | 0h | This bit indicates that Flush has failed ( Bit is cleared when Flush request bit is asserted ) |
| 28-0 | RESERVED | R | 0h |