SPRUJ79 November 2024 F29H850TU , F29H859TU-Q1
Table 17-6 lists the memory-mapped registers for the ERAD_REGS registers. All register offset addresses not listed in Table 17-6 should be considered as reserved locations and the register contents should not be modified.
| Offset | Acronym | Register Name | Protection |
|---|---|---|---|
| 0h | GLBL_ERAD_ID | Debug Peripheral ID | |
| 4h | GLBL_EVENT_STAT | Global Event Status Register | |
| 40h + formula | EBC_OWNER_j | EBC Owner Register | |
| 44h + formula | EBC_CNTL_j | EBC Control Register | |
| 48h + formula | EBC_STATUS_j | EBC Status Register | |
| 4Ch + formula | EBC_STATUSCLEAR_j | EBC Clear Register | |
| 50h + formula | EBC_REFL_j | EBC Reference Low Register | |
| 54h + formula | EBC_REFH_j | EBC Reference High Register | |
| 58h + formula | EBC_MASKL_j | EBC Mask Low Register | |
| 5Ch + formula | EBC_MASKH_j | EBC Mask High Register | |
| 60h + formula | EBC_WP_PC_j | EBC Watchpoint PC Register | |
| 440h + formula | SEC_OWNER_j | SEC Owner Register | |
| 444h + formula | SEC_CNTL_j | SEC Control Register | |
| 448h + formula | SEC_STATUS_j | SEC Status Register | |
| 44Ch + formula | SEC_STATUSCLEAR_j | SEC Clear Register | |
| 450h + formula | SEC_REF_j | SEC Reference Register | |
| 454h + formula | SEC_INPUT_SEL1_j | SEC Input Select Register1 | |
| 458h + formula | SEC_INPUT_SEL2_j | SEC Input Select Register2 | |
| 45Ch + formula | SEC_INPUT_COND_j | SEC Input Conditioning Register | |
| 460h + formula | SEC_COUNT_j | SEC Counter Register | |
| 464h + formula | SEC_MAX_COUNT_j | SEC Max Count Register | |
| 468h + formula | SEC_MIN_COUNT_j | SEC Min Count Register | |
| 640h + formula | AND_MASK_OWNER_j | AND Owner Register | |
| 644h + formula | AND_MASK_CTL_j | AND Control Register | |
| 648h + formula | EVENT_AND_MASK_j | AND Event Selection Register | |
| 740h + formula | OR_MASK_OWNER_j | OR Owner Register | |
| 744h + formula | OR_MASK_CTL_j | OR Control Register | |
| 748h + formula | EVENT_OR_MASK_j | OR Event Selection Register | |
| 840h | PCTRACE_OWNER | Owner Register | |
| 844h | PCTRACE_GLOBAL | Global Control Register | |
| 848h | PCTRACE_BUFFER | Trace Buffer pointer register | |
| 84Ch | PCTRACE_QUAL1 | Trace Qualifier register 1 | |
| 850h | PCTRACE_QUAL2 | Trace Qualifier register 2 | |
| 854h | PCTRACE_LOGPC_SOFTENABLE | PC when PC Trace was last enabled by software | |
| 858h | PCTRACE_LOGPC_SOFTDISABLE | PC when PC Trace was last disabled by software | |
| 1000h + formula | PCTRACE_BUFFER_BASE_y | Trace Buffer Base address |
Complex bit access types are encoded to fit into small table cells. Table 17-7 shows the codes that are used for access types in this section.
| Access Type | Code | Description |
|---|---|---|
| Read Type | ||
| R | R | Read |
| Write Type | ||
| W | W | Write |
| W1C | W 1C | Write 1 to clear |
| Reset or Default Value | ||
| -n | Value after reset or the default value | |
| Register Array Variables | ||
| i,j,k,l,m,n | When these variables are used in a register name, an offset, or an address, they refer to the value of a register array where the register is part of a group of repeating registers. The register groups form a hierarchical structure and the array is represented with a formula. | |
| y | When this variable is used in a register name, an offset, or an address it refers to the value of a register array. | |
GLBL_ERAD_ID is shown in Figure 17-9 and described in Table 17-8.
Return to the Summary Table.
Debug Peripheral ID
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | RESERVED | FUNC | |||||
| R-1h | R-2h | R-209h | |||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FUNC | |||||||
| R-209h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | MAJOR | ||||||
| R-0h | R-0h | ||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| CUSTOM | MINOR | ||||||
| R-0h | R-0h | ||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-30 | RESERVED | R | 1h | Reserved |
| 29-28 | RESERVED | R | 2h | Reserved |
| 27-16 | FUNC | R | 209h | 0x209 => C29 Embedded Real-Time Analysis and Diagnostics Reset type: SYSRSn |
| 15-11 | RESERVED | R | 0h | Reserved |
| 10-8 | MAJOR | R | 0h | Based on RTL Version Reset type: SYSRSn |
| 7-6 | CUSTOM | R | 0h | Based on RTL Version Reset type: SYSRSn |
| 5-0 | MINOR | R | 0h | Based on RTL Version Reset type: SYSRSn |
GLBL_EVENT_STAT is shown in Figure 17-10 and described in Table 17-9.
Return to the Summary Table.
Global Event Status Register
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SEC | EBC | ||||||||||||||||||||||||||||||
| R-0h | R-0h | ||||||||||||||||||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-16 | SEC | R | 0h | This bit directly reflects the state of the EVENT_FIRED bit of the SEC unit x. 0 No Event 1 Event Fired Bit-16 SEC1 Bit-17 SEC2 .... Bit-(n-15) SECn Reset type: ERAD_RESET |
| 15-0 | EBC | R | 0h | This bit directly reflects the state of the EVENT_FIRED bit of the EBC unit x. 0 No Event 1 Event Fired Bit-0 EBC1 Bit-1 EBC2 .... Bit-n EBCn Reset type: ERAD_RESET |
EBC_OWNER_j is shown in Figure 17-11 and described in Table 17-10.
Return to the Summary Table.
EBC Owner Register
Offset = 40h + (j * 40h); where j = 0h to 7h
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | CONFIG | SEM | |||||
| R-0h | R-0h | R-0h | |||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | SROOT | ZONE | |||||
| R-0h | R-0h | R-0h | |||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | OWNER | ||||||
| R-0h | R/W-0h | ||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-19 | RESERVED | R | 0h | Reserved |
| 18-17 | CONFIG | R | 0h | 00 => EBC Full 01 => EBC Lite Others => Reserved Reset type: ERAD_RESET |
| 16 | SEM | R | 0h | 1 => Access and owner from same zone (Additionally if SROOT LINK owns the block and access originated from SROOTLINK area) 0 => Access and owner from different zone (Additionally if SROOT LINK owns the block, but access originated from a non SROOT LINK area) These bits are only valid when OWNER = 10 (App owned) Reset type: ERAD_RESET |
| 15-13 | RESERVED | R | 0h | Reserved |
| 12 | SROOT | R | 0h | 0 => This block is not owned by SROOT LINK 1 => This block is owned by SROOT LINK Reset type: ERAD_RESET |
| 11-8 | ZONE | R | 0h | 0000 => Zone-0 0001 => Zone-1 0010 => Zone-2 0011 => Zone-3 All others => Reserved These bits are only valid when OWNER = 10 (App owned) Reset type: ERAD_RESET |
| 7-2 | RESERVED | R | 0h | Reserved |
| 1-0 | OWNER | R/W | 0h | 00 => No Owner 01 => Debug Owned 10 => App Owned 11 => Reserved Debugger : Read-> Returns current ownership ID Writes -> Allowed only if current value is 00 or 01 Application: Read-> Returns current ownership ID Writes -> Allowed only if current value is 00 or 10 NOTE : When a 00 gets successfully written, all the rest of control/status registers gets reset/cleared Reset type: ERAD_RESET |
EBC_CNTL_j is shown in Figure 17-12 and described in Table 17-11.
Return to the Summary Table.
EBC Control Register
Offset = 44h + (j * 40h); where j = 0h to 7h
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | SPSEL | ||||||
| R-0h | R/W-0h | ||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| SPSEL | SPSEL_MATCH_EN | STACK_QUAL | COMP_MODE | NMI_EN | |||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | |||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| INTERRUPT | HALT | BUS_SEL | EN | ||||
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | ||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-18 | RESERVED | R | 0h | Reserved |
| 17-14 | SPSEL | R/W | 0h | Stack pointer Select value to be used for SPSEL match. Reset type: ERAD_RESET |
| 13 | SPSEL_MATCH_EN | R/W | 0h | 0 = SPSEL match disabled 1 = SPSEL match enabled This bit is relevant only for data read and data write address comparison. When enabled, SPSEL match will additionally be considered to generate a match. Reset type: ERAD_RESET |
| 12 | STACK_QUAL | R/W | 0h | 0 = Stack access qualifier disabled 1 = Stack access qualifier enabled This bit is relevant only for data read and data write address comparison. When enabled, the corresponding stack access qualifier will additionally be considered to generate a match. Reset type: ERAD_RESET |
| 11-9 | COMP_MODE | R/W | 0h | EBC compare modes: 000 Regular masked compare EBC_MSK will be ignored for the following modes: 100 Bus value GT EBC_REF 101 Bus value GE EBC_REF 110 Bus value LT EBC_REF 111 Bus value LE EBC_REF GT means Greater Than GE means Greater or Equal LT means Less Than LE means Lesser or Equal Reset type: ERAD_RESET |
| 8 | NMI_EN | R/W | 0h | 0 = Will assert ERAD interrupt 1 = Will assert NMI (With only exception of BUS_SEL = PAB, which will not generate any interrupt or event or NMI. This is only used for breakpoints by debug controller) Reset type: ERAD_RESET |
| 7 | INTERRUPT | R/W | 0h | This bit decides whether the EBC unit will generate interrupt when event matches occur. Note that the event outputs will always be generated regardless of the state of this bit. 0 The EBC unit will not cause any action towards the CPU. 1 The EBC unit will assert NMI/ERAD interrupt based on NMI_EN bit for matching data accesses (With only exception of BUS_SEL = PAB, which will not generate any interrupt or event or NMI. This is only used for breakpoints by debug controller) Reset type: ERAD_RESET |
| 6 | HALT | R/W | 0h | This bit decides whether the EBC unit will generate CPU halting signals when event matches occur. Note that the event outputs will always be generated regardless of the state of this bit. 0 The EBC unit will not cause any action towards halting the CPU. 1 The EBC unit will assert break tags for matching program fetches(Breakpoint) and Halt request rest of the matching accesses(Watchpoint). These can cause the CPU to HALT Reset type: ERAD_RESET |
| 5-1 | BUS_SEL | R/W | 0h | 00000 PAB for instruction fetches 00001 DWAB for data write accesses 00101 DRAB_W address aligned with RDATA1/RDATA2 (either DRAB1_W/DRAB2_W) 00110 DRAB1_W address aligned with RDATA1 00111 DRAB2_W address aligned with RDATA2 01000 DWDB for write data match 01001 DRDB for read data match (either DRDB1/2) 01010 DRDB1 for read data match (RDATA1) 01011 DRDB2 for read data match (RDATA1) 01100 VPC Instruction aligned match (VPC for R1 phase) 01110 VPC W aligned match (VPC for Write address/data phase/Read data phase) Others Reserved Reset type: ERAD_RESET |
| 0 | EN | R/W | 0h | 0 = EBC Disabled 1 = EBC Enabled Reset type: ERAD_RESET |
EBC_STATUS_j is shown in Figure 17-13 and described in Table 17-12.
Return to the Summary Table.
EBC Status Register
Offset = 48h + (j * 40h); where j = 0h to 7h
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | STATUS | ||||||
| R-0h | R-0h | ||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | EVENT_FIRED | ||||||
| R-0h | R-0h | ||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-10 | RESERVED | R | 0h | Reserved |
| 9-8 | STATUS | R | 0h | EBC status: 00 Idle 10 Enabled 11 Completed Reset type: ERAD_RESET |
| 7-1 | RESERVED | R | 0h | Reserved |
| 0 | EVENT_FIRED | R | 0h | This is a sticky bit which gets set every time the EBC unit generates a match event. This will be used by software to figure out whether this EBC module fired an event or not. This bit will get cleared by writing a '1' to bit 0 of the EBC_STATUSCLEAR register. Reset type: ERAD_RESET |
EBC_STATUSCLEAR_j is shown in Figure 17-14 and described in Table 17-13.
Return to the Summary Table.
EBC Clear Register
Offset = 4Ch + (j * 40h); where j = 0h to 7h
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | EVENT_FIRED | ||||||
| R-0h | W1C-0h | ||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-1 | RESERVED | R | 0h | Reserved |
| 0 | EVENT_FIRED | W1C | 0h | Event Clear register: 0 No action. 1 A write with this bit set to 1 will clear the sticky EVENT_FIRED bit in the EBC_STATUS register and bring the EBC statemachine status back to ENABLED state if EBC is enabled or IDLE state if EBC is disabled. Reads of this bit position will always return a 0. Note : If hardware is trying to set EVENT_FIRED bit at the same cycle software is trying to clear, then the clear will be ignored and status will remain set Reset type: ERAD_RESET |
EBC_REFL_j is shown in Figure 17-15 and described in Table 17-14.
Return to the Summary Table.
EBC Reference Low Register
Offset = 50h + (j * 40h); where j = 0h to 7h
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| REF | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-0 | REF | R/W | 0h | This register contains the lower 32-bits of the 64-bit reference used for comparison. The contents of this register are used along with the mask register to determine the address match. The equation used to determine a match is as follows. Match is true if, (compare bus | mask) == (reference | mask) This register is writable by CPU only if application owns the unit. Otherwise, the writes are ignored. The register is writable by the debugger only if the debugger owns this unit. Otherwise, debugger writes are ignored. Note : compare bus = {REFH[31:0],REFL{31:0} REFH and REFL are used in conjunction for 64-bit bus compares. So always disable, program the reference registers H,L and then re-enable for 64-bit comparison. Reset type: ERAD_RESET |
EBC_REFH_j is shown in Figure 17-16 and described in Table 17-15.
Return to the Summary Table.
EBC Reference High Register
Offset = 54h + (j * 40h); where j = 0h to 7h
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| REF | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-0 | REF | R/W | 0h | This register contains the top 32-bits of the 64-bit reference used for comparison. The contents of this register are used along with the mask register to determine the address match. The equation used to determine a match is as follows. Match is true if, (compare bus | mask) == (reference | mask) This register is writable by CPU only if application owns the unit. Otherwise, the writes are ignored. The register is writable by the debugger only if the debugger owns this unit. Otherwise, debugger writes are ignored. Note : compare bus = {REFH[31:0],REFL{31:0} REFH and REFL are used in conjunction for 64-bit bus compares. So always disable, program the reference registers H,L and then re-enable for 64-bit comparison. Reset type: ERAD_RESET |
EBC_MASKL_j is shown in Figure 17-17 and described in Table 17-16.
Return to the Summary Table.
EBC Mask Low Register
Offset = 58h + (j * 40h); where j = 0h to 7h
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| MASK | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-0 | MASK | R/W | 0h | This register contains the lower 32-bits of the 64-bit mask used for comparison. The contents of this register are used along with the reference register to determine the address match. The equation used to determine a match is as follows. Match is true if, (compare bus | mask) == (reference | mask) This register is writable by CPU only if application owns the unit. Otherwise, the writes are ignored. The register is writable by the debugger only if the debugger owns this unit. Otherwise, the writes are ignored. Note : mask = {MASKH[31:0],MASKL{31:0} MASKH and MASKL are used in conjunction for 64-bit bus compares. So always disable, program the reference registers H,L and then re-enable for 64-bit comparison. Important Note : If PAB is chosen for comparison and masks are enabled, then the following restriction apply. MASKL[3:0] can only take one of the following values 0x0, 0x1, 0x3, 0x7 & 0xF. Rest of the mask bits can be chosen freely based on need. Reset type: ERAD_RESET |
EBC_MASKH_j is shown in Figure 17-18 and described in Table 17-17.
Return to the Summary Table.
EBC Mask High Register
Offset = 5Ch + (j * 40h); where j = 0h to 7h
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| MASK | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-0 | MASK | R/W | 0h | This register contains the higher 32-bits of the 64-bit mask used for comparison. The contents of this register are used along with the reference register to determine the address match. The equation used to determine a match is as follows. Match is true if, (compare bus | mask) == (reference | mask) This register is writable by CPU only if application owns the unit. Otherwise, the writes are ignored. The register is writable by the debugger only if the debugger owns this unit. Otherwise, the writes are ignored. Note : mask = {MASKH[31:0],MASKL{31:0} MASKH and MASKL are used in conjunction for 64-bit bus compares. So always disable, program the reference registers H,L and then re-enable for 64-bit comparison. Reset type: ERAD_RESET |
EBC_WP_PC_j is shown in Figure 17-19 and described in Table 17-18.
Return to the Summary Table.
EBC Watchpoint PC Register
Offset = 60h + (j * 40h); where j = 0h to 7h
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PC | |||||||||||||||||||||||||||||||
| R-0h | |||||||||||||||||||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-0 | PC | R | 0h | This register captures the PC of instruction which caused the watchpoint. This is valid for Data read/write related bus selects only Reset type: ERAD_RESET |
SEC_OWNER_j is shown in Figure 17-20 and described in Table 17-19.
Return to the Summary Table.
SEC Owner Register
Offset = 440h + (j * 40h); where j = 0h to 3h
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | CONFIG | SEM | |||||
| R-0h | R-0h | R-0h | |||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | SROOT | ZONE | |||||
| R-0h | R-0h | R-0h | |||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | OWNER | ||||||
| R-0h | R/W-0h | ||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-19 | RESERVED | R | 0h | Reserved |
| 18-17 | CONFIG | R | 0h | 00 => SEC Full 01 => SEC Lite Others => Reserved Reset type: ERAD_RESET |
| 16 | SEM | R | 0h | 1 => Access and owner from same zone (Additionally if SROOT LINK owns the block and access originated from SROOTLINK area) 0 => Access and owner from different zone (Additionally if SROOT LINK owns the block, but access originated from a non SROOT LINK area) These bits are only valid when OWNER = 10 (App owned) Reset type: ERAD_RESET |
| 15-13 | RESERVED | R | 0h | Reserved |
| 12 | SROOT | R | 0h | 0 => This block is not owned by SROOT LINK 1 => This block is owned by SROOT LINK Reset type: ERAD_RESET |
| 11-8 | ZONE | R | 0h | 0000 => Zone-0 0001 => Zone-1 0010 => Zone-2 0011 => Zone-3 All others => Reserved These bits are only valid when OWNER = 10 (App owned) Reset type: ERAD_RESET |
| 7-2 | RESERVED | R | 0h | Reserved |
| 1-0 | OWNER | R/W | 0h | 00 => No Owner 01 => Debug Owned 10 => App Owned 11 => Reserved Debugger : Read-> Returns current ownership ID Writes -> Allowed only if current value is 00 or 01 Application: Read-> Returns current ownership ID Writes -> Allowed only if current value is 00 or 10 NOTE : When a 00 gets successfully written, all the rest of control/status registers gets reset/cleared Reset type: ERAD_RESET |
SEC_CNTL_j is shown in Figure 17-21 and described in Table 17-20.
Return to the Summary Table.
SEC Control Register
Offset = 444h + (j * 40h); where j = 0h to 3h
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | FREE_RUN | RST_INP_SEL_EN | CNT_INP_SEL_EN | ||||
| R-0h | R/W-0h | R/W-0h | R/W-0h | ||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| NMI_EN | INTERRUPT | HALT | RST_ON_MATCH | START_STOP_CUMULATIVE | START_STOP_MODE | EDGE_LEVEL | EN |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h |
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-11 | RESERVED | R | 0h | Reserved |
| 10 | FREE_RUN | R/W | 0h | 0 = CPU halt is ignored by the SEC counter all times 1 = CPU halt with stop the counter until CPU is halted. i.e. If counter gets enabled by SEC to count and CPU is halted then the counter stops counting until CPU is in halt state. Once the CPU resumes execution out of halt mode, then Counter will be active again. Reset type: ERAD_RESET |
| 9 | RST_INP_SEL_EN | R/W | 0h | This bit decides if the reset input is enabled or not. Setting this to 1 will cause the counter to reset to zero whenever the selected reset input goes active high. No event will be generated when the counter is reset. Setting this bit to 0 will cause the counter to ignore the reset inputs. Reset type: ERAD_RESET |
| 8 | CNT_INP_SEL_EN | R/W | 0h | 0 = Disable using the input_select register for the count input. The counter will always count CPU cycles. 1 = Enable using the input_select register for the count input. The counter will count the event selected by the count input register. Reset type: ERAD_RESET |
| 7 | NMI_EN | R/W | 0h | 0 = Will assert ERAD interrupt 1 = Will assert NMI Reset type: ERAD_RESET |
| 6 | INTERRUPT | R/W | 0h | This bit decides whether the counter module will generate interrupt when count value matches the reference. Note that the event outputs will always be generated regardless of the state of this bit. 0 SEC unit will not cause any action towards the CPU. 1 SEC unit will assert NMI/ERAD interrupt based on NMI_EN bit when the counter value matches the reference value. Reset type: ERAD_RESET |
| 5 | HALT | R/W | 0h | This bit decides whether the counter module will generate a watchpoint to the CPU when the count value matches the reference. Note that the event outputs will always be generated regardless of the state of this bit. 0 SEC unit will not cause any action towards halting the CPU. 1 SEC unit will assert Halt request rest of the matching accesses(Watchpoint). These can cause the CPU to HALT Reset type: ERAD_RESET |
| 4 | RST_ON_MATCH | R/W | 0h | This bit is used to decide whether the counter will reset to zero once it reaches the reference value. 0 Counter will stay at the reference value and the counter will go to COMPLETED state and further counting will be stopped. 1 The counter will reset to zero once it reaches the match value and will stay enabled. Reset type: ERAD_RESET |
| 3 | START_STOP_CUMULATIVE | R/W | 0h | This bit decides whether the counter counts to give the cumulative cycle count for 'n' number of successive start stop events or clears the counter on very stop event to record the MAX_COUNT across successive start stop sequences. 0 When in START_STOP mode counter gets cleared on every stop event and MAX_COUNT records the max value 1 When in START_STOP mode counter keeps counting between successive start stop events to generate a cumulative count w/o clearing the counter on any stop events. MAX_COUNT register is invalid when this bit is set. Reset type: ERAD_RESET |
| 2 | START_STOP_MODE | R/W | 0h | This bit is used to decide whether the counter will count in the START_STOP mode or not. 0 Normal count mode. The counter will not depend on the START and STOP events 1 This is the START-STOP mode of the counter. The counter will start counting only after the START input has been asserted. It will continue to count the selected event till the STOP event is seen. Reset type: ERAD_RESET |
| 1 | EDGE_LEVEL | R/W | 0h | This bit is used to decide whether the counter will count the level of the event or the edge of the event. 0 Counter will increment the count as long as the count input is active high. 1 The counter will count only on the rising edge of the count input. Note: If the selected counter input signal was already high when SEC{#}_INPUT_SEL1.CNT_INP_SEL gets configured, the counter will increment by 1 when enabled, even if edge counting mode is selected Reset type: ERAD_RESET |
| 0 | EN | R/W | 0h | 0 = SEC Disabled 1 = SEC Enabled Reset type: ERAD_RESET |
SEC_STATUS_j is shown in Figure 17-22 and described in Table 17-21.
Return to the Summary Table.
SEC Status Register
Offset = 448h + (j * 40h); where j = 0h to 3h
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | STATUS | ||||||
| R-0h | R-0h | ||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | OVERFLOW | EVENT_FIRED | |||||
| R-0h | R-0h | R-0h | |||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-10 | RESERVED | R | 0h | Reserved |
| 9-8 | STATUS | R | 0h | SEC unit status 00 Idle 10 Enabled 11 Completed Reset type: ERAD_RESET |
| 7-2 | RESERVED | R | 0h | Reserved |
| 1 | OVERFLOW | R | 0h | This is a sticky bit which gets set every time the counter overflows and wraps around after reaching 0xffffffff. This bit will get cleared by writing a '1' to OVERFLOW of SEC_STATUSCLEAR register. Note : If hardware is trying to set OVERFLOW bit at the same cycle software is trying to clear, then the clear will be ignored and status will remain set Reset type: ERAD_RESET |
| 0 | EVENT_FIRED | R | 0h | This is a sticky bit which gets set every time the SEC unit generates a match event. This will be used by software to figure out whether this SEC module fired an event or not. This bit will get cleared by writing a '1' to EVENT of SEC_STATUSCLEAR register. Note : If hardware is trying to set EVENT_FIRED bit at the same cycle software is trying to clear, then the clear will be ignored and status will remain set Reset type: ERAD_RESET |
SEC_STATUSCLEAR_j is shown in Figure 17-23 and described in Table 17-22.
Return to the Summary Table.
SEC Clear Register
Offset = 44Ch + (j * 40h); where j = 0h to 3h
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | OVERFLOW | EVENT_FIRED | |||||
| R-0h | W1C-0h | W1C-0h | |||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-2 | RESERVED | R | 0h | Reserved |
| 1 | OVERFLOW | W1C | 0h | Clear OVERFLOW: 0 No action. 1 A write with this bit set to 1 will clear the sticky OVERFLOW bit in the SEC_STATUS register. Reads of this bit position will always return a 0. Reset type: ERAD_RESET |
| 0 | EVENT_FIRED | W1C | 0h | Clear EVENT_FIRED: 0 No action. 1 A write with this bit set to 1 will clear the sticky EVENT_FIRED bit in the SEC_STATUS register and bring the Breakpoint Module statemachine status back to ENABLED state if SEC is enable or IDLE state if SEC is disabled. Reads of this bit position will always return a 0. Reset type: ERAD_RESET |
SEC_REF_j is shown in Figure 17-24 and described in Table 17-23.
Return to the Summary Table.
SEC Reference Register
Offset = 450h + (j * 40h); where j = 0h to 3h
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| REF | |||||||||||||||||||||||||||||||
| R/W-FFFFFFFFh | |||||||||||||||||||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-0 | REF | R/W | FFFFFFFFh | This register contains the counter reference value for comparison. The counter will generate an event if the count value matches the reference register. This register is writable by CPU only if application owns the unit, the writes are ignored. The register is writable by the debugger only if the debugger owns this unit. Otherwise, the writes are ignored. Reset type: ERAD_RESET |
SEC_INPUT_SEL1_j is shown in Figure 17-25 and described in Table 17-24.
Return to the Summary Table.
SEC Input Select Register1
Offset = 454h + (j * 40h); where j = 0h to 3h
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | RST_INP_SEL | ||||||||||||||
| R-0h | R/W-0h | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | CNT_INP_SEL | ||||||||||||||
| R-0h | R/W-0h | ||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-24 | RESERVED | R | 0h | Reserved |
| 23-16 | RST_INP_SEL | R/W | 0h | These bits decide are used to select the event input that will be used as the reset input. These bits matter only if the Enable Reset bit is set to 1. Reset type: ERAD_RESET |
| 15-8 | RESERVED | R | 0h | Reserved |
| 7-0 | CNT_INP_SEL | R/W | 0h | These bits decide which of the inputs will be selected to enable counting. These inputs will be hooked up to the event outputs from the breakpoint module, counter module and to other system events Reset type: ERAD_RESET |
SEC_INPUT_SEL2_j is shown in Figure 17-26 and described in Table 17-25.
Return to the Summary Table.
SEC Input Select Register2
Offset = 458h + (j * 40h); where j = 0h to 3h
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | STO_INP_SEL | ||||||||||||||
| R-0h | R/W-0h | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | STA_INP_SEL | ||||||||||||||
| R-0h | R/W-0h | ||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-24 | RESERVED | R | 0h | Reserved |
| 23-16 | STO_INP_SEL | R/W | 0h | These bits decide which of the inputs will be selected as the STOP event for the counter. These inputs will be hooked up to the event outputs from the breakpoint module, counter module and to other system events. The usage of these bits are relevant only in the START_STOP mode of counting. Reset type: ERAD_RESET |
| 15-8 | RESERVED | R | 0h | Reserved |
| 7-0 | STA_INP_SEL | R/W | 0h | These bits decide which of the inputs will be selected as the START event for the counter. These inputs will be hooked up to the event outputs from the breakpoint module, counter module and to other system events. The usage of these bits are relevant only in the START_STOP mode of counting. Reset type: ERAD_RESET |
SEC_INPUT_COND_j is shown in Figure 17-27 and described in Table 17-26.
Return to the Summary Table.
SEC Input Conditioning Register
Offset = 45Ch + (j * 40h); where j = 0h to 3h
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | RESERVED | RST_INP_INV | RESERVED | RESERVED | STO_INP_INV | ||
| R-0h | R/W-0h | R/W-0h | R-0h | R/W-0h | R/W-0h | ||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | RESERVED | STA_INP_INV | RESERVED | RESERVED | SEC_INP_INV | ||
| R-0h | R/W-0h | R/W-0h | R-0h | R/W-0h | R/W-0h | ||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-14 | RESERVED | R | 0h | Reserved |
| 13 | RESERVED | R/W | 0h | Reserved |
| 12 | RST_INP_INV | R/W | 0h | Invert the Selected Reset input Reset type: ERAD_RESET |
| 11-10 | RESERVED | R | 0h | Reserved |
| 9 | RESERVED | R/W | 0h | Reserved |
| 8 | STO_INP_INV | R/W | 0h | Invert the Selected Stop input Reset type: ERAD_RESET |
| 7-6 | RESERVED | R | 0h | Reserved |
| 5 | RESERVED | R/W | 0h | Reserved |
| 4 | STA_INP_INV | R/W | 0h | Invert the Selected Start input Reset type: ERAD_RESET |
| 3-2 | RESERVED | R | 0h | Reserved |
| 1 | RESERVED | R/W | 0h | Reserved |
| 0 | SEC_INP_INV | R/W | 0h | Invert the Selected Counter input Reset type: ERAD_RESET |
SEC_COUNT_j is shown in Figure 17-28 and described in Table 17-27.
Return to the Summary Table.
SEC Counter Register
Offset = 460h + (j * 40h); where j = 0h to 3h
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| COUNT | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-0 | COUNT | R/W | 0h | This register contains the current count value. The counter will generate an event if the count value matches the reference register (considering both upper and lower half of the register). This register is writable by CPU only if application owns the unit. Otherwise, the writes are ignored. The register is writable by the debugger only if the debugger owns this unit. Otherwise, the writes are ignored. NOTE : CPU and Debugger writes based on ownership are given for clearing these registers for fresh start's. If attempted when hardware is also updating, then register writes are given lower priority. Reset type: ERAD_RESET |
SEC_MAX_COUNT_j is shown in Figure 17-29 and described in Table 17-28.
Return to the Summary Table.
SEC Max Count Register
Offset = 464h + (j * 40h); where j = 0h to 3h
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| MAX_COUNT | |||||||||||||||||||||||||||||||
| R/W-0h | |||||||||||||||||||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-0 | MAX_COUNT | R/W | 0h | This register contains the maximum recorded counter value. This is relevant only in the Start Stop mode of operation. NOTE : CPU and Debugger writes based on ownership are given for clearing these registers for fresh start's. If attempted when hardware is also updating, then register writes are given lower priority. Reset type: ERAD_RESET |
SEC_MIN_COUNT_j is shown in Figure 17-30 and described in Table 17-29.
Return to the Summary Table.
SEC Min Count Register
Offset = 468h + (j * 40h); where j = 0h to 3h
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| MIN_COUNT | |||||||||||||||||||||||||||||||
| R/W-FFFFFFFFh | |||||||||||||||||||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-0 | MIN_COUNT | R/W | FFFFFFFFh | This register contains the minimum recorded counter value. This is relevant only in the Start Stop mode of operation. NOTE : CPU and Debugger writes based on ownership are given for clearing these registers for fresh start's. If attempted when hardware is also updating, then register writes are given lower priority. Reset type: ERAD_RESET |
AND_MASK_OWNER_j is shown in Figure 17-31 and described in Table 17-30.
Return to the Summary Table.
AND Owner Register
Offset = 640h + (j * 20h); where j = 0h to 3h
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | SEM | ||||||
| R-0h | R-0h | ||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | SROOT | ZONE | |||||
| R-0h | R-0h | R-0h | |||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | OWNER | ||||||
| R-0h | R/W-0h | ||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-17 | RESERVED | R | 0h | Reserved |
| 16 | SEM | R | 0h | 1 => Access and owner from same zone (Additionally if SROOT LINK owns the block and access originated from SROOTLINK area) 0 => Access and owner from different zone (Additionally if SROOT LINK owns the block, but access originated from a non SROOT LINK area) These bits are only valid when OWNER = 10 (App owned) Reset type: ERAD_RESET |
| 15-13 | RESERVED | R | 0h | Reserved |
| 12 | SROOT | R | 0h | 0 => This block is not owned by SROOT LINK 1 => This block is owned by SROOT LINK Reset type: ERAD_RESET |
| 11-8 | ZONE | R | 0h | 0000 => Zone-0 0001 => Zone-1 0010 => Zone-2 0011 => Zone-3 All others => Reserved These bits are only valid when OWNER = 10 (App owned) Reset type: ERAD_RESET |
| 7-2 | RESERVED | R | 0h | Reserved |
| 1-0 | OWNER | R/W | 0h | 00 => No Owner 01 => Debug Owned 10 => App Owned 11 => Reserved Debugger : Read-> Returns current ownership ID Writes -> Allowed only if current value is 00 or 01 Application: Read-> Returns current ownership ID Writes -> Allowed only if current value is 00 or 10 NOTE : When a 00 gets successfully written, all the rest of control/status registers gets reset/cleared Reset type: ERAD_RESET |
AND_MASK_CTL_j is shown in Figure 17-32 and described in Table 17-31.
Return to the Summary Table.
AND Control Register
Offset = 644h + (j * 20h); where j = 0h to 3h
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | NMI_EN | INTERRUPT | HALT | ||||
| R-0h | R/W-0h | R/W-0h | R/W-0h | ||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-3 | RESERVED | R | 0h | Reserved |
| 2 | NMI_EN | R/W | 0h | 0 = Will assert ERAD interrupt 1 = Will assert NMI Reset type: ERAD_RESET |
| 1 | INTERRUPT | R/W | 0h | This bit decides whether this unit will generate interrupt when event matches occur. Note that the event outputs will always be generated regardless of the state of this bit. 0 This unit will not cause any action towards the CPU. 1 This unit will assert NMI/ERAD interrupt based on NMI_EN bit Reset type: ERAD_RESET |
| 0 | HALT | R/W | 0h | This bit decides whether this unit will generate CPU halting signals when event matches occur. Note that the event outputs will always be generated regardless of the state of this bit. 0 This unit will not cause any action towards halting the CPU. 1 This unit will assert Halt request rest of the matching accesses(Watchpoint). These can cause the CPU to HALT Reset type: ERAD_RESET |
EVENT_AND_MASK_j is shown in Figure 17-33 and described in Table 17-32.
Return to the Summary Table.
AND Event Selection Register
Offset = 648h + (j * 20h); where j = 0h to 3h
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | MASK_EBC | ||||||||||||||||||||||||||||||
| R-0h | R/W-00FFFFFFh | ||||||||||||||||||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-24 | RESERVED | R | 0h | Reserved |
| 23-0 | MASK_EBC | R/W | 00FFFFFFh | AND event mask 0 Corresponding EVENT is enabled for EBC_EVENT_AND1 output 1 Corresponding EVENT is masked for EBC_EVENT_AND1 output Bit-0 EBC1 Bit-1 EBC2 .... Bit-15 EBC15 Bit-16 SEC1 Bit-17 SEC2 .... Bit-(23) SEC8 Reset type: ERAD_RESET |
OR_MASK_OWNER_j is shown in Figure 17-34 and described in Table 17-33.
Return to the Summary Table.
OR Owner Register
Offset = 740h + (j * 20h); where j = 0h to 3h
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | SEM | ||||||
| R-0h | R-0h | ||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | SROOT | ZONE | |||||
| R-0h | R-0h | R-0h | |||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | OWNER | ||||||
| R-0h | R/W-0h | ||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-17 | RESERVED | R | 0h | Reserved |
| 16 | SEM | R | 0h | 1 => Access and owner from same zone (Additionally if SROOT LINK owns the block and access originated from SROOTLINK area) 0 => Access and owner from different zone (Additionally if SROOT LINK owns the block, but access originated from a non SROOT LINK area) These bits are only valid when OWNER = 10 (App owned) Reset type: ERAD_RESET |
| 15-13 | RESERVED | R | 0h | Reserved |
| 12 | SROOT | R | 0h | 0 => This block is not owned by SROOT LINK 1 => This block is owned by SROOT LINK Reset type: ERAD_RESET |
| 11-8 | ZONE | R | 0h | 0000 => Zone-0 0001 => Zone-1 0010 => Zone-2 0011 => Zone-3 All others => Reserved These bits are only valid when OWNER = 10 (App owned) Reset type: ERAD_RESET |
| 7-2 | RESERVED | R | 0h | Reserved |
| 1-0 | OWNER | R/W | 0h | 00 => No Owner 01 => Debug Owned 10 => App Owned 11 => Reserved Debugger : Read-> Returns current ownership ID Writes -> Allowed only if current value is 00 or 01 Application: Read-> Returns current ownership ID Writes -> Allowed only if current value is 00 or 10 NOTE : When a 00 gets successfully written, all the rest of control/status registers gets reset/cleared Reset type: ERAD_RESET |
OR_MASK_CTL_j is shown in Figure 17-35 and described in Table 17-34.
Return to the Summary Table.
OR Control Register
Offset = 744h + (j * 20h); where j = 0h to 3h
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | NMI_EN | INTERRUPT | HALT | ||||
| R-0h | R/W-0h | R/W-0h | R/W-0h | ||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-3 | RESERVED | R | 0h | Reserved |
| 2 | NMI_EN | R/W | 0h | 0 = Will assert ERAD interrupt 1 = Will assert NMI Reset type: ERAD_RESET |
| 1 | INTERRUPT | R/W | 0h | This bit decides whether this unit will generate interrupt when event matches occur. Note that the event outputs will always be generated regardless of the state of this bit. 0 This unit will not cause any action towards the CPU. 1 This unit will assert NMI/ERAD interrupt based on NMI_EN bit Reset type: ERAD_RESET |
| 0 | HALT | R/W | 0h | This bit decides whether this unit will generate CPU halting signals when event matches occur. Note that the event outputs will always be generated regardless of the state of this bit. 0 This unit will not cause any action towards halting the CPU. 1 This unit will assert Halt request rest of the matching accesses(Watchpoint). These can cause the CPU to HALT Reset type: ERAD_RESET |
EVENT_OR_MASK_j is shown in Figure 17-36 and described in Table 17-35.
Return to the Summary Table.
OR Event Selection Register
Offset = 748h + (j * 20h); where j = 0h to 3h
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | MASK_EBC | ||||||||||||||||||||||||||||||
| R-0h | R/W-00FFFFFFh | ||||||||||||||||||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-24 | RESERVED | R | 0h | Reserved |
| 23-0 | MASK_EBC | R/W | 00FFFFFFh | OR event mask 0 Corresponding EVENT is enabled for EBC_EVENT_OR1 output 1 Corresponding EVENT is masked for EBC_EVENT_OR1 output Bit-0 EBC1 Bit-1 EBC2 .... Bit-15 EBC15 Bit-16 SEC1 Bit-17 SEC2 .... Bit-(23) SECn Reset type: ERAD_RESET |
PCTRACE_OWNER is shown in Figure 17-37 and described in Table 17-36.
Return to the Summary Table.
Owner Register
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | SEM | ||||||
| R-0h | R-0h | ||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | SROOT | ZONE | |||||
| R-0h | R-0h | R-0h | |||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | OWNER | ||||||
| R-0h | R/W-0h | ||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-17 | RESERVED | R | 0h | Reserved |
| 16 | SEM | R | 0h | 1 => Access and owner from same zone (Additionally if SROOT LINK owns the block and access originated from SROOTLINK area) 0 => Access and owner from different zone (Additionally if SROOT LINK owns the block, but access originated from a non SROOT LINK area) These bits are only valid when OWNER = 10 (App owned) Reset type: ERAD_RESET |
| 15-13 | RESERVED | R | 0h | Reserved |
| 12 | SROOT | R | 0h | 0 => This block is not owned by SROOT LINK 1 => This block is owned by SROOT LINK Reset type: ERAD_RESET |
| 11-8 | ZONE | R | 0h | 0000 => Zone-0 0001 => Zone-1 0010 => Zone-2 0011 => Zone-3 All others => Reserved These bits are only valid when OWNER = 10 (App owned) Reset type: ERAD_RESET |
| 7-2 | RESERVED | R | 0h | Reserved |
| 1-0 | OWNER | R/W | 0h | 00 => No Owner 01 => Debug Owned 10 => App Owned 11 => Reserved Debugger : Read-> Returns current ownership ID Writes -> Allowed only if current value is 00 or 01 Application: Read-> Returns current ownership ID Writes -> Allowed only if current value is 00 or 10 NOTE : When a 00 gets successfully written, all the rest of control/status registers gets reset/cleared Reset type: ERAD_RESET |
PCTRACE_GLOBAL is shown in Figure 17-38 and described in Table 17-37.
Return to the Summary Table.
Global Control Register
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | BUFFER_SIZE | ||||||
| R-0h | R-0h | ||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | INIT | ||||||
| R-0h | W1C-0h | ||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | EN | ||||||
| R-0h | R/W-0h | ||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-18 | RESERVED | R | 0h | Reserved |
| 17-16 | BUFFER_SIZE | R | 0h | Trace buffer size 00 = 1 Kbyte 01 = 2 kbyte 10 = 3 kbyte 11 = 4 kbyte Reset type: ERAD_RESET |
| 15-9 | RESERVED | R | 0h | Reserved |
| 8 | INIT | W1C | 0h | 0 = No action 1 = Trace module is initialized for a fresh trace start with buffer pointer(PTR) reset and BUFFER_FULL flags cleared along with PC_SOFTENABLE and PC_SOFTDISABLE Reads of this bit position always returns zero Reset type: ERAD_RESET |
| 7-1 | RESERVED | R | 0h | Reserved |
| 0 | EN | R/W | 0h | 0 = PC Trace Disabled 1 = PC Trace Enabled Reset type: ERAD_RESET |
PCTRACE_BUFFER is shown in Figure 17-39 and described in Table 17-38.
Return to the Summary Table.
Trace Buffer pointer register
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | BUFFER_FULL | ||||||
| R-0h | R-0h | ||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| PTR | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PTR | |||||||
| R-0h | |||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-17 | RESERVED | R | 0h | Reserved |
| 16 | BUFFER_FULL | R | 0h | 0 = Trace Buffer Never became full/Overflowed after init 1 = Indicates Trace Buffer became full/Overflowed This bit also gets cleared when INIT is performed via PCTRACE_GLOBAL.INIT Reset type: ERAD_RESET |
| 15-0 | PTR | R | 0h | Current Pointer to the Trace Buffer. If PTR=0 => there is no trace data in buffer (when BUFFER_FULL=0) If PTR=2,4,6. there is fresh trace data in buffer Buffer pointer gets incremented by 2 for every new trace storage, since two 32-bit values get stored for every discontinuity. For ex : 2 => Locations 0,1 of trace buffer have valid data (SRC,DST) 4 => Locations 0,1,2,3 have valid data (SRC,DST,SRC,DST) and so on Thhese bits also gets cleared when INIT is performed via PCTRACE_GLOBAL.INIT Reset type: ERAD_RESET |
PCTRACE_QUAL1 is shown in Figure 17-40 and described in Table 17-39.
Return to the Summary Table.
Trace Qualifier register 1
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| RESERVED | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | STOP_INP_INV | RESERVED | START_INP_INV | RESERVED | WINDOWED_INP_INV | TRACE_MODE | |
| R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | R/W-0h | |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| RESERVED | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| WINDOWED_INP_SEL | |||||||
| R/W-0h | |||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-24 | RESERVED | R | 0h | Reserved |
| 23 | RESERVED | R/W | 0h | Reserved |
| 22 | STOP_INP_INV | R/W | 0h | Invert the Selected Stop input Reset type: ERAD_RESET |
| 21 | RESERVED | R/W | 0h | Reserved |
| 20 | START_INP_INV | R/W | 0h | Invert the Selected Start input Reset type: ERAD_RESET |
| 19 | RESERVED | R/W | 0h | Reserved |
| 18 | WINDOWED_INP_INV | R/W | 0h | Invert the Selected trace input Reset type: ERAD_RESET |
| 17-16 | TRACE_MODE | R/W | 0h | 0x = Trace without any hardware qualifiers 10 = Trace using Windowed mode 11 = Trace using Start/Stop mode These two bits are valid only when PCTRACE_GLOBAL.EN is set to '1' Reset type: ERAD_RESET |
| 15-8 | RESERVED | R | 0h | Reserved |
| 7-0 | WINDOWED_INP_SEL | R/W | 0h | These bits decide which of the inputs will be selected to enable tracing.These inputs will be hooked up to the event outputs from the bus comparator module, counter module and other system events. The usage of these bits are relevant only in the Windowed mode of trace module. Pls refer to the device spec for complete list of signals Reset type: ERAD_RESET |
PCTRACE_QUAL2 is shown in Figure 17-41 and described in Table 17-40.
Return to the Summary Table.
Trace Qualifier register 2
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RESERVED | STOP_INP_SEL | ||||||||||||||
| R-0h | R/W-0h | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESERVED | START_INP_SEL | ||||||||||||||
| R-0h | R/W-0h | ||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-24 | RESERVED | R | 0h | Reserved |
| 23-16 | STOP_INP_SEL | R/W | 0h | These bits decide which of the inputs will be selected as the STOP event for trace. These inputs will be hooked up to the event outputs from the bus comparator module, counter module and other system events. The usage of these bits are relevant only in the Start/Stop mode of trace module. Pls refer to the device spec for complete list of signals Reset type: ERAD_RESET |
| 15-8 | RESERVED | R | 0h | Reserved |
| 7-0 | START_INP_SEL | R/W | 0h | These bits decide which of the inputs will be selected as the START event for trace. These inputs will be hooked up to the event outputs from the bus comparator module, counter module and other system events. The usage of these bits are relevant only in the Start/Stop mode of trace module. Pls refer to the device spec for complete list of signals Reset type: ERAD_RESET |
PCTRACE_LOGPC_SOFTENABLE is shown in Figure 17-42 and described in Table 17-41.
Return to the Summary Table.
PC when PC Trace was last enabled by software
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PC_SOFTENABLE | |||||||||||||||||||||||||||||||
| R-0h | |||||||||||||||||||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-0 | PC_SOFTENABLE | R | 0h | These bits reflect the value of PC when trace module enable bit was last written with '1' (PCTRACE_GLOBAL.EN).These registers are primarily used by ccs drivers while displaying the trace to give a logical start from where tracing was enabled. This register also gets cleared when INIT is performed via PCTRACE_GLOBAL.INIT Reset type: ERAD_RESET |
PCTRACE_LOGPC_SOFTDISABLE is shown in Figure 17-43 and described in Table 17-42.
Return to the Summary Table.
PC when PC Trace was last disabled by software
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PC_SOFTDISABLE | |||||||||||||||||||||||||||||||
| R-0h | |||||||||||||||||||||||||||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-0 | PC_SOFTDISABLE | R | 0h | These bits reflect the value of PC when trace module enable bit was last written with '0' (PCTRACE_GLOBAL.EN).These registers are primarily used by ccs drivers while displaying the trace to give a logical end to where tracing block was disabled. This register also gets cleared when INIT is performed via PCTRACE_GLOBAL.INIT Reset type: ERAD_RESET |
PCTRACE_BUFFER_BASE_y is shown in Figure 17-44 and described in Table 17-43.
Return to the Summary Table.
Trace Buffer Base address
Offset = 1000h + (y * 4h); where y = 0h to FFh
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
| PROGRAM_COUNTER | |||||||
| R-0h | |||||||
| 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| PROGRAM_COUNTER | |||||||
| R-0h | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| PROGRAM_COUNTER | |||||||
| R-0h | |||||||
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| PROGRAM_COUNTER | BLOCKED | ||||||
| R-0h | R-0h | ||||||
| Bit | Field | Type | Reset | Description |
|---|---|---|---|---|
| 31-1 | PROGRAM_COUNTER | R | 0h | Program Counter[31:1] value where discontinuity occurred Note: PC values are aligned for min 16-bit instruction size so bit 0 of program counter is always 0. 32 bit PC value will be {PCTRACE_BUFFER_BASE.PROGRAM_COUNTER,1'b0} Reset type: ERAD_RESET |
| 0 | BLOCKED | R | 0h | 1 = PROGRAM_COUNTER[31:1] is not valid due to security permissions 0 = PROGRAM_COUNTER[31:1] is valid Reset type: ERAD_RESET |