45. Debug support (DBG)

45.1 DBG introduction and main features

A comprehensive set of debug features is provided to support software development and system integration:

The debug features can be controlled via a JTAG/Serial-wire debug access port, using industry standard debugging tools. A trace port allows data to be captured for logging and analysis.

The following debug features are based on Arm ® CoreSight components.

The debug features are accessible by the debugger via the debug AP access ports.

Additional information can be found in the Arm ® documents referenced in Section 45.14 .

The following debug features are based on STMicroelectronics components

45.2 DBG functional description

45.2.1 DBG block diagram

Figure 522. Block diagram of debug support infrastructure

Block diagram of debug support infrastructure showing the internal architecture of the CPU Cortex-M33 and its debug components. The diagram includes the JTAG / Serial-wire port, Debug access port (DAP) with SWJ-DP, AHB-AP1, AHB-AP0, Core, DWT, BPU, ITM, TPIU, Trace port (TRACECK, TRACED[3:0], TRACESWO), MCU ROM table, System ROM table, bus mux, DBGMCU, CTI, ETM, and Processor ROM table. The DAP is connected to the JTAG/Serial-wire port and the AHB-AP1. The AHB-AP1 is connected to the Core and the DWT, BPU, and ITM. The ITM is connected to the TPIU, which is connected to the Trace port. The Core is connected to the AHB-AP0, which is connected to the System ROM table and the bus mux. The bus mux is connected to the DBGMCU. The CTI is connected to the Core and the ETM. The ETM is connected to the TPIU and the Processor ROM table.
Block diagram of debug support infrastructure showing the internal architecture of the CPU Cortex-M33 and its debug components. The diagram includes the JTAG / Serial-wire port, Debug access port (DAP) with SWJ-DP, AHB-AP1, AHB-AP0, Core, DWT, BPU, ITM, TPIU, Trace port (TRACECK, TRACED[3:0], TRACESWO), MCU ROM table, System ROM table, bus mux, DBGMCU, CTI, ETM, and Processor ROM table. The DAP is connected to the JTAG/Serial-wire port and the AHB-AP1. The AHB-AP1 is connected to the Core and the DWT, BPU, and ITM. The ITM is connected to the TPIU, which is connected to the Trace port. The Core is connected to the AHB-AP0, which is connected to the System ROM table and the bus mux. The bus mux is connected to the DBGMCU. The CTI is connected to the Core and the ETM. The ETM is connected to the TPIU and the Processor ROM table.

45.2.2 DBG pins and internal signals

Table 444. JTAG/Serial-wire debug port pins

Pin nameJTAG debug portSerial-wire debug portPin assignment
TypeDescriptionTypeDescription
JTMS/SWDIOIJTAG test mode selectIOSerial wire data in/outPA13
JTCK/SWCLKIJTAG test clockISerial wire clockPA14
JTDIIJTAG test data input--PA15
JTDO/TRACESWO (1)OJTAG test data output--PB3
nJTRSTIJTAG test reset--PB4

1. Debug access port JTDO and Trace port TRACESWO are multiplexed on a single device GPIO pin.

Table 445. Single-wire trace port pins

Pin nameTypeDescriptionPin assignment
TRACESWOOSingle wire trace asynchronous data outPB3 (1)

1. TRACESWO is multiplexed with JTDO. This means that single-wire trace is only available when using the Serial-wire debug interface, and not when using JTAG.

45.2.3 DBG reset and clocks

The debug port (SWJ-DP) is reset by a power-on reset and when waking up from Standby mode.

The debugger supplies the clock for the debug port via the debug interface pin JTCK/SWCLK. This clock is used to register the serial input data in both Serial-wire and JTAG modes, as well as to operate the state machines and internal logic of the debug port. This clock must therefore continue to toggle for several cycles after the end of an access, to ensure that the debug port returns to the idle state.

The SWJ-DP contains an asynchronous interface to the DAPCLK domain, which covers the rest of the SWJ-DP.

The DAPCLK is a gated version of the CPU bus clock hclk1.

The DAPCLK domain is enabled by the debugger using the CDBGPWRUPREQ bit in the DP_CTRLSTATR register. The clock must be enabled before the debugger can access any of the debug features on the device. The availability of the clock is reflected in the CDBGPWRUPACK bit in the DP_CTRLSTATR register. DAPCLK is disabled at power up, after OBL, and after a wake-up from Standby mode. DAPCLK must be disabled when the debugger is disconnected to avoid wasting energy.

The debug components included in the processor are clocked with the processor core clock hclk1.

45.2.4 DBG power domains

The debug components are located in the core power domain. This means that debugger connection is not possible in Standby mode. To avoid losing the connection when the device enters Standby mode, the power to the core can be maintained by setting a bit in the debug unit (DBGMCU). This also keeps the processor clocks active and hold off the reset, so that the debug session is maintained.

45.2.5 DBG low-power modes

The devices include power saving features that allow the core power domain to be switched off or clocks to be stopped when not required. If the power is switched off all debug components are inaccessible to the debugger. When the core is not clocked all debug components except the DBGMCU are inaccessible to the debugger. To avoid this, low-power mode emulation is implemented. If emulation is enabled, the device still enters low-power mode, but the clocks and power are maintained. In other words, the device behaves similar as if it is in low-power mode, but the debugger does not lose the connection to the CPU.

The low-power emulation mode is programmed in the DBGMCU. For more information refer to Section 45.13.4: Low-power mode emulation .

45.2.6 DBG security

The trace and debug components allow a high degree of access to the processor and system during product development. In order to protect user code and ensure that the debug features can not be used to alter or compromise the normal operation of the finished product, these features can be disabled or limited in scope. For example, secure software debug and trace can be disabled without preventing the debug of nonsecure code.

The following authentication signals are used by the device to determine which debug features are enabled or disabled:

For detailed information on the behavior of each component according to the state of the authentication signals, refer to the relevant component chapter or to the relevant Arm® technical documentation.

The state of the signals are set according to the readout protection (RDP) level Readout protection (RDP), as shown in Table 446 :

Table 446. Debug features control

RDP leveldbgenspidennidenspnidenDescription
01111Debug and trace is enabled whatever the state of the processor. The debugger access to secure memory is permitted.
0.5Debug and trace is enabled when the processor is in nonsecure state. The debugger access to secure memory is disabled.
11010Debug and trace is enabled when the processor is in nonsecure state. The debugger access to secure memory is disabled, as well as to the following areas: Flash memory, SRAM2, backup registers, ICACHE.
20000Debug and trace is disabled.

Note: Security features are only relevant when option bit TZEN = 1. If security features are disabled, the authentication signals are still set according to the RDP level, but since the processor and all memories are nonsecure, spniden and spiden are redundant.

The state of the authentication signals can be read from the DAUTHSTATUS register in the system control space (SCS) of the Cortex-M33.

The debugger access to secure areas (when permitted) must be performed using secure transactions from the AP, that is with the PROT[6] bit set in the AP_CSWR register.

The debugger access is disabled while the processor is booting from system Flash memory (RSS), whatever the RDP level.

45.2.7 Serial-wire and JTAG debug port

The Serial-wire and JTAG debug port (SWJ-DP) is a CoreSight component that implements an external access port for connecting debugging equipment.

The two following types of interface can be configured:

The two modes are mutually exclusive since they share the same I/O pins.

By default the JTAG-DP is selected after a system or a power-on reset. The five I/O pins are configured by hardware in debug alternative function mode.

The SWJ-DP incorporates pull-up resistors on JTDI, JTMS/SWDIO and nJTRST, as well as a pull-down resistor on JTCK/SWCLK.

A debugger can select the SW-DP by transmitting the following serial data sequence on JTMS/SWDIO:

... (50 or more ones) ..., 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, ... (50 or more ones) ...

JTCK/SWCLK must be cycled for each data bit.

In SW-DP mode, the unused JTAG pins JTDI, JTDO and nJTRST can be used for other functions.

Note: All SWJ port I/Os can be reconfigured to other functions by software but debugging is no longer possible.

45.2.8 JTAG debug port

The JTAG debug port (JTAG-DP) implements a TAP state machine (TAPSM) based on IEEE Std 1149.1-1990. The state machine controls two scan chains, one associated with an instruction register (IR) and the other one with a number of data registers (DR).

Figure 523. JTAG TAP state machine

Figure 523. JTAG TAP state machine diagram showing the state transitions for the JTAG interface.

The diagram illustrates the JTAG TAP state machine, which is a finite state machine with 16 states. The states are represented by hexagonal shapes, and transitions are indicated by arrows labeled with the JTAG Management Signal (JTMS) values: 0 or 1.

The states and their transitions are as follows:

MSv60366V1

Figure 523. JTAG TAP state machine diagram showing the state transitions for the JTAG interface.

The operation of the JTAG-DP is as follows:

  1. 1. When the TAPSM goes through the Capture-IR state, 0b0001 is transferred onto the instruction register (IR) scan chain. The IR scan chain is connected between JTDI and JTDO.
  2. 2. While the TAPSM is in the Shift-IR state, the IR scan chain shifts one bit for each rising edge of JTCK. This means that, on the first tick:
    • – The LSB of the IR scan chain is output on JTDO.
    • – Bit[n] of the IR scan chain is transferred to bit[n-1].
    • – The value on JTDI is transferred to the MSB of the IR scan chain.
  3. 3. When the TAPSM goes through the Update-IR state, the value scanned into the IR scan chain is transferred into the instruction register.
  4. 4. When the TAPSM goes through the Capture-DR state, a value is transferred from one of the data registers onto one of the DR scan chains, connected between JTDI and JTDO.
  5. 5. The value held in the instruction register determines which data register and associated DR scan chain are selected.
  6. 6. This data is then shifted while the TAPSM is in the Shift-DR state, in the same manner as the IR shift in the Shift-IR state.
  7. 7. When the TAPSM goes through the Update-DR state, the value scanned into the DR scan chain is transferred into the selected data register.
  8. 8. When the TAPSM is in the Run-Test/Idle state, no special actions occur. The IDCODE instruction is loaded in the instruction register.

When active, the nJTRST signal resets the state machine asynchronously to the Test-Logic-Reset state.

The data registers corresponding to the 4-bit IR instructions are listed in Table 447 .

Table 447. JTAG-DP data registers

IR instructionData registerScan chain lengthDescription
0000 to 0111(BYPASS)1Not implemented: BYPASS selected
1000ABORT35ABORT register
– Bits 34:1 = Reserved
– Bit 0 = APABORT: write 1 to generate an AP abort.
1001(BYPASS)1Reserved: BYPASS selected
1010DPACC35Debug port access register
Initiates the debug port and gives access to a debug port register.
When transferring data IN:
Bits 34:3 = DATA[31:0] = 32-bit data to transfer for a write request
Bits 2:1 = A[3:2] = 2-bit address of a debug port register
Bit 0 = RnW = Read request (1) or write request (0)
When transferring data OUT:
Bits 34:3 = DATA[31:0] = 32-bit data read following a read request
Bits 2:0 = ACK[2:0] = 3-bit Acknowledge
010 = OK/FAULT
001 = WAIT
OTHER = reserved

Table 447. JTAG-DP data registers (continued)

IR instructionData registerScan chain lengthDescription
1011APACC35Access port access register
Initiates an access port and gives access to an access port register.
When transferring data IN:
Bits 34:3 = DATA[31:0] = 32-bit data to shift in for a write request
Bits 2:1 = A[3:2] = 2-bit sub-address of an access port register
Bit 0 = RnW= Read request (1) or write request (0)
When transferring data OUT:
Bits 34:3 = DATA[31:0] = 32-bit data read following a read request
Bits 2:0 = ACK[2:0] = 3-bit Acknowledge
010 = OK/FAULT
001 = WAIT
OTHER = reserved
1100(BYPASS)1Reserved: BYPASS selected
1101(BYPASS)1Reserved: BYPASS selected
1110IDCODE32ID code
0x0BA0 4477: Cortex-M33 JTAG debug port ID code
1111BYPASS1Bypass
A single JTCK cycle delay is inserted between JTDI and JTDO.

Data registers are described in more detail in the Arm® Debug Interface Architecture Specification [1].

45.2.9 Serial-wire debug port

The Serial-wire debug (SWD) protocol uses the two following pins:

Serial data is transferred LSB first, synchronously with the clock.

A transfer comprises three phases:

  1. 1. packet request (8 bits) transmitted by the host (see Table 448 )
  2. 2. acknowledge response (3 bits) transmitted by the target (see Table 449 )
  3. 3. data transfer (33 bits) transmitted by the host (in case of a write) or target (in case of a read) (see Table 450 )

The data transfer only occurs if the acknowledge response is OK.

Between each phase, if the direction of the data is reversed, a single clock cycle turn-around time is inserted.

Table 448. Packet request
Bit fieldNameDescription
0StartMust be 1.
1APnDP0: DP register access - see Table 447 for a list of DP registers
1: AP register access - see Section 45.4: Access port
2RnW0: Write request
1: Read request
4:3A(3:2)Address field of the DP or AP registers
5ParitySingle bit parity of preceding bits
6Stop0
7ParkNot driven by host, must be read as 1 by the target.
Table 449. ACK response
Bit fieldNameDescription
2:0ACK– 000: FAULT
– 010: WAIT
– 100: OK
Table 450. Data transfer
Bit fieldNameDescription
31:0WDATA or RDATAWrite or read data
32ParitySingle bit parity of 32 data bits

In the case of a FAULT or WAIT ACK response from the target, the data transfer phase is canceled, unless overrun detection is enabled: in this case the data is ignored by the target (in the case of a write), or not driven (in the case of a read).

A line reset must be generated by the host when it is first connected, or following a protocol error. The line reset consists in 50 or more SWCLK cycles with SWDIO high, followed by two SWCLK cycles with SWDIO low.

For more details on the Serial-wire debug protocol, refer to the Arm® Debug Interface Architecture Specification [1] .

Note: The SWJ-DP implements SWD protocol version 2.

45.3 Debug port registers

Both SW-DP and JTAG-DP access the debug port (DP) registers listed in Table 451 .

The debugger accesses the DP registers as follows:

  1. 1. Program the A(3:2) field in the DPACC register, if using JTAG, with the register address within the bank. Program the RnW bit to select a read or write. In the case of a write, program the DATA field with the write data. If using SWD, the A(3:2) and RnW fields

are part of the packet request word sent to the SW-DP with the APnDP bit reset (see Table 448 ). The write data are sent in the data phase.

  1. To access one of the banked DP registers at address 0x4, the register number must first be written to the DP_SELECTR register at address 0x8. Any subsequent read or write to address 0x4 accesses the register corresponding to the content of the DP_SELECTR register.

45.3.1 DP identification register [alternate] (DP_PIDR)

Address offset: 0x00

Reset value: 0x0BE0 2477 (SW-DP), 0x0BE0 1477 (JTAG-DP)

Read only

31302928272625242322212019181716
REVISION[3:0]PARTNO[7:0]Res.Res.Res.MIN
rrrrrrrrrrrrr
1514131211109876543210
VERSION[3:0]DESIGNER[10:0]Res.
rrrrrrrrrrrrrrr

Bits 31:28 REVISION[3:0] : Revision code

0x0 (JTAG-DP)
0x0 (SW-DP)

Bits 27:20 PARTNO[7:0] : Part number for the debug port

0xBE

Bits 19:17 Reserved, must be kept at reset value.

Bit 16 MIN : Minimal debug port (MINDP) implementation

0x1 MINDP not implemented (transaction counter and pushed operations are supported)

Bits 15:12 VERSION[3:0] : DP architecture version

0x1 (JTAG-DP)
0x2 (SW-DP)

Bits 11:1 DESIGNER[10:0] : JEDEC designer identity code

0x23B Arm® JEDEC code

Bit 0 Reserved, must be kept at reset value.

45.3.2 DP abort register [alternate] (DP_ABORTR)

Address offset: 0x00

Reset value: 0x0000 0000

Write only

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.ORUNERRCLRWDERCLRSTKERCLRRes.DAPABORT
wwww

Bits 31:5 Reserved, must be kept at reset value.

Bit 4 ORUNERRCLR : Overrun error clear

0: No effect

1: Clear STICKYORUN bit in DP_CTRLSTATR

Bit 3 WDERCLR : Write data error clear

0: No effect

1: Clear WDATAERR bit in DP_CTRLSTATR

Bit 2 STKERCLR : Sticky error clear

0: No effect

1: Clear STICKYERR bit in DP_CTRLSTATR

Bit 1 Reserved, must be kept at reset value.

Bit 0 DAPABORT : Data AP abort

Aborts current AP transaction if an excessive number of WAIT responses are returned, indicating that the transaction is stalled.

0: No effect

1: Aborts the transaction.

45.3.3 DP control and status register (DP_CTRLSTATR)

Address offset: 0x04

and DP_SELECTR.DPBANKSEL = 0x0

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.CDBG
PWRU
PACK
CDBG
PWRU
PREQ
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
rrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.WDATA
ERR
READ
OK
STICK
YERR
Res.Res.Res.STICK
YORUN
ORUN
DETECT
rrrwrwrw

Bits 31:30 Reserved, must be kept at reset value.

Bit 29 CDBGPWRUPACK : See description in Section 45.2.7

0 = DAPCLK gated
1 = DAPCLK enabled

Bit 28 CDBGPWRUPREQ : Control of DAPCLK enable request signal

0 = Requests DAPCLK gating
1 = Requests DAPCLK enabled

Bits 27:8 Reserved, must be kept at reset value.

Bit 7 WDATAERR : Write data error (read only) in SW-DP

There is a parity or framing error on the data phase of a write, or a write that has been accepted by the DP is then discarded without being submitted to the AP.

This bit is reset by writing 1 to the DP_ABORTR.WDERRCLR bit.

0: No error

1: An error occurred.

This bit is reserved in JTAG-DP.

Bit 6 READOK : AP read response (read only) in SW-DP

Indicates the response to the last AP read access.

0: Read not OK

1: Read OK

This bit is reserved in JTAG-DP.

Bit 5 STICKYERR : Transaction error (read only in SW-DP, R/W in JTAG-DP)

Indicates that an error occurred in an AP transaction.

0: No error

1: An error occurred.

In SW-DP, STICKYERR bit is read only, reset by writing 1 to the DP_ABORTR.STKERRCLR bit.

In JTAG-DP, STICKYERR bit is read, cleared by writing a 1 to it.

Bits 4:2 Reserved, must be kept at reset value.

Bit 1 STICKYORUN : Overrun (read only in SW-DP, R/W in JTAG-DP)

Indicates that an overrun occurred (new transaction received before previous transaction completed). This bit is only set if the ORUNDETECT bit is set.

0: No overrun

1: An overrun occurred.

In SW-DP, STICKYORUN bit is read only, reset by writing 1 to the DP_ABORTR.ORUNERRCLR bit.

In JTAG-DP, STICKYORUN bit is read, cleared by writing a 1 to it.

Bit 0 ORUNDETECT : Overrun detection mode enable

0: Overrun detection disabled

1: Overrun detection enabled

In the event of an overrun, the STICKYORUN bit is set and subsequent transactions are blocked until the STICKYORUN bit is cleared.

Address offset: 0x04

and DP_SELECTR.DPBANKSEL = 0x1

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.TURNROUND [1:0]WIREMODE [1:0]Res.Res.Res.Res.Res.Res.
rrrr

Bits 31:10 Reserved, must be kept at reset value.

Bits 9:8 TURNROUND[1:0] : Tristate period for SWDIO

Bits 7:6 WIREMODE[1:0] : SW-DP SWDIO

Bits 5:0 Reserved, must be kept at reset value.

45.3.5 DP target identification register (DP_TARGETIDR)

Address offset: 0x04

and DP_SELECTR.DPBANKSEL = 0x2

Reset value: 0x04B0 0041

31302928272625242322212019181716
TREVISION[3:0]TPARTNO[15:4]
rrrrrrrrrrrrrrrr
1514131211109876543210
TPARTNO[3:0]TDESIGNER[10:0]Res.
rrrrrrrrrrrrrrr

Bits 31:28 TREVISION[3:0] : Target revision

Bits 27:12 TPARTNO[15:0] : Target part number

Bits 11:1 TDESIGNER[10:0] : Target designer JEDEC code.

Bit 0 Reserved, must be kept at reset value.

Address offset: 0x04

and DP_SELECTR.DPBANKSEL = 0x3

Reset value: 0x0000 0001

31302928272625242322212019181716
TINSTANCE[3:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
rrrr
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PROTSVN[3:0]
rrrr

Bits 31:28 TINSTANCE[3:0] : Target instance number

Defines the instance number for this device in a multi-drop system.

0x0: Instance number 0

Bits 27:4 Reserved, must be kept at reset value.

Bits 3:0 PROTSVN[3:0] : Serial-wire debug protocol version

0x1: Version 2

45.3.7 DP resend register (DP_EVENSTATR)

Address offset: 0x04

and DP_SELECTR.DPBANKSEL = 0x4

Reset value: 0x0000 0001

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.EA
r

Bits 31:1 Reserved, must be kept at reset value.

Bit 0 EA : Event status flag

0: Cortex-M33 processor halted

1: Cortex-M33 processor not halted.

45.3.8 DP resend register (DP_RESENR)

Address offset: 0x08

Reset value: 0x0000 0000

31302928272625242322212019181716
RESEND[31:16]
rrrrrrrrrrrrrrrr
1514131211109876543210
RESEND[15:0]
rrrrrrrrrrrrrrrr

Bits 31:0 RESEND[31:0] : Value returned by the last AP read or DP_RDBUFR read.
Used in the event of a corrupted read transfer.

45.3.9 DP access port select register (DP_SELECTR)

Address offset: 0x08

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
APSEL[3:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
wwww
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.APBANKSEL[3:0]DPBANKSEL[3:0]
wwwwwwww

Bits 31:28 APSEL[3:0] : Access port selection

Selects the access port for the next transaction.

0x0: AP0 - System debug access port

0x1: AP1 - Cortex-M33 debug access port

others: reserved

Bits 27:8 Reserved, must be kept at reset value.

Bits 7:4 APBANKSEL[3:0] : AP register bank selection

Selects the 4-word register bank on the active AP for the next transaction.

Bits 3:0 DPBANKSEL[3:0] : DP register bank selection

Selects the register at address 0x4 of the debug port.

0x0: DP_CTRLSTATR

0x1: DP_DLCR

0x2: DP_TARGETIDR

0x3: DP_DLPIDR

0x4: DP_EVENTSTAT

others: reserved

45.3.10 DP read buffer register (DP_BUFFR)

Address offset: 0x0C

Reset value: 0x0000 0000

31302928272625242322212019181716
RDBUFF[31:16]
rrrrrrrrrrrrrrrr
1514131211109876543210
RDBUFF[15:0]
rrrrrrrrrrrrrrrr

Bits 31:0 RDBUFF[31:0] : Contains the value returned by the last AP read access.

The value returned by an AP read access can either be obtained using a second read access to the same address, which initiates a new transaction on the corresponding bus, or else it can be read from this register, in which case no new AP transaction occurs.

45.3.11 DP register map and reset values

These registers are not on the CPU memory bus and are only accessed through SW-DP and JTAG-DP debug interface.

The debug port address is 2-bit wide, defined in the JTAG-DP register DPACC or SW-DP packet request A[3:2] field.

Table 451. DP register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x00DP_PIDRREVISION[3:0]PARTNO[7:0]Res.Res.Res.MINVERSION[3:0]DESIGNER[10:0]Res.
Reset value00001011111100XXXX010000111011
0x00DP_ABORTRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.00000
Reset value00000
0x04 (1)DP_CTRLSTATRRes.Res.00Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WDATAERRREADOKSTICKYERRRes.Res.Res.Res.STICKYORUNORUNDETECT
Reset value0000000
0x04 (2)DP_DLCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TURNROUND[1:0]WIREMODE[1:0]Res.Res.Res.Res.Res.Res.
Reset value0000

Table 451. DP register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x04 (3)DP_TARGETIDRTREV[15:0]TPARTNO[15:0]Res.
Reset value00000100101110000000000001000000
0x04 (4)DP_DLPIDRTINSTANCE[3:0]PROTSVN[3:0]
Reset value0000Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.0
0x04 (5)DP_EVENTSTATRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.EA
Reset value0
0x08DP_RESENDRRESEND[31:0]
Reset value0000000000000000000000000000000
0x08DP_SELECTRAPSEL[3:0]DPBANKSEL[3:0]
Reset valueXXXXX
0x0CDP_BUFFRRDBUFF[31:0]
Reset value0000000000000000000000000000000
  1. 1. DP_SELECTR.DPBANKSEL = 0x0.
  2. 2. DP_SELECTR.DPBANKSEL = 0x1.
  3. 3. DP_SELECTR.DPBANKSEL = 0x2.
  4. 4. DP_SELECTR.DPBANKSEL = 0x3.
  5. 5. DP_SELECTR.DPBANKSEL = 0x4

45.4 Access port

There are two access ports (AP) attached to the DP.

45.4.1 Access port registers

The access ports are of MEM-AP type: the debug and trace component registers are mapped in the address space of the associated bus.

An AP is seen by the debugger as a set of 32-bit registers organized in banks of four registers each. Some of these registers are used to configure or monitor the AP itself, while others are used to perform a transfer on the bus. The AP registers are listed in Table 452 .

The address of the AP registers is composed of the following fields:

The content of the APSEL[3:0] defines which MEM-AP is being accessed.

The debugger can access the AP registers as follows:

  1. 1. Program in the APSEL[3:0] field to choose the AP and the APBANKSEL[3:0] field to select the register bank to be accessed.
  2. 2. Program the A(3:2) field in the APACC register, if using JTAG, with the register address within the bank. Program the RnW bit to select a read or write. In the case of a write, program the DATA field with the write data. If using SWD, the A(3:2) and RnW fields are part of the packet request word sent to the SW-DP with the APnDP bit set (see Table 448 ). The write data is sent in the data phase.

The debugger can access the memory mapped debug component registers through the MEM-AP registers (using the above AP register access procedure) as follows:

  1. 1. Program the transaction target address in the AP_TAR register.
  2. 2. Program the AP_CSWR register, if necessary, with the transfer parameters (AddrInc for example).
  3. 3. Write to or read from the AP_DRWR register to initiate a bus transaction at the address held in the AP_TAR register. Alternatively, a read or write to the AP_BDxR register triggers an access to address \( AP\_TAR[31:4] + x \) (allowing up to four consecutive addresses to be accessed without changing the address in the AP_TAR register).

For more detailed information on the MEM-AP, refer to the Arm® Debug Interface Architecture Specification [1] .

45.4.2 AP control/status word register (APx_CSWR) (x = 0 to 1)

Address offset: 0x00

Reset value: 0x0100 00X0

31302928272625242322212019181716
Res.PROT6Res.Res.PROT[3:0]Res.Res.Res.Res.Res.Res.Res.Res.
rwrwrwrwr
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.DBG STATUSADDRINC[1:0]Res.SIZE[2:0]
rrwrwrwrwrw

Bit 31 Reserved, must be kept at reset value.

Bit 30 PROT6 : Secure transfer protection bit [6]

This field sets protection attribute HPROT[6] of the AP bus transfer.

0: secure transfer

1: nonsecure transfer

Bits 29:28 Reserved, must be kept at reset value.

Bits 27:24 PROT[3:0] : Bus transfer protection

This field sets protection attribute HPROT[3:0] of the AP bus transfer.

0bXXX1: data transfer

0bXX0X: unprivileged transfer

0bXX1X: privileged transfer

0bX0XX: non-bufferable

0bX1XX: bufferable

0b0XXX: non-shareable, no look-up non-modifiable

0b1XXX: sharable, look-up, modifiable

Bits 23:7 Reserved, must be kept at reset value.

Bit 6 DBGSTATUS : Device enable (DEVICEEN) status

Indicates whether the Cortex-M33 AP bus can be accessed by the debugger. This bit reflects the state of dbgen.

0: AP AHB bus transfers blocked.

1: AP AHB bus transfers granted.

Bits 5:4 ADDRINC[1:0] : Auto-increment mode

Defines whether AP_TAR address is automatically incremented after a transaction.

0x0: No auto-increment

0x1: Address is incremented by the size in bytes of the transaction (SIZE field).

others: reserved

Bit 3 Reserved, must be kept at reset value.

Bits 2:0 SIZE[2:0] : Size of next memory access transaction

0x0: byte (8-bit)

0x1: halfword (16-bit)

0x2: word (32-bit)

others: reserved

45.4.3 AP transfer address register (APx_TAR) (x = 0 to 1)

Address offset: 0x04

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
TA[31:16]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
TA[15:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:0 TA[31:0] : Address of current transfer

45.4.4 AP data read/write register (APx_DRWR) (x = 0 to 1)

Address offset: 0x0C

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
TD[31:16]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
TD[15:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:0 TD[31:0] : Data of current transfer

45.4.5 AP banked data registers y (APx_BDyR) (x = 0 to 1)

Address offset: 0x10 + 0x4 * y, (y = 0 to 3)

Reset value: 0x0000 0000

31302928272625242322212019181716
TBD[31:16]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
TBD[15:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:0 TBD[31:0] : Banked data of current transfer to address in AP_TAR

AP_TAR + AP_BDnR address [3:2] + 0b00

The auto address incrementing is not performed on AP_BD[3:0]R.

Banked transfers are only supported for word transfers.

45.4.6 AP configuration register (APx_CFGR) (x = 0 to 1)

Address offset: 0xF4

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.LDLABE
rrr

Bits 31:3 Reserved, must be kept at reset value.

Bit 2 LD : Large data

0: Data not longer than 32-bits supported.

Bit 1 LA : Long address

0: Physical addresses not longer than 32-bits supported.

Bit 0 BE : Big-endian

0: only little-endian supported.

45.4.7 AP base address register (APx_BASER) (x = 0 to 1)

Address offset: 0xF8

Reset value: Block 0: 0xE008 0003

Reset value: Block 1: 0xE00F E003

31302928272625242322212019181716
BASEADDR[31:16]
rrrrrrrrrrrrrrrr
1514131211109876543210
BASEADDR[15:12]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FORM
AT
ENTRY
PRESE
NT
rrrrrr

Bits 31:12 BASEADDR[31:12] : Base address (bits 31 to 12) of ROM table for the AP

The 12 LSBs are zero since the ROM table must be aligned on a 4-Kbyte boundary.

AP0: 0xE0080 (system ROM table)

AP1: 0xE00FE (MCU ROM table)

Bits 11:2 Reserved, must be kept at reset value.

Bit 1 FORMAT : Base address register format

1: Arm ® debug interface v5

Bit 0 ENTRYPRESENT : Debug components presence

Indicates that debug components are present on the access port bus.

1: debug components are present

45.4.8 AP identification register (APx_IDR) (x = 0 to 1)

Address offset: 0xFC

Reset value: 0x1477 0015

31302928272625242322212019181716
REVISION[3:0]JEDECBANK[3:0]JEDECCODE[6:0]CLASS
[3]
rrrrrrrrrrrrrrrr
1514131211109876543210
CLASS[2:0]ResResResResResVARIANT[3:0]TYPE[3:0]
rrrrrrrrrrr

Bits 31:28 REVISION[3:0] : Revision

0x1: r0p1

Bits 27:24 JEDECBANK[3:0] : JEDEC bank

0x4: Arm ®

Bits 23:17 JEDECCODE[6:0] : JEDEC code

0x3B: Arm ®

Bits 16:13 CLASS[3:0] : Memory access port

0x8: MEM_AP Standard register map

Bits 12:8 Reserved, must be kept at reset value.

Bits 7:4 VARIANT[3:0] : AP variant

0x1: AHB-AP

Bits 3:0 TYPE[3:0] : AP type

0x5: AHB5

45.4.9 Access port register map and reset values

These registers are not on the CPU memory bus and are only accessed through SW-DP and JTAG-DP debug interface.

The access port address is 8-bit wide, defined by DP_SELECTR.APBANKSEL[3:0] field and by JTAG-DP register DPACC or SW-DP packet request A[3:2] field.

Table 452. AP register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x00AP1_CSWRRes.SPROT[6]Res.Res.PROT[3:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DBGSTATUSADDRINC[1:0]Res.SIZE[2:0]
Reset value00001X00000
0x04APx_TARTA[31:0]
Reset value00000000000000000000000000000000
0x08ReservedReserved
0x0CAPx_DRWRTD[31:0]
Reset value00000000000000000000000000000000
0x10APx_BD0RTBD[31:0]
Reset value00000000000000000000000000000000
0x14APx_BD1RTBD[31:0]
Reset value00000000000000000000000000000000
0x18APx_BD2RTBD[31:0]
Reset value00000000000000000000000000000000
0x1CAPx_BD3RTBD[31:0]
Reset value00000000000000000000000000000000
0x20 to 0xF0ReservedReserved
0xF4APx_CFGRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.LDLABE
Reset value000
0xF8AP0_BASERBASEADDR[31:12]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FORMATENTRYPRESENT
Reset value1110000000001000000011
0xF8AP1_BASERBASEADDR[31:12]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FORMATENTRYPRESENT
Reset value1110000000001111110011
0xFCAPx_IDRREVISION[3:0]JEDECBANK[3:0]JEDECCODE[6:0]CLASS[3:0]Res.Res.Res.Res.Res.VARIANT[3:0]TYPE[3:0]
Reset value000101000111011100000010101

45.5 System debug AP0 features

The system debug subsystem integrates the following features accessible through the AP0:

45.5.1 System debug ROM table

The system debug ROM table is a CoreSight component that contains the base addresses of all the debug components accessible via the AP0. This table allows a debugger to discover the topology of the debug system automatically.

There is one ROM table in the system debug sub-system.

  1. 1. The system debug ROM table is pointed to by the AP0_BASER register. It contains the base-address pointer for the DBGMCU.

The system debug ROM table (see Table 453 ) occupies a 4-Kbyte, 32-bit wide chunk of address space, from 0xE008 0000 to 0xE008 0FFC.

Table 453. System debug ROM table

Address offset in ROM tableComponent nameComponent base addressComponent address offsetSize (Kbytes)Entry
0x000DBGMCU0xE004 40000xFFFC 400040xFFFC 4003
0x004Top of table---0x0000 0000
0x00C to 0xFC8Reserved---0x0000 0000
0xFCC to 0xFFCROM table registers---See Table 457

The CoreSight topology for the debug components in the system debug sub-system is shown in Figure 524 .

Figure 524. AP0: CoreSight topology

Figure 524: AP0: CoreSight topology diagram. The diagram shows the AHB-AP0 base register (0xF8) pointing to the System debug ROM table at 0xE008 0000. The ROM table contains entries for the MCU debug (DBGMCU) component at 0xE004 4000. The DBGMCU component includes a Register file base, PIDR4, and CIDR3 registers. The ROM table itself contains entries for the Top of table, PIDR4, and CIDR3 registers.

The diagram illustrates the CoreSight topology for the debug components in the system debug sub-system. It shows the AHB-AP0 base register (0xF8) pointing to the System debug ROM table at 0xE008 0000. The ROM table contains entries for the MCU debug (DBGMCU) component at 0xE004 4000. The DBGMCU component includes a Register file base, PIDR4, and CIDR3 registers. The ROM table itself contains entries for the Top of table, PIDR4, and CIDR3 registers.

graph TD
    AHB_AP0[AHB-AP0] -- "Base register (0xF8) Offset: 0xE008 0000" --> ROM_Table[System debug ROM table @0xE008 0000 debugger]
    ROM_Table --> ROM_Entries[ROM Table Entries]
    ROM_Entries --> DBGMCU[MCU debug (DBGMCU) @0xE004 4000 debugger]
    DBGMCU --> DBGMCU_Regs[DBGMCU Registers]
  

ROM Table Entries:

DBGMCU Registers:

MS55653V1

Figure 524: AP0: CoreSight topology diagram. The diagram shows the AHB-AP0 base register (0xF8) pointing to the System debug ROM table at 0xE008 0000. The ROM table contains entries for the MCU debug (DBGMCU) component at 0xE004 4000. The DBGMCU component includes a Register file base, PIDR4, and CIDR3 registers. The ROM table itself contains entries for the Top of table, PIDR4, and CIDR3 registers.

45.5.2 System debug memory type register (SYSROM_MEMTYPER)

Address offset: 0xFCC

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SYSTM
M
r

Bits 31:1 Reserved, must be kept at reset value.

Bit 0 SYSTMEM : system memory

0: No system memory present on this bus

45.5.3 System debug CoreSight peripheral identity register 4 (SYSROM_PIDR4)

Address offset: 0xFD0

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.F4KCOUNT[3:0]JEP106CON[3:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 F4KCOUNT[3:0] : Register file size

0x0: Register file occupies a single 4-Kbyte region.

Bits 3:0 JEP106CON[3:0] : JEP106 continuation code

0x0: STMicroelectronics JEDEC continuation code

45.5.4 System debug CoreSight peripheral identity register 0 (SYSROM_PIDR0)

Address offset: 0xFE0

Reset value: 0x0000 0092

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PARTNUM[7:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PARTNUM[7:0] : Part number bits [7:0]

0x92: STM32WBA6xxx

45.5.5 System debug CoreSight peripheral identity register 1 (SYSROM_PIDR1)

Address offset: 0xFE4

Reset value: 0x0000 0004

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.JEP106ID[3:0]PARTNUM[11:8]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 JEP106ID[3:0] : JEP106 identity code bits [3:0]

0x0: MCU ROM: STMicroelectronics JEDEC code

Bits 3:0 PARTNUM[11:8] : Part number bits [11:8]

0x4: MCU ROM: STM32WBA6xxx

45.5.6 System debug CoreSight peripheral identity register 2 (SYSROM_PIDR2)

Address offset: 0xFE8

Reset value: 0x0000 000A

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.REVISION[3:0]JEDECJEP106ID[6:4]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 REVISION[3:0] : Component revision number

0x0: rev r0p0

Bit 3 JEDEC : JEDEC assigned value

1: Designer ID specified by JEDEC

Bits 2:0 JEP106ID[6:4] : JEP106 identity code bits [6:4]

0x2: STMicroelectronics JEDEC code

45.5.7 System debug CoreSight peripheral identity register 3 (SYSROM_PIDR3)

Address offset: 0xFEC

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.REVAND[3:0]CMOD[3:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 REVAND[3:0] : Metal fix version

0x0: No metal fix

Bits 3:0 CMOD[3:0] : Customer modified

0x0: No customer modifications

45.5.8 System debug CoreSight component identity register 0 (SYSROM_CIDR0)

Address offset: 0xFF0

Reset value: 0x0000 000D

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[7:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[7:0] : Component ID bits [7:0]

0x0D: Common ID value

45.5.9 System debug CoreSight peripheral identity register 1 (SYSROM_CIDR1)

Address offset: 0xFF4

Reset value: 0x0000 0010

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.CLASS[3:0]PREAMBLE[11:8]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 CLASS[3:0] : Component ID bits [15:12] - component class

0x1: ROM table component

Bits 3:0 PREAMBLE[11:8] : Component ID bits [11:8]

0x0: Common ID value

45.5.10 System debug CoreSight component identity register 2 (SYSROM_CIDR2)

Address offset: 0xFF8

Reset value: 0x0000 0005

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[19:12]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[19:12] : Component ID bits [23:16]

0x05: Common ID value

45.5.11 System debug CoreSight component identity register 3 (SYSROM_CIDR3)

Address offset: 0xFFC

Reset value: 0x0000 00B1

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[27:20]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[27:20] : Component ID bits [31:24]

0xB1: Common ID value

45.5.12 System debug ROM table register map and reset values

The system ROM table is accessed by the debugger through AP0 at address range 0xE008 0000 to 0xE008 0FFC.

Table 454. System debug ROM register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFCCROM_MEMTYPEResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResRes0
Reset value0
0xFD0SYSROM_PIDR4ResResResResResResResResResResResResResResResResResResResResResResResResResF4KCOUNT
[3:0]
JEP106CON
[3:0]
Reset value0000000
0xFD4-
0xFDC
ReservedReserved.
0xFE0SYSROM_PIDR0ResResResResResResResResResResResResResResResResResResResResResResResResPARTNUM[7:0]
Reset value1001001
0xFE4SYSROM_PIDR1ResResResResResResResResResResResResResResResResResResResResResResResResJEP106ID
[3:0]
PARTNUM
[11:8]
Reset value0000010
0xFE8SYSROM_PIDR2ResResResResResResResResResResResResResResResResResResResResResResResResREVISION
[3:0]
JEDECJEP106ID
[6:4]
Reset value0000101
0xFECSYSROM_PIDR3ResResResResResResResResResResResResResResResResResResResResResResResResREVAND[3:0]CMOD[3:0]
Reset value0000000
0xFF0SYSROM_CIDR0ResResResResResResResResResResResResResResResResResResResResResResResResPREAMBLE[7:0]
Reset value0000110
0xFF4SYSROM_CIDR1ResResResResResResResResResResResResResResResResResResResResResResResResCLASS[3:0]PREAMBLE
[11:8]
Reset value0001000
0xFF8SYSROM_CIDR2ResResResResResResResResResResResResResResResResResResResResResResResResPREAMBLE[19:12]
Reset value0000010
0xFFCSYSROM_CIDR3ResResResResResResResResResResResResResResResResResResResResResResResResPREAMBLE[27:20]
Reset value1011001

Refer to Section 45.5: System debug AP0 features for the register boundary addresses.

45.6 Cortex-M33 AP1 features

The Cortex-M33 subsystem integrates the following features accessible through the AP1:

45.6.1 CPU ROM tables

The ROM tables are CoreSight components that contain the base addresses of all the debug components accessible via the AP1. These tables allow the debugger to discover the CoreSight topology of the system automatically.

There are two ROM tables on AP1 in the Cortex-M33 sub-system.

  1. 1. The MCU ROM table is pointed to by the AP_BASER register in the AP1. It contains the base-address pointers for the processor ROM table and for the TPIU and DBGMCU.
  2. 2. The Processor ROM table contains the base-address pointer for the system control space (SCS) registers, that allow the debugger to identify the CPU core, as well as for the BPU, ITM and CTI.

The MCU ROM table occupies a 4-Kbyte, 32-bit wide chunk of address space, at base address 0xE00F E000.

Table 455. MCU ROM table

Address offset in ROM tableComponent nameComponent base addressComponent address offsetSize (Kbytes)Entry
0x000Processor ROM table0xE00F F0000x0000 100040x0000 1003
0x004TPIU0xE004 00000xFFF4 200040xFFF4 2003
0x008DBGMCU0xE004 40000xFFF4 600040xFFF4 6003
0x00CReserved---0x1FF0 2002
0x010Top of table---0x0000 0000
0x014 to 0xFC8Reserved---0x0000 0000
0xFCC to 0xFFCROM table registers---See Table 457

The processor ROM table occupies a 4-Kbyte, 32-bit wide chunk of address space, at base address 0xE00F F000.

Table 456. Processor ROM table

Address in ROM tableComponent nameComponent base addressComponent address offsetSize (Kbytes)Entry
0x000SCS0xE000 E0000xFFF0 F00040xFFF0 F003
0x004DWT0xE000 10000xFFF0 200040xFFF0 2003
0x008BPU0xE000 20000xFFF0 300040xFFF0 3003
0x00CITM0xE000 00000xFFF0 100040xFFF0 1003
0x010Reserved---0xFFF4 1002
0x014ETM0xE004 10000xFFF4 200040xFFF4 2003
0x018CTI0xE004 20000xFFF4 300040xFFF4 3003
0x01CReserved---0xFFF4 4002
0x020Top of table---0x0000 0000
0x024 to 0xFC8Reserved---0x0000 0000
0xFCC to 0xFFCROM table registers---See Table 457

The CoreSight topology for the debug components in the CPU sub-system is shown in Figure 525 .

Figure 525. CPU CoreSight topology

Figure 525. CPU CoreSight topology diagram showing the interconnects between AHB-AP1, Processor ROM table, System control space (SCS), MCU ROM table, Trace port (TPIU), Debug MCU (DBGMCU), Breakpoint unit (BPU), Embedded trace (ETM), Data watchpoint/trace (DWT), Instrumentation trace (ITM), and Cross trigger (CTI).

The diagram illustrates the CoreSight topology for debug components in the CPU sub-system. It shows the following components and their connections:

MSV75408V1

Figure 525. CPU CoreSight topology diagram showing the interconnects between AHB-AP1, Processor ROM table, System control space (SCS), MCU ROM table, Trace port (TPIU), Debug MCU (DBGMCU), Breakpoint unit (BPU), Embedded trace (ETM), Data watchpoint/trace (DWT), Instrumentation trace (ITM), and Cross trigger (CTI).

45.6.2 MCU and processor ROM memory type register (ROM_MEMTYPER)

Address offset: 0xFCC

Reset value: 0x0000 0001

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SYSMEM
r

Bits 31:1 Reserved, must be kept at reset value.

Bit 0 SYSTEM : System memory

1: System memory present on this bus

45.6.3 MCU and processor ROM CoreSight peripheral identity register 4 (ROM_PIDR4)

Address offset: 0xFD0

Reset value: 0x0000 0000 (MCU ROM)

Reset value: 0x0000 0004 (processor ROM)

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.F4KCOUNT[3:0]JEP106CON[3:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 F4KCOUNT[3:0] : Register file size

0x0: Register file occupies a single 4-Kbyte region.

Bits 3:0 JEP106CON[3:0] : JEP106 continuation code

MCU ROM:

0x0: STMicroelectronics JEDEC continuation code

Processor ROM:

0x4: Arm® JEDEC continuation code

45.6.4 MCU and processor ROM CoreSight peripheral identity register 0 (ROM_PIDR0)

Address offset: 0xFE0

Reset value: 0x0000 0092 (MCU ROM)

Reset value: 0x0000 00C9 (processor ROM)

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PARTNUM[7:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PARTNUM[7:0] : Part number bits [7:0]

MCU ROM:
0x92: STM32WBA6xxx
processor ROM:
0xC9: Cortex-M33

45.6.5 MCU and processor ROM CoreSight peripheral identity register 1 (ROM_PIDR1)

Address offset: 0xFE4

Reset value: 0x0000 0004 (MCU ROM)

Reset value: 0x0000 00B4 (processor ROM)

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.JEP106ID[3:0]PARTNUM[11:8]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 JEP106ID[3:0] : JEP106 identity code bits [3:0]

0x0: MCU ROM: STMicroelectronics JEDEC code
0xB: processor ROM: Arm® JEDEC code

Bits 3:0 PARTNUM[11:8] : Part number bits [11:8]

0x4: MCU ROM: STM32WBA6xxx
0x4: processor ROM: Cortex-M33

45.6.6 MCU and processor ROM CoreSight peripheral identity register 2 (ROM_PIDR2)

Address offset: 0xFE8

Reset value: 0x0000 000A (MCU ROM)

Reset value: 0x0000 000B (processor ROM)

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.REVISION[3:0]JEDECJEP106ID[6:4]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 REVISION[3:0] : Component revision number

0x0: rev r0p0

Bit 3 JEDEC : JEDEC assigned value

1: Designer ID specified by JEDEC

Bits 2:0 JEP106ID[6:4] : JEP106 identity code bits [6:4]

MCU ROM:

0x2: STMicroelectronics JEDEC code

processor ROM:

0x3: Arm® JEDEC code

45.6.7 MCU and processor ROM CoreSight peripheral identity register 3 (ROM_PIDR3)

Address offset: 0xFEC

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.
REVAND[3:0]CMOD[3:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 REVAND[3:0] : Metal fix version

0x0: No metal fix

Bits 3:0 CMOD[3:0] : Customer modified

0x0: No customer modifications

45.6.8 MCU and processor ROM CoreSight component identity register 0 (ROM_CIDR0)

Address offset: 0xFF0

Reset value: 0x0000 000D

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.
PREAMBLE[7:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[7:0] : Component ID bits [7:0]

0x0D: Common ID value

45.6.9 MCU and processor ROM CoreSight peripheral identity register 1 (ROM_CIDR1)

Address offset: 0xFF4

Reset value: 0x0000 0010

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.CLASS[3:0]PREAMBLE[11:8]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 CLASS[3:0] : Component ID bits [15:12] - component class
0x1: ROM table component

Bits 3:0 PREAMBLE[11:8] : Component ID bits [11:8]
0x0: Common ID value

45.6.10 MCU and processor ROM CoreSight component identity register 2 (ROM_CIDR2)

Address offset: 0xFF8

Reset value: 0x0000 0005

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[19:12]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[19:12] : Component ID bits [23:16]
0x05: Common ID value

45.6.11 MCU and processor ROM CoreSight component identity register 3 (ROM_CIDR3)

Address offset: 0xFFC

Reset value: 0x0000 00B1

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[27:20]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[27:20] : Component ID bits [31:24]

0xB1: Common ID value

45.6.12 MCU and processor ROM tables register map and reset values

The MCU ROM table is accessed by the debugger through AP1 at address range 0xE00F E000 to 0xE00F EFFC.

The processor ROM table is accessed by the debugger through AP1 at address range 0xE00F F000 to 0xE00F FFFC.

Table 457. ROM table register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFCCROM_MEMTYPERResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResSYSTEM
Reset value1
0xFD0ROM_PIDR4ResResResResResResResResResResResResResResResResResResResResResResResResF4KCOUNT [3:0]JEP106CON [3:0]
MCU Reset value00000000
processor Reset value00000100
0xFD4-0xFDCReservedReserved.
0xFE0ROM_PIDR0ResResResResResResResResResResResResResResResResResResResResResResResResPARTNUM[7:0]
MCU Reset value10010010
processor Reset value11001001
0xFE4ROM_PIDR1ResResResResResResResResResResResResResResResResResResResResResResResResJEP106ID [3:0]PARTNUM [11:8]
MCU Reset value00000100
processor Reset value10110100
0xFE8ROM_PIDR2ResResResResResResResResResResResResResResResResResResResResResResResResREVISION [3:0]JEDECJEP106ID [6:4]
MCU Reset value0000100
processor Reset value0000101
0xFECROM_PIDR3ResResResResResResResResResResResResResResResResResResResResResResResResREVAND[3:0]CMOD[3:0]
Reset value00000000
0xFF0ROM_CIDR0ResResResResResResResResResResResResResResResResResResResResResResResResPREAMBLE[7:0]
Reset value00001101
0xFF4ROM_CIDR1ResResResResResResResResResResResResResResResResResResResResResResResResCLASS[3:0]PREAMBLE [11:8]
Reset value00010000
0xFF8ROM_CIDR2ResResResResResResResResResResResResResResResResResResResResResResResResPREAMBLE[19:12]
Reset value00000101
0xFFCROM_CIDR3ResResResResResResResResResResResResResResResResResResResResResResResResPREAMBLE[27:20]
Reset value10110001

Refer to Section 45.6: Cortex-M33 AP1 features for the register boundary addresses.

45.7 Data watchpoint and trace unit (DWT)

The DWT provides four comparators that can be used as one of the following functions:

It also contains counters for:

A DWT comparator compares the value held in its DWT_COMPxR registers with one of the following:

For address matching, the comparator can use a mask to match a range of addresses.

On a successful match, the comparator generates one of the following:

A watchpoint debug event either generates a DebugMonitor exception or causes the processor to halt execution and enter Debug state.

For more details on how to use the DWT, refer to the Arm ® v8-M Architecture Reference Manual [3].

45.7.1 DWT control register (DWT_CTRLR)

Address offset: 0x000

Reset value: 0x4000 0000

31302928272625242322212019181716
NUMCOMP[3:0]NOTRCPKTNOEXTTRIGNOCYCCNTNOPRFCNTCYCDISSCYCEVTENAFOLDEVTENALSUEVTENASLEEPEVTENAEXCEVTENACPIEVENAEXCTRCEVENA
rrrrrrrrrwrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.PCSAMPLENASYNCTAP[1:0]CYCTAPPOSTINIT[3:0]POSTPRESET[3:0]CYCCNTENA
rwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:28 NUMCOMP[3:0] : Number of comparators implemented (read only)

0x4: Four comparators

Bit 27 NOTRCPKT : Trace sampling and exception tracing support (read only)

0: Supported

Bit 26 NOEXTTRIG : External match signal, CMPMATCH support (read only)

0: Supported

Bit 25 NOCYCCNT : Cycle counter support (read only)

0: Supported

Bit 24 NOPRFCNT : Profiling counter support (read only)

0: Supported

Bit 23 CYCDISS : Cycle counter disable secure

Controls whether the cycle counter is disabled in secure mode

0: No effect

1: Disabled incrementing the cycle counter when the processor is in secure mode

Bit 22 CYCEVTENA : Enable for POSTCNT underflow event counter packet generation

0: Disabled

1: Enabled

Bit 21 FOLDEVTENA : Enable for folded instruction counter overflow event generation

0: Disabled

1: Enabled

Bit 20 LSUEVTENA : Enable for LSU counter overflow event generation

0: Disabled

1: Enabled

Bit 19 SLEEPEVTENA : Enable for sleep counter overflow event generation

0: Disabled

1: Enabled

Bit 18 EXCEVTENA : Enable for exception overhead counter overflow event generation

0: Disabled

1: Enabled

Bit 17 CPIEVTENA : Enable for CPI counter overflow event generation
0: Disabled
1: Enabled

Bit 16 EXCTRCENA : Enable for exception trace generation
0: Disabled
1: Enabled

Bits 15:13 Reserved, must be kept at reset value.

Bit 12 PCSAMPLENA : Enable for POSTCNT counter used as a timer for periodic PC sample packet generation
0: Disabled
1: Enabled

Bits 11:10 SYNCTAP[1:0] : synchronization packet counter tap

Selects the position of the synchronization packet counter tap on the CYCCNT counter. This determines the synchronization packet rate.
00: Disabled. No synchronization packets
01: Tap at CYCCNT[24]
10: Tap at CYCCNT[26]
11: Tap at CYCCNT[28]

Bit 9 CYCTAP : Selects the position of the POSTCNT tap on the CYCCNT counter.
0: Tap at CYCCNT[6]
1: Tap at CYCCNT[10]

Bits 8:5 POSTINIT[3:0] : initial value of the POSTCNT counter

Writes to this field are ignored if POSTCNT counter is enabled (CYCEVTENA or PCSAMPLENA must be reset prior to writing POSTINIT).

Bits 4:1 POSTPRESET[3:0] : Reloads value of the POSTCNT counter.

Bit 0 CYCCNTENA : Enable for CYCCNT counter
0: Disabled
1: Enabled

45.7.2 DWT cycle count register (DWT_CYCCNTR)

Address offset: 0x004

Reset value: 0x0000 0000

31302928272625242322212019181716
CYCCNT[31:16]
rrrrrrrrrrrrrrrr
1514131211109876543210
CYCCNT[15:0]
rrrrrrrrrrrrrrrr

Bits 31:0 CYCCNT[31:0] : processor clock cycle counter

45.7.3 DWT CPI count register (DWT_CPICNTR)

Address offset: 0x008

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.CPICNT[7:0]
rwrwrwrwrwrwrwrw

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 CPICNT[7:0] : CPI counter

Counts additional cycles required to execute multi-cycle instructions (except those recorded by DWT_LSUCNTR) and counts any instruction fetch stalls.

45.7.4 DWT exception count register (DWT_EXCCNTR)

Address offset: 0x00C

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.EXCCNT[7:0]
rwrwrwrwrwrwrwrw

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 EXCCNT[7:0] : exception overhead cycle counter

Counts the number of cycles spent in exception processing.

45.7.5 DWT sleep count register (DWT_SLPCNTR)

Address offset: 0x010

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.SLEEPCNT[7:0]
rwrwrwrwrwrwrwrw

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 SLEEP CNT[7:0] : sleep cycle counter

Counts the number of cycles spent in sleep mode (WFI, WFE, sleep-on-exit).

45.7.6 DWT LSU count register (DWT_LSUCNTR)

Address offset: 0x014

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.LSUCNT[7:0]
rwrwrwrwrwrwrwrw

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 LSUCNT[7:0] : load store counter

Counts additional cycles required to execute load and store instructions.

45.7.7 DWT fold count register (DWT_FOLDCNTR)

Address offset: 0x018

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.FOLDCNT[7:0]
rwrwrwrwrwrwrwrw

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 FOLDCNT[7:0] : folded instruction counter

Increments on each instruction that takes 0 cycles.

45.7.8 DWT program counter sample register (DWT_PCSR)

Address offset: 0x01C

Reset value: 0x0000 0000

31302928272625242322212019181716
EIASAMPLE[31:16]
rrrrrrrrrrrrrrrr
1514131211109876543210
EIASAMPLE[15:0]
rrrrrrrrrrrrrrrr

Bits 31:0 EIASAMPLE[31:0] : executed Instruction Address sample value
Samples the current value of the program counter.

45.7.9 DWT comparator register x (DWT_COMPxR)

Address offset: 0x020 + 0x10 * x, (x = 0 to 3)

Reset value: 0x0000 0000

31302928272625242322212019181716
COMP[31:16]
rrrrrrrrrrrrrrrr
1514131211109876543210
COMP[15:0]
rrrrrrrrrrrrrrrr

Bits 31:0 COMP[31:0] : reference value for comparison

45.7.10 DWT function register 0(DWT_FUNCTR0)

Address offset: 0x028

Reset value: 0x5800 0000

31302928272625242322212019181716
ID[4:0]Res.Res.MATCHEDRes.Res.Res.Res.Res.Res.Res.Res.
rrrrrr
1514131211109876543210
Res.Res.Res.Res.DATAVSIZE[1:0]Res.Res.Res.Res.ACTION[1:0]MATCH[3:0]
rwrwrwrwrwrwrwrw

Bits 31:27 ID[4:0] : capability identification

Identifies the capability for match for comparator 0.

0b01011: Cycle Counter, Instruction Address, Data Address and Data Address With Value

Bits 26:25 Reserved, must be kept at reset value.

Bit 24 MATCHED : comparator match

Indicates if a comparator match has occurred since the register was last read.

0: No match

1: A match occurred

Bits 23:12 Reserved, must be kept at reset value.

Bits 11:10 DATAVSIZE[1:0] : Data value size

Defines the size of the object being watched for by Data Value and Data Address comparators.

0x0: 1 byte

0x1: 2 bytes

0x2: 4 bytes

0x3: reserved

Bits 9:6 Reserved, must be kept at reset value.

Bits 5:4 ACTION[1:0] : Action on match

0x0: trigger only

0x1: generate debug event

0x2: For a Cycle Counter, Instruction Address, Data Address, Data Value or Linked Data Value comparator, generate a Data Trace Match packet. For a Data Address With Value comparator, generate a Data Trace Data Value packet.

0x3: For a Data Address Limit comparator, generate a Data Trace Data Address packet. For a Cycle Counter, Instruction Address Limit, or Data Address comparator, generate a Data Trace PC Value packet. For a Data Address With Value comparator, generate both a Data Trace PC Value packet and a Data Trace Data Value packet.

Bits 3:0 MATCH[3:0] : Match type

Controls the type of match generated by comparator 0.

For possible values of this field, refer to [3].

DWT function register 1 (DWT_FUNCTR1)

Address offset: 0x038

Reset value: 0xD000 0000

31302928272625242322212019181716
ID[4:0]Res.Res.MATCHEDRes.Res.Res.Res.Res.Res.Res.Res.
rrrrrr
1514131211109876543210
Res.Res.Res.Res.DATAVSIZE[1:0]Res.Res.Res.Res.ACTION[1:0]MATCH[3:0]
rwrwrwrwrwrwrwrw

Bits 31:27 ID[4:0] : capability identification

Identifies the capability for match for comparator 1.

0b11010: Instruction Address, Instruction Address Limit, Data Address, Data Address Limit, and Data Address With Value

Bits 26:25 Reserved, must be kept at reset value.

Bit 24 MATCHED : Comparator match

Indicates if a comparator match has occurred since the register was last read.

0: no match

1: a match occurred

Bits 23:12 Reserved, must be kept at reset value.

Bits 11:10 DATAVSIZE[1:0] : Data value size

Defines the size of the object being watched for by Data Value and Data Address comparators.

0x0: 1 byte

0x1: 2 bytes

0x2: 4 bytes

0x3: reserved

Bits 9:6 Reserved, must be kept at reset value.

Bits 5:4 ACTION[1:0] : Action on match

0x0: trigger only

0x1: generate debug event

0x2: For a Cycle Counter, Instruction Address, Data Address, Data Value or Linked Data Value comparator, generate a Data Trace Match packet. For a Data Address With Value comparator, generate a Data Trace Data Value packet.

0x3: For a Data Address Limit comparator, generate a Data Trace Data Address packet. For a Cycle Counter, Instruction Address Limit, or Data Address comparator, generate a Data Trace PC Value packet. For a Data Address With Value comparator, generate both a Data Trace PC Value packet and a Data Trace Data Value packet.

Bits 3:0 MATCH[3:0] : Match type

Controls the type of match generated by comparator 1.

For possible values of this field, refer to [3].

DWT function register 2 (DWT_FUNCTR2)

Address offset: 0x048

Reset value: 0x5000 0000

31302928272625242322212019181716
ID[4:0]Res.Res.MATCHEDRes.Res.Res.Res.Res.Res.Res.Res.
rrrrrr
1514131211109876543210
Res.Res.Res.Res.DATAVSIZE[1:0]Res.Res.Res.Res.ACTION[1:0]MATCH[3:0]
rwrwrwrwrwrwrwrw

Bits 31:27 ID[4:0] : capability identification

Identifies the capability for MATCH for comparator 2

0b01010: Instruction Address, Data Address, and Data Address With Value

Bits 26:25 Reserved, must be kept at reset value.

Bit 24 MATCHED : comparator match

Indicates if a comparator match has occurred since the register was last read.

0: no match

1: a match occurred

Bits 23:12 Reserved, must be kept at reset value.

Bits 11:10 DATAVSIZE[1:0] : Data value size:

Defines the size of the object being watched for by Data Value and Data Address comparators.

0x0: 1 byte

0x1: 2 bytes

0x2: 4 bytes

0x3: reserved

Bits 9:6 Reserved, must be kept at reset value.

Bits 5:4 ACTION[1:0] : Action on match

0x0: trigger only

0x1: Generate debug event

0x2: For a Cycle Counter, Instruction Address, Data Address, Data Value or Linked Data Value comparator, generate a Data Trace Match packet. For a Data Address With Value comparator, generate a Data Trace Data Value packet.

0x3: For a Data Address Limit comparator, generate a Data Trace Data Address packet. For a Cycle Counter, Instruction Address Limit, or Data Address comparator, generate a Data Trace PC Value packet. For a Data Address With Value comparator, generate both a Data Trace PC Value packet and a Data Trace Data Value packet.

Bits 3:0 MATCH[3:0] : Match type

Controls the type of match generated by comparator 2.

For possible values of this field, refer to [3] .

DWT function register 3 (DWT_FUNCTR3)

Address offset: 0x058

Reset value: 0xF000 0000

31302928272625242322212019181716
ID[4:0]Res.Res.MATCHEDRes.Res.Res.Res.Res.Res.Res.Res.
rrrrrr
1514131211109876543210
Res.Res.Res.Res.DATAVSIZE[1:0]Res.Res.Res.Res.ACTION[1:0]MATCH[3:0]
rwrwrwrwrwrwrwrw

Bits 31:27 ID[4:0] : capability identification

Identifies the capability for MATCH for comparator 2.

0b11110: Instruction Address, Instruction Address Limit, Data Address, Data Address Limit, Data value, Linked Data Value, and Data Address With Value

Bits 26:25 Reserved, must be kept at reset value.

Bit 24 MATCHED : comparator match

Indicates if a comparator match has occurred since the register was last read.

0: no match

1: a match occurred

Bits 23:12 Reserved, must be kept at reset value.

Bits 11:10 DATAVSIZE[1:0] : Data value size

Defines the size of the object being watched for by Data Value and Data Address comparators.

0x0: 1 byte

0x1: 2 bytes

0x2: 4 bytes

0x3: reserved

Bits 9:6 Reserved, must be kept at reset value.

Bits 5:4 ACTION[1:0] : Action on match

0x0: trigger only

0x1: Generate debug event

0x2: For a Cycle Counter, Instruction Address, Data Address, Data Value or Linked Data Value comparator, generate a Data Trace Match packet. For a Data Address With Value comparator, generate a Data Trace Data Value packet.

0x3: For a Data Address Limit comparator, generate a Data Trace Data Address packet. For a Cycle Counter, Instruction Address Limit, or Data Address comparator, generate a Data Trace PC Value packet. For a Data Address With Value comparator, generate both a Data Trace PC Value packet and a Data Trace Data Value packet.

Bits 3:0 MATCH[3:0] : Match type

Controls the type of match generated by comparator 2.

For possible values of this field, refer to [3].

45.7.11 DWT device type architecture register (DWT_DEVARCHR)

Address offset: 0xFC8

Reset value: 0x4770 1A02

31302928272625242322212019181716
ARCHITECT[10:0]PRESE
NT
REVISION[3:0]
rrrrrrrrrrrrrrrr
1514131211109876543210
ARCHVER[3:0]ARCHPART[11:0]
rrrrrrrrrrrrrrrr
  1. Bits 31:21 ARCHITECT[10:0] : Architect JEP106 code
    0x23B: JEP106 continuation code 0x4, JEP106 ID code 0x3B Arm ® .
  2. Bit 20 PRESENT : DWT_DEVARCH register present
    0x1: Present.
  3. Bits 19:16 REVISION[3:0] : Architecture revision
    0x0: DWT architecture v2.0.
  4. Bits 15:12 ARCHVER[3:0] : Architecture version
    0x1: DWT architecture v2.0.
  5. Bits 11:0 ARCHPART[11:0] : Architecture part
    0xA02: DWT architecture

45.7.12 DWT device type register 4 (DWT_DEVTYPE)

Address offset: 0xFCC

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.SUB[3:0]MAJOR[3:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 SUB[3:0] : Sub-type

0x0: Other

Bits 3:0 MAJOR[3:0] : Major type

0x0: Miscellaneous

45.7.13 DWT CoreSight peripheral identity register 4 (DWT_PIDR4)

Address offset: 0xFD0

Reset value: 0x0000 0004

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.F4KCOUNT[3:0]JEP106CON[3:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 F4KCOUNT[3:0] : Register file size

0x0: Register file occupies a single 4-Kbyte region.

Bits 3:0 JEP106CON[3:0] : JEP106 continuation code

0x4: Arm® JEDEC code

45.7.14 DWT CoreSight peripheral identity register 0 (DWT_PIDR0)

Address offset: 0xFE0

Reset value: 0x0000 0021

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PARTNUM[7:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PARTNUM[7:0] : Part number bits [7:0]

0x21: DWT part number

45.7.15 DWT CoreSight peripheral identity register 1 (DWT_PIDR1)

Address offset: 0xFE4

Reset value: 0x0000 00BD

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.JEP106ID[3:0]PARTNUM[11:8]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 JEP106ID[3:0] : JEP106 identity code bits [3:0]

0xB: Arm® JEDEC code

Bits 3:0 PARTNUM[11:8] : Part number bits [11:8]

0xD: DWT part number

45.7.16 DWT CoreSight peripheral identity register 2 (DWT_PIDR2)

Address offset: 0xFE8

Reset value: 0x0000 000B

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.REVISION[3:0]JEDECJEP106ID[6:4]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 REVISION[3:0] : Component revision number

0x0: r0p0

Bit 3 JEDEC : JEDEC assigned value

0x1: designer ID specified by JEDEC

Bits 2:0 JEP106ID[6:4] : JEP106 identity code bits [6:4]

0x3: Arm® JEDEC code

45.7.17 DWT CoreSight peripheral identity register 3 (DWT_PIDR3)

Address offset: 0xFEC

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.REVAND[3:0]CMOD[3:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 REVAND[3:0] : Metal fix version

0x0: No metal fix

Bits 3:0 CMOD[3:0] : Customer modified

0x0: No customer modifications

45.7.18 DWT CoreSight component identity register 0 (DWT_CIDR0)

Address offset: 0xFF0

Reset value: 0x0000 000D

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[7:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[7:0] : Component ID bits [7:0]

0x0D: Common ID value

45.7.19 DWT CoreSight peripheral identity register 1 (DWT_PIDR1)

Address offset: 0xFF4

Reset value: 0x0000 0090

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.CLASS[3:0]PREAMBLE[11:8]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 CLASS[3:0] : Component ID bits [15:12] - component class

0x9: Debug component

Bits 3:0 PREAMBLE[11:8] : Component ID bits [11:8]

0x0: Common ID value

45.7.20 DWT CoreSight component identity register 2 (DWT_CIDR2)

Address offset: 0xFF8

Reset value: 0x0000 0005

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[19:12]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[19:12] : Component ID bits [23:16]
0x05: Common ID value

45.7.21 DWT CoreSight component identity register 3 (DWT_CIDR3)

Address offset: 0xFFC

Reset value: 0x0000 00B1

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[27:20]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[27:20] : Component ID bits [31:24]
0xB1: Common ID value

45.7.22 DWT register map and reset values

The DWT registers are accessed by the debugger through AP1 at address range 0xE000 1000 to 0xE000 1FFC.

Table 458. DWT register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x000DWT_CTRLRNUMCOMP [3:0]NOTRCPKTNOEXTTRIGNOCYCCNTNOPREFCNTCYCDISSCYCEVTENAFOLDEVTEENALSUEVTEENASLEEPEVTENAEXCEVTENACPIEVTEENAEXCTRCRENARes.Res.Res.PCSAMPLENASYNCTAP [1:0]CYCTAPPOSINIT[3:0]POSTPRESET [3:0]CYCCNTENA
Reset value01000000000000000000000000000
0x004DWT_CYCCNTRCYCCNT[31:0]
Reset value00000000000000000000000000000000
0x008DWT_CPICNTRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CPICNT[7:0]
Reset value0000000000
0x00CDWT_EXCCNTRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.EXCCNT[7:0]
Reset value0000000000
0x010DWT_SLPICNTRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SLPICNT[7:0]
Reset value0000000000
0x014DWT_LSUCNTRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.LSUCNT[7:0]
Reset value0000000000
0x018DWT_FOLDCNTRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FOLDCNT[7:0]
Reset value0000000000
0x01CDWT_PCSREIASAMPLE[31:0]
Reset value00000000000000000000000000000000
0x020DWT_COMP0RCOMP[31:0]
Reset value00000000000000000000000000000000
0x024ReservedReserved.
0x028DWT_FUNCT0RID[4:0]Res.Res.MATCHEDRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DATAVSIZE [1:0]Res.Res.Res.Res.ACTION [1:0]MATCH[3:0]
Reset value0101100000000000
0x02CReservedReserved.
0x030DWT_COMP1RCOMP[31:0]
Reset value00000000000000000000000000000000
0x034ReservedReserved.
0x038DWT_FUNCT1RID[4:0]Res.Res.MATCHEDRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DATAVSIZE [1:0]Res.Res.Res.Res.ACTION [1:0]MATCH[3:0]
Reset value1101000000000000
0x03CReservedReserved.
0x040DWT_COMP2RCOMP[31:0]
Reset value00000000000000000000000000000000
0x044ReservedReserved.

Table 458. DWT register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x048DWT_FUNCT2RID[4:0]Res.Res.MATCHEDRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DATA/SIZE [1:0]Res.Res.Res.Res.Res.ACTION [1:0]MATCH[3:0]
Reset value010100000000000
0x04CReservedReserved.
0x050DWT_COMP3RCOMP[31:0]
Reset value00000000000000000000000000000000
0x054ReservedReserved.
0x058DWT_FUNCT3RID[4:0]Res.Res.MATCHEDRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DATA/SIZE [1:0]Res.Res.Res.Res.Res.ACTION [1:0]MATCH[3:0]
Reset value11110000000000
0x05C to 0xFC4ReservedReserved.
0xFC8DWT_DEVARCHRARCHITECT[10:0]PRESENREVISION [3:0]ARCHVER [3:0]ARCHPART[11:0]
Reset value01000111011100000001101000000001
0xFCCDWT_DEVTYPEPRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SUB[3:0]MAJOR[3:8]
Reset value000000
0xFD0DWT_PIDR4Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.F4KCOUNT [3:0]JEP106CON [3:0]
Reset value000001
0xFD4 to 0xFC4ReservedReserved.
0xFE0DWT_PIDR0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PARTNUM[7:0]
Reset value00100
0xFE4DWT_PIDR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.JEP106ID [3:0]PARTNUM [11:8]
Reset value10111
0xFE8DWT_PIDR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.REVISION [3:0]JEDECJEP106ID [6:4]
Reset value00001
0xFECDWT_PIDR3Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.REVAND[3:0]CMOD[3:0]
Reset value00000
0xFF0DWT_CIDR0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[7:0]
Reset value00001
0xFF4DWT_CIDR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CLASS[3:0]PREAMBLE [11:8]
Reset value10010
0xFF8DWT_CIDR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[19:12]
Reset value00001
0xFFCDWT_CIDR3Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[27:20]
Reset value10110

Refer to Table 455: MCU ROM table for the register boundary addresses.

45.8 Instrumentation trace macrocell (ITM)

The ITM generates trace information as packets. There are three sources that can generate packets. If multiple sources generate packets at the same time, the ITM arbitrates the order in which packets are output. The three sources in decreasing order of priority are:

1. Software trace

Software can write directly to any of 32 x 32-bit ITM stimulus registers to generate packets. The permission level for each port can be programmed. When software writes to an enabled stimulus port, the ITM combines the identity of the port, the size of the write access and the data written, into a packet that it writes to a FIFO. The ITM outputs packets from the FIFO onto the trace bus. Reading a stimulus port register returns the status of the stimulus register (empty or pending) in bit 0.

2. Hardware trace

The DWT generates trace packets in response to a data trace event, a PC sample or a performance profiling counter wraparound. The ITM outputs these packets on the trace bus.

3. Local timestamping

The ITM contains a 21-bit counter clocked by the (pre-divided) processor clock. The counter value is output in a timestamp packet on the trace bus. The counter is reset to zero every time a timestamp packet is generated. The timestamps thus indicate the time elapsed since the previous timestamp packet.

For more information on the ITM and how to use it, refer to the Arm ® v8-M Architecture Reference Manual [3].

45.8.1 ITM registers

45.8.2 ITM stimulus register x (ITM_STIMRx)

Address offset: 0x000 + 0x4 * x, (x = 0 to 31)

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
STIMULUS[31:16]
wwwwwwwwwwwwwwww
1514131211109876543210
STIMULUS[15:2]STIMULUS1STIMULUS0
wwwwwwwwwwwwwwrwrw

Bits 31:2 STIMULUS[31:2] : Trace output data

When writing, written data is output on the trace bus as a software event packet.

Bit 1 STIMULUS1 : Trace output data bit [1]

When writing, written data is output on the trace bus as a software event packet.

When reading: disable flag:

0: Stimulus port and ITM enabled.

1: Stimulus port and ITM disabled.

Bit 0 STIMULUS0 : Trace output data bit [0]

When writing, written data is output on the trace bus as a software event packet.

When reading: FIFO ready indicator:

0: Stimulus port buffer is full (or port is disabled).

1: Stimulus port can accept new write data.

45.8.3 ITM trace enable register (ITM_TER)

Address offset: 0xE00

Reset value: 0x0000 0000

31302928272625242322212019181716
STIMENA[31:16]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
STIMENA[15:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:0 STIMENA[31:0] : Enable for stimulus port

Each bit x enables the stimulus port associated with the ITM_STIMRx register.

0: Port disabled

1: Port enabled

45.8.4 ITM trace privilege register (ITM_TPR)

Address offset: 0xE40

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PRIVMASK[3:0]
rrrr

Bits 31:4 Reserved, must be kept at reset value.

Bits 3:0 PRIVMASK[3:0] : Enables unprivileged access to ITM stimulus ports.

Each bit controls eight stimulus ports.

0bXXX0: Unprivileged access permitted on ports 0 to 7

0bXXX1: Only privileged access permitted on ports 0 to 7

0bXX0X: Unprivileged access permitted on ports 8 to 15

0bXX1X: Only privileged access permitted on ports 8 to 15

0bX0XX: Unprivileged access permitted on ports 16 to 23

0bX1XX: Only privileged access permitted on ports 16 to 23

0b0XXX: Unprivileged access permitted on ports 24 to 31

0b1XXX: Only privileged access permitted on ports 24 to 31.

45.8.5 ITM trace control register (ITM_TCR)

Address offset: 0xE80

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.BUSYTRACEBUSID[6:0]
rrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.TSPRESCALE[1:0]Res.Res.STALL ENASWOENATXENASYNCENATSENAITMENA
rwrwrwrrwrwrwrw

Bits 31:24 Reserved, must be kept at reset value.

Bit 23 BUSY : Indicates whether the ITM is currently processing events.

0: Not busy

1: Busy

Bits 22:16 TRACEBUSID[6:0] : identifier for multi-source trace stream formatting

If multi-source trace is in use, the debugger must write a non-zero value to this field.

Note: Different IDs must be used for each trace source in the system.

Bits 15:10 Reserved, must be kept at reset value.

Bits 9:8 TSPRESCALE[1:0] : local timestamp prescaler

Used with the trace packet reference clock. The possible values are:

0x0: No prescaling

0x1: Divides by 4.

0x2: Divides by 16.

0x3: Divides by 64.

Bits 7:6 Reserved, must be kept at reset value.

Bit 5 STALLENA : Stall enable

0: Drop hardware source packets and generate an overflow if the ITM output is stalled.

1: Stall the processor to guarantee delivery of the data trace packets.

Bit 4 SWOENA : Enable for asynchronous clocking of the timestamp counter (read only)

0: Timestamp counter uses processor clock

Bit 3 TXENA : Enables forwarding of hardware event packets from the DWT unit to the trace port.

0: Disabled

1: Enabled

Bit 2 SYNCENA : Enable for packet transmission synchronization

Note: The debugger setting this bit must also configure the DWT_CTRLR register SYNCTAP field in the DWT for the correct synchronization speed.

0: Disabled

1: Enabled

Bit 1 TSENA : Enable for local timestamp generation

0: Disabled

1: Enabled

Bit 0 ITMENA : ITM enable
0: Disabled
1: Enabled

45.8.6 ITM device type architecture register (ITM_DEVARCHR)

Address offset: 0xFBC

Reset value: 0x4770 1A01

31302928272625242322212019181716
ARCHITECT[10:0]PRESENTREVISION[3:0]
rrrrrrrrrrrrrrrr
1514131211109876543210
ARCHVER[3:0]ARCHPART[11:0]
rrrrrrrrrrrrrrrr

45.8.7 ITM device type register 4 (ITM_DEVTYPE)

Address offset: 0xFCC

Reset value: 0x0000 0043

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
ResResResResResResResResSUB[3:0]MAJOR[3:0]
rrrrrrrr

45.8.8 ITM CoreSight peripheral identity register 4 (ITM_PIDR4)

Address offset: 0xFD0

Reset value: 0x0000 0004

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.F4KCOUNT[3:0]JEP106CON[3:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 F4KCOUNT[3:0] : Register file size

0x0: Register file occupies a single 4-Kbyte region.

Bits 3:0 JEP106CON[3:0] : JEP106 continuation code

0x4: Arm® JEDEC code

45.8.9 ITM CoreSight peripheral identity register 0 (ITM_PIDR0)

Address offset: 0xFE0

Reset value: 0x0000 0021

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PARTNUM[7:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PARTNUM[7:0] : Part number bits [7:0]

0x21: ITM part number

45.8.10 ITM CoreSight peripheral identity register 1 (ITM_PIDR1)

Address offset: 0xFE4

Reset value: 0x0000 00BD

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.JEP106ID[3:0]PARTNUM[11:8]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 JEP106ID[3:0] : JEP106 identity code bits [3:0]
0xB: Arm® JEDEC code

Bits 3:0 PARTNUM[11:8] : Part number bits [11:8]
0xD: ITM part number

45.8.11 ITM CoreSight peripheral identity register 2 (ITM_PIDR2)

Address offset: 0xFE8

Reset value: 0x0000 000B

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.REVISION[3:0]JEDECJEP106ID[6:4]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 REVISION[3:0] : Component revision number
0x0: r0p0

Bit 3 JEDEC : JEDEC assigned value
0x1: Designer ID specified by JEDEC

Bits 2:0 JEP106ID[6:4] : JEP106 identity code bits [6:4]
0x3: Arm® JEDEC code

45.8.12 ITM CoreSight peripheral identity register 3 (ITM_PIDR3)

Address offset: 0xFEC

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.REVAND[3:0]CMOD[3:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 REVAND[3:0] : Metal fix version
0x0: No metal fix

Bits 3:0 CMOD[3:0] : Customer modified
0x0: No customer modifications

45.8.13 ITM CoreSight component identity register 0 (ITM_CIDR0)

Address offset: 0xFF0

Reset value: 0x0000 000D

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[7:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[7:0] : Component ID bits [7:0]

0x0D: Common ID value

45.8.14 ITM CoreSight peripheral identity register 1 (ITM_PIDR1)

Address offset: 0xFF4

Reset value: 0x0000 00E0

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.CLASS[3:0]PREAMBLE[11:8]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 CLASS[3:0] : Component ID bits [15:12] - component class

0xE: Trace generator component

Bits 3:0 PREAMBLE[11:8] : Component ID bits [11:8]

0x0: Common ID value

45.8.15 ITM CoreSight component identity register 2 (ITM_CIDR2)

Address offset: 0xFF8

Reset value: 0x0000 0005

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[19:12]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[19:12] : Component ID bits [23:16]
0x05: Common ID value

45.8.16 ITM CoreSight component identity register 3 (ITM_CIDR3)

Address offset: 0xFFC

Reset value: 0x0000 00B1

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[27:20]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[27:20] : Component ID bits [31:24]
0xB1: Common ID value

45.8.17 ITM register map and reset values

The ITM registers are accessed by the debugger through AP1 at address range 0xE000 0000 to 0xE000 0FFC.

Table 459. ITM register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x000 to 0x07CITM_STIMR0 to ITM_STIMR31STIMULUS[31:0]
Reset valueXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0x080 to 0xDFCReservedReserved.
0xE00ITM_TERSTIMENA[31:0]
Reset value00000000000000000000000000000000
0xE04 to 0xE3CReservedReserved.
0xE40ITM_TPRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PRIVMASK [3:0]
Reset value0000
0xE44 to 0xE7CReservedReserved.
0xE80ITM_TCRRes.Res.Res.Res.Res.Res.Res.Res.BUSYTRACEBUSID[6:0]Res.Res.Res.Res.Res.Res.TSPRESCALE [1:0]Res.Res.STALLENASWOENATXENASYNCENATSENAITMENA
Reset value0000000000000000
0xE84 to 0xFB8ReservedReserved.
0xFB0DWT_DEVARCHRARCHITECT[10:0]PRESNREVISION [3:0]ARCHVER [3:0]ARCHPART[11:0]
Reset value01000111011100000001101000000001
0xFC0 to 0xFC8ReservedReserved.
0xFC0DWT_DEVTYPERes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SUB[3:0]MAJOR[3:8]
Reset value01000
0xFD0ITM_PIDR4Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.F4KCOUNT [3:0]JEP106CON [3:0]
Reset value00000
0xFD4 to 0xFDCReservedReserved.
0xFE0ITM_PIDR0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PARTNUM[7:0]
Reset value0010
0xFE4ITM_PIDR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.JEP106ID [3:0]PARTNUM [11:8]
Reset value1011
0xFE8ITM_PIDR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.REVISION [3:0]JEDECJEP106ID [6:4]
Reset value0000
0xFECITM_PIDR3Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.REVAND[3:0]CMOD[3:0]
Reset value0000

Table 459. ITM register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFF0ITM_CIDR0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[7:0]
Reset value00001101
0xFF4ITM_CIDR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CLASS[3:0]PREAMBLE [11:8]
Reset value11100000
0xFF8ITM_CIDR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[19:12]
Reset value00000101
0xFFCITM_CIDR3Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[27:20]
Reset value10110001

Refer to Section 45.5: System debug AP0 features for the register boundary addresses.

45.9 Breakpoint unit (BPU)

The BPU allows hardware breakpoints to be set. It contains eight comparators that monitor the instruction fetch address. If a match occurs, the instruction comparators can be configured to generate a breakpoint instruction.

For more information on the BPU and how to use it, refer to the Arm ® v8-M Architecture Reference Manual [3].

45.9.1 BPU control register (BPU_CTRLR)

Address offset: 0x000

Reset value: 0x1000 0080

31302928272625242322212019181716
REV[3:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
rrrr
1514131211109876543210
Res.NUM_CODE[6:4]Res.Res.Res.Res.NUM_CODE[3:0]Res.Res.KEYENABLE
rrrrrrrrwrw

Bits 31:28 REV[3:0] : Revision number

0x1: BPU version 2

Bits 27:15 Reserved, must be kept at reset value.

Bits 14:12, 7:4 NUM_CODE[6:0] : Number of instruction address comparators supported - least significant bits
0x8: 8 instruction comparators supported

Bits 11:8, 3:2 Reserved, must be kept at reset value.

Bit 1 KEY : write protect key

A write to BPU_CTRLR register is ignored if this bit is not set to 1.

Bit 0 ENABLE : BPU enable

0: Disabled

1: Enabled

45.9.2 BPU comparator x register (BPU_COMPxR)

Address offset: 0x008 + 0x4 * x, (x = 0 to 7)

Reset value: 0x0000 0000

31302928272625242322212019181716
BPADDR[31:16]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
BPADDR[15:1]BE
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:1 BPADDR[31:1] : Breakpoint address

Bit 0 BE : Breakpoint enable
0: disabled
1: enabled

45.9.3 BPU device type architecture register (BPU_DEVARCHR)

Address offset: 0xFBC

Reset value: 0x4770 1A03

31302928272625242322212019181716
ARCHITECT[10:0]PRESENTREVISION[3:0]
rrrrrrrrrrrrrrrr
1514131211109876543210
ARCHVER[3:0]ARCHPART[11:0]
rrrrrrrrrrrrrrrr

45.9.4 BPU device type register 4 (BPU_DEVTYPER)

Address offset: 0xFCC

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
ResResResResResResResResSUB[3:0]MAJOR[3:0]
rrrrrrrr

45.9.5 BPU CoreSight peripheral identity register 4 (BPU_PIDR4)

Address offset: 0xFD0

Reset value: 0x0000 0004

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.F4KCOUNT[3:0]JEP106CON[3:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 F4KCOUNT[3:0] : register file size

0x0: Register file occupies a single 4-Kbyte region.

Bits 3:0 JEP106CON[3:0] : JEP106 continuation code

0x4: Arm® JEDEC code

45.9.6 BPU CoreSight peripheral identity register 0 (BPU_PIDR0)

Address offset: 0xFE0

Reset value: 0x0000 0021

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PARTNUM[7:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PARTNUM[7:0] : Part number bits [7:0]

0x21: BPU part number

45.9.7 BPU CoreSight peripheral identity register 1 (BPU_PIDR1)

Address offset: 0xFE4

Reset value: 0x0000 00BD

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.JEP106ID[3:0]PARTNUM[11:8]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 JEP106ID[3:0] : JEP106 identity code bits [3:0]
0xB: Arm® JEDEC code

Bits 3:0 PARTNUM[11:8] : Part number bits [11:8]
0xD: BPU part number

45.9.8 BPU CoreSight peripheral identity register 2 (BPU_PIDR2)

Address offset: 0xFE8

Reset value: 0x0000 000B

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.REVISION[3:0]JEDECJEP106ID[6:4]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 REVISION[3:0] : Component revision number
0x0: r0p0

Bit 3 JEDEC : JEDEC assigned value
1: Designer ID specified by JEDEC

Bits 2:0 JEP106ID[6:4] : JEP106 identity code bits [6:4]
0x3: Arm® JEDEC code

45.9.9 BPU CoreSight peripheral identity register 3 (BPU_PIDR3)

Address offset: 0xFEC

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.REVAND[3:0]CMOD[3:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 REVAND[3:0] : Metal fix version
0x0: No metal fix

Bits 3:0 CMOD[3:0] : Customer modified
0x0: No customer modifications

45.9.10 BPU CoreSight component identity register 0 (BPU_CIDR0)

Address offset: 0xFF0

Reset value: 0x0000 000D

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[7:0] : Component ID bits [7:0]

0x0D: Common ID value

45.9.11 BPU CoreSight peripheral identity register 1 (BPU_CIDR1)

Address offset: 0xFF4

Reset value: 0x0000 0090

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 CLASS[3:0] : Component ID bits [15:12] - component class

0x9: debug component

Bits 3:0 PREAMBLE[11:8] : Component ID bits [11:8]

0x0: Common ID value

45.9.12 BPU CoreSight component identity register 2 (BPU_CIDR2)

Address offset: 0xFF8

Reset value: 0x0000 0005

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[19:12] : Component ID bits [23:16]
0x05: Common ID value

45.9.13 BPU CoreSight component identity register 3 (BPU_CIDR3)

Address offset: 0xFFC

Reset value: 0x0000 00B1

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[27:20]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[27:20] : Component ID bits [31:24]
0xB1: Common ID value

45.9.14 BPU register map and reset values

The BPU registers are accessed by the debugger through AP1 at address range 0xE000 2000 to 0xE000 2FFC.

Table 460. BPU register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x000BPU_CTRLRNUM_LIT
[3:0]
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.NUM_CODE
[6:4]
Res.Res.Res.Res.Res.Res.Res.NUM_CODE
[3:0]
Res.Res.KEYENABLE
Reset value0001000100000
0x004ReservedReserved.
0x008 to
0x024
BPU_COMP0R to
BPU_COMP7R
BPADDR[31:1]BE
Reset value00000000000000000000000000000000
0x02C-
0xFB8
ReservedReserved.
0xFB8DWT_DEVARCHRARCHITECT[10:0]PRESENREVISION
[3:0]
ARCHVER
[3:0]
ARCHPART[11:0]
Reset value01000111011100000001101000000011
0xFC0 to
0xFC8
ReservedReserved.
0xFC8DWT_DEVTYPERes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SUB[3:0]MAJOR[3:8]
Reset value0000000
0xFD0BPU_PIDR4Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.F4KCOUNT
[3:0]
JEP106CON
[3:0]
Reset value0000010
0xFD4-
0xFDC
ReservedReserved.
0xFE0BPU_PIDR0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PARTNUM[7:0]
Reset value0010001
0xFE4BPU_PIDR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.JEP106ID
[3:0]
PARTNUM
[11:8]
Reset value1011110
0xFE8BPU_PIDR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.REVISION
[3:0]
JEDECJEP106ID
[6:4]
Reset value0000101
0xFECBPU_PIDR3Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.REVAND[3:0]CMOD[3:0]
Reset value0000000
0xFF0BPU_CIDR0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[7:0]
Reset value0000110
0xFF4BPU_CIDR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CLASS[3:0]PREAMBLE
[11:8]
Reset value1001000
0xFF8BPU_CIDR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[19:12]
Reset value0000010
0xFFCBPU_CIDR3Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[27:20]
Reset value1011001

Refer to Section 45.5: System debug AP0 features for the register boundary addresses.

45.10 Embedded Trace Macrocell (ETM)

The ETM is a CoreSight component closely coupled to the CPU. The ETM generates trace packets that allow the execution of the Cortex-M33 core to be traced. In STM32WBA6xxx, the ETM is configured for instruction trace only. Data accesses are not included in the trace information.

The ETM receives information from the CPU over the processor trace interface, including:

For more information, refer to the Arm CoreSight ETM-M33 Technical Reference Manual [5] .

45.10.1 ETM registers

The ETM registers are located at address range 0xE004 1000 to 0xE004 1FFC.

ETM programming control register (ETM_PRGCTLR)

Address offset: 0x004

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.EN
nw

Bits 31:1 Reserved, must be kept at reset value.

Bit 0 EN : trace unit enable

0: disabled

1: enabled

ETM status register (ETM_STATR)

Address offset: 0x00C

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PMSTABLEIDLE
rr

Bits 31:2 Reserved, must be kept at reset value.

Bit 1 PMSTABLE : stability status

Indicates that the ETM-M33 registers are stable and can be read.

0: not stable

1: stable

Bit 0 IDLE : trace unit status

Indicates that the trace unit is inactive.

0: not idle

1: idle

ETM configuration register (ETM_CONFIGR)

Address offset: 0x010

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.RSRes.COND[5:0]CCIBBRes.Res.Res.
rwrwrwrwrwrwrwrwrw

Bits 31:13 Reserved, must be kept at reset value.

Bit 12 RS : return stack enable

0: disabled

1: enabled

Bit 11 Reserved, must be kept at reset value.

Bits 10:5 COND[5:0] : conditional instruction tracing

0x0: conditional instruction tracing disabled

0x1: conditional load instructions traced

0x2: conditional store instructions traced

0x3: conditional load and store instructions traced

0x7: All conditional instructions traced

Bit 4 CCI : cycle counting in instruction trace

0: disabled

1: enabled

Bit 3 BB : branch broadcast mode

0: disabled

1: enabled

Bits 2:0 Reserved, must be kept at reset value.

ETM event control 0 register (ETM_EVENTCTL0R)

Address offset: 0x020

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
TYPE1Res.Res.Res.SEL1[3:0]TYPE0Res.Res.Res.SEL0[3:0]
rwrwrwrwrwrwrwrwrwrw

Bits 31:16 Reserved, must be kept at reset value.

Bit 15 TYPE1 : resource type for event1

0: single selected resource

1: boolean combined resource pair

Bits 14:12 Reserved, must be kept at reset value.

Bits 11:8 SEL1[3:0] : resource number based on TYPE1

Selects the resource number, based on the value of TYPE1.

When TYPE1 = 0, a single resource from 0-15 defined by SEL1[3:0] is selected.

When TYPE1 = 1, a boolean combined resource pair defined by SEL1[2:0] is selected.

Bit 7 TYPE0 : resource type for event0

0: single selected resource

1: boolean combined resource pair

Bits 6:4 Reserved, must be kept at reset value.

Bits 3:0 SEL0[3:0] : resource number based on TYPE0

Selects the resource number, based on the value of TYPE0.

When TYPE0 = 0, a single resource from 0-15 defined by SEL0[3:0] is selected.

When TYPE0 = 1, a boolean combined resource pair defined by SEL0[2:0] is selected.

ETM event control 1 register (ETM_EVENTCTL1R)

Address offset: 0x024

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.LPOVER
RIDE
ATBRes.Res.Res.Res.Res.Res.Res.Res.Res.INSTEN[1:0]
rwrwrwrw

Bits 31:13 Reserved, must be kept at reset value.

Bit 12 LPOVERRIDE : low-power state behavior override

0: normal low-power state behavior

1: The resources and event trace generation are not affected by entry to a low-power state.

Bit 11 ATB : ATB trigger enable

0: disabled

1: enabled

Bits 10:2 Reserved, must be kept at reset value.

Bits 1:0 INSTEN[1:0] : instruction event generation

Enables generation of an event element in the instruction stream.

0bX0: Event0 does not cause an event element.

0bX1: Event0 causes an event element when it occurs.

0b0X: Event1 does not cause an event element.

0b1X: Event1 causes an event element when it occurs.

ETM stall control register (ETM_STALLCTLR)

Address offset: 0x02C

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.INSTP
RIORIT
Y
Res.ISTALLRes.Res.Res.Res.LEVEL[3:0]
rwrwrwrwrwrw

Bits 31:11 Reserved, must be kept at reset value.

Bit 10 INSTPRIORITY : instruction trace priority

Prioritizes instruction trace if instruction trace buffer space is less than LEVEL[3:0].

0: The ETM must not prioritize instruction trace.

1: The ETM can prioritize instruction trace.

Bit 9 Reserved, must be kept at reset value.

Bit 8 ISTALL : processor stalling

Stalls processor based on instruction trace buffer space.

0: The ETM must not stall the processor.

1: The ETM can stall the processor.

Bits 7:4 Reserved, must be kept at reset value.

Bits 3:0 LEVEL[3:0] : Threshold at which stalling becomes active

This field provides four levels. This level can be varied to optimize the level of invasion caused by stalling, balanced against the risk of a FIFO overflow.

0x0: zero invasion, but greater risk of FIFO overflow

...

0xF: maximum invasion but less risk of FIFO overflow

ETM synchronization period register (ETM_SYNCPR)

Address offset: 0x034

Reset value: 0x0000 000A

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PERIOD[4:0]
rrrrr

Bits 31:5 Reserved, must be kept at reset value.

Bits 4:0 PERIOD[4:0] : synchronization period

Defines the number of bytes of trace between trace synchronization requests as a total of the number of bytes generated by the instruction stream.

0xA: 1024 bytes

ETM cycle count control register (ETM_CCCTLR)

Address offset: 0x038

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.THRESHOLD[11:0]
rwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:12 Reserved, must be kept at reset value.

Bits 11:0 THRESHOLD[11:0] : instruction trace cycle count threshold

Sets the threshold value for instruction trace cycle counting. The threshold represents the minimum interval between cycle-count trace packets.

ETM trace identification register (ETM_TRACEIDR)

Address offset: 0x040

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.TRACEID[6:0]
rwrwrwrwrwrwrw

Bits 31:7 Reserved, must be kept at reset value.

Bits 6:0 TRACEID[6:0] : Trace identification to output onto the trace bus

This field must be programmed with a unique value to differentiate it from other trace sources in the system.

Values 0x00 and 0x70-0x7F are reserved.

ETM ViewInst main control register (ETM_VICTLR)

Address offset: 0x080

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.EXLEVEL_S[3:0]
rwrwrwrw
1514131211109876543210
Res.Res.Res.Res.TRCERRTRCRESETSSSTATUSRes.EVENT[7:0]
rwrwrwrwrwrwrwrwrwrwrw

Bits 31:20 Reserved, must be kept at reset value.

Bits 19:16 EXLEVEL_S[3:0] : exception level in secure state

Controls whether instruction tracing is enabled for the corresponding exception level, in secure state.

0bXXX0: instruction trace not generated in secure state, for exception level 0

0bXXX1: instruction trace generated in secure state, for exception level 0

0b0XXX: instruction trace not generated in secure state, for exception level 3

0b1XXX: instruction trace generated in secure state, for exception level 3

Bits 15:12 Reserved, must be kept at reset value.

Bit 11 TRCERR : trace system error exception

0: The system error exception is traced only if the instruction or exception immediately before the system error exception is traced.

1: The system error exception is always traced.

Bit 10 TRCRESET : trace reset exception

0: The reset exception is traced only if the instruction or exception immediately before the reset exception is traced.

1: The reset exception is always traced.

Bit 9 SSSTATUS : start/stop logic status

0: stopped

1: started

Bit 8 Reserved, must be kept at reset value.

Bits 7:0 EVENT[7:0] : event selector

ETM counter reload value register 0 (ETM_CNTRLDVR0)

Address offset: 0x140

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
VALUE[15:0]

Bits 31:16 Reserved, must be kept at reset value.

Bits 15:0 VALUE[15:0] : counter reload value

This value is loaded in to the counter each time the reload event occurs.

ETM identification register 8 (ETM_IDR8)

Address offset: 0x180

Reset value: 0x0000 0000

31302928272625242322212019181716
MAXSPEC[31:16]
rrrrrrrrrrrrrrrr
1514131211109876543210
MAXSPEC[15:0]
rrrrrrrrrrrrrrrr

Bits 31:0 MAXSPEC[31:0] : maximum speculation depth

Indicates the maximum speculation depth of the instruction trace stream. This is the maximum number of P0 elements that have not been committed in the trace stream at any one time.

0x0: The maximum trace speculation depth is zero.

ETM identification register 9 (ETM_IDR9)

Address offset: 0x184

Reset value: 0x0000 0000

31302928272625242322212019181716
NUMP0KEY[31:16]
rrrrrrrrrrrrrrrr
1514131211109876543210
NUMP0KEY[15:0]
rrrrrrrrrrrrrrrr

Bits 31:0 NUMP0KEY[31:0] : number of P0 right-hand keys used
0x0: no P0 right-hand keys used in instruction trace

ETM identification register 10 (ETM_IDR10)

Address offset: 0x188

Reset value: 0x0000 0000

31302928272625242322212019181716
NUMP1KEY[31:16]
rrrrrrrrrrrrrrrr
1514131211109876543210
NUMP1KEY[15:0]
rrrrrrrrrrrrrrrr

Bits 31:0 NUMP1KEY[31:0] : number of P1 right-hand keys used (including normal and special keys)
0x0: no P1 right-hand keys used in instruction trace

ETM identification register 11 (ETM_IDR11)

Address offset: 0x18C

Reset value: 0x0000 0000

31302928272625242322212019181716
NUMP1SPC[31:16]
rrrrrrrrrrrrrrrr
1514131211109876543210
NUMP1SPC[15:0]
rrrrrrrrrrrrrrrr

Bits 31:0 NUMP1SPC[31:0] : number of special P1 right-hand keys used
0x0: no special P1 right-hand keys used in any configuration

ETM identification register 12 (ETM_IDR12)

Address offset: 0x190

Reset value: 0x0000 0001

31302928272625242322212019181716
NUMCONDKEY[31:16]
rrrrrrrrrrrrrrrr
1514131211109876543210
NUMCONDKEY[15:0]
rrrrrrrrrrrrrrrr

Bits 31:0 NUMCONDKEY[31:0] : number of conditional instruction right-hand keys used (including normal and special keys)

0x1: one conditional instruction right-hand key implemented

ETM identification register 13 (ETM_IDR13)

Address offset: 0x194

Reset value: 0x0000 0000

31302928272625242322212019181716
NUMCONDSPC[31:16]
rrrrrrrrrrrrrrrr
1514131211109876543210
NUMCONDSPC[15:0]
rrrrrrrrrrrrrrrr

Bits 31:0 NUMCONDSPC[31:0] : number of special conditional instruction right-hand keys used

0x0: no special conditional instruction right-hand keys implemented

ETM implementation specific register 0 (ETM_IMSPECRO)

Address offset: 0x1C0

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SUPPORT[3:0]
rrrr

Bits 31:4 Reserved, must be kept at reset value.

Bits 3:0 SUPPORT[3:0] : implementation specific extension support

0x0: no implementation specific extensions are supported

ETM identification register 0 (ETM_IDR0)

Address offset: 0x1E0

Reset value: 0x2800 06E1

31302928272625242322212019181716
Res.Res.COMMOPTRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TRCEXDATAQSUPP [1]
rrr
1514131211109876543210
QSUPP [0]Res.CONDTYPE[1:0]NUMEVENT[1:0]RETSTACKRes.TRCCCITRCCONDTRCBBTRCDATA[1:0]INSTP0[1:0]Res.
rrrrrrrrrrrrr

Bits 31:30 Reserved, must be kept at reset value.

Bit 29 COMMOPT : commit field meaning

Indicates the meaning of the commit field in some packets.

1: commit mode 1

Bits 28:18 Reserved, must be kept at reset value.

Bit 17 TRCEXDATA : trace data transfers for exceptions

Indicates support for the tracing of data transfers for exceptions and exception returns.

0: not implemented

Bits 16:15 QSUPP[1:0] : Q element support

0: not supported

Bit 14 Reserved, must be kept at reset value.

Bits 13:12 CONDTYPE[1:0] : conditional results tracing

Indicates how conditional results are traced.

0: The trace unit indicates only if a conditional instruction passes or fails its condition code check

Bits 11:10 NUMEVENT[1:0] : Number of events supported

0x1: two events

Bit 9 RETSTACK : return stack support

1: two entry return stacks

Bit 8 Reserved, must be kept at reset value.

Bit 7 TRCCCI : cycle counting support

1: cycle counting implemented

Bit 6 TRCCOND : conditional instruction support

1: conditional instruction tracing implemented

Bit 5 TRCBB : branch broadcast support

1: branch broadcast tracing implemented

Bits 4:3 TRCDATA[1:0] : data tracing support

0x0: data tracing not supported

Bits 2:1 INSTP0[1:0] : support for tracing of load and store instructions as P0 elements

0x0: not supported

Bit 0 Reserved, must be kept at reset value.

ETM identification register 1 (ETM_IDR1)

Address offset: 0x1E4

Reset value: 0x4100 F421

31302928272625242322212019181716
DESIGNER[7:0]Res.Res.Res.Res.Res.Res.Res.Res.
rrrrrrrr
1514131211109876543210
Res.Res.Res.Res.TRCARCHMAJ[3:0]TRCARCHMIN[3:0]REVISION[3:0]
rrrrrrrrrrrr
Bits 31:24 DESIGNER[7:0] : trace unit designer

0x41: Arm

Bits 23:12 Reserved, must be kept at reset value.

Bits 11:8 TRCARCHMAJ[3:0] : major trace unit architecture version number

0x4: ETMv4

Bits 7:4 TRCARCHMIN[3:0] : minor trace unit architecture version number

0x2: minor revision 2

Bits 3:0 REVISION[3:0] : implementation revision number

0x1: implementation revision 1

ETM identification register 2 (ETM_IDR2)

Address offset: 0x1E8

Reset value: 0x0000 0004

31302928272625242322212019181716
Res.Res.Res.CCSIZE[3:0]DVSIZE[4:0]DASIZE[4:1]
rrrrrrrrrrrrr
1514131211109876543210
DASIZE[0]VMIDSIZE[4:0]CIDSIZE[4:0]IASIZE[4:0]
rrrrrrrrrrrrrrrr

Bits 31:29 Reserved, must be kept at reset value.

Bits 28:25 CCSIZE[3:0] : cycle counter size

0x0: 12 bits

Bits 24:20 DVSIZE[4:0] : data value size

0x0: data value size not supported

Bits 19:15 DASIZE[4:0] : data address size.

0x0: data address size not supported

Bits 14:10 VMIDSIZE[4:0] : virtual machine ID size

0x0: virtual machine ID tracing not implemented

Bits 9:5 CIDSIZE[4:0] : context ID size

0x0: context ID tracing not implemented

Bits 4:0 IASIZE[4:0] : instruction address size

0x4: maximum 32-bit address size

ETM identification register 3 (ETM_IDR3)

Address offset: 0x1EC

Reset value: 0x0F09 0004

31302928272625242322212019181716
NOOVERFLOW
W
NUMPROC[2:0]SYSSTALL
ALL
STALLCTL
CTL
SYNCP
R
TRCERR
R
Res.Res.Res.Res.EXLEVEL_S[3:0]
rrrrrrrrrrrr
1514131211109876543210
Res.Res.Res.Res.CCITMIN[11:0]
rrrrrrrrrrrr

Bit 31 NOOVERFLOW : ETM_STALLCTLR.NOOVERFLOW implementation

0: not implemented

Bits 30:28 NUMPROC[2:0] : number of processors available for tracing

0x0: one processor

Bit 27 SYSSTALL : system support for stall control of the processor

1: system supports stall control

Bit 26 STALLCTL : stall control support

1: ETM_STALLCTLR implemented

Bit 25 SYNCPR : trace synchronization period support

1: ETM_SYNCPR is read-only for instruction trace only configuration. The trace synchronization period is fixed.

Bit 24 TRCERR : ETM_VICTLR.TRCERR implementation

0x1: implemented

Bits 23:20 Reserved, must be kept at reset value.

Bits 19:16 EXLEVEL_S[3:0] : privilege levels implementation

0x9: privilege levels thread and handler implemented

Bits 15:12 Reserved, must be kept at reset value.

Bits 11:0 CCITMIN[11:0] : minimum value that can be programmed to TRCCCCTLR.THRESHOLD

Defines the minimum cycle counting threshold.

0x4: minimum of four-instruction trace cycles

ETM identification register 4 (ETM_IDR4)

Address offset: 0x1F0

Reset value: 0x0011 4000

31302928272625242322212019181716
NUMVMIDC[3:0]NUMCIDC[3:0]NUMSSCC[3:0]NUMRSPAIR[3:0]
rrrrrrrrrrrrrrrr
1514131211109876543210
NUMPC[3:0]Res.Res.Res.SUPPDACNUMDVC[3:0]NUMACPAIRS[3:0]
rrrrrrrrrrrrr

Bits 31:28 NUMVMIDC[3:0] : number of virtual machine ID (VMID) comparators

0x0: VMID comparators not implemented

Bits 27:24 NUMCIDC[3:0] : number of context ID comparators

0x0: context ID comparators not supported

Bits 23:20 NUMSSCC[3:0] : number of single-shot comparator controls

0x1: one single-shot comparator control implemented

Bits 19:16 NUMRSPAIR[3:0] : number of resource selection pairs

0x1: two resource selection pairs implemented

Bits 15:12 NUMPC[3:0] : number of processor comparator inputs for the DWT

0x4: four processor comparator inputs implemented

Bits 11:9 Reserved, must be kept at reset value.

Bit 8 SUPPDAC : data address comparisons

0: data address comparisons not supported

Bits 7:4 NUMDVC[3:0] : number of data value comparators

0x0: no data value comparators implemented

Bits 3:0 NUMACPAIRS[3:0] : number of address comparator pairs

0x0: no address comparator pairs implemented

ETM identification register 5 (ETM_IDR5)

Address offset: 0x1F4

Reset value: 0x90C7 0004

31302928272625242322212019181716
REDFUNCNTRNUMCNTR[2:0]NUMSEQSTATE[2:0]Res.LPOVERIDEATBTRIGTRACEIDSIZE[5:0]
rrrrrrrrrrrrrrr
1514131211109876543210
Res.Res.Res.Res.NUMEXTINSEL[2:0]NUMEXTIN[8:0]
rrrrrrrrrrrr

Bit 31 REDFUNCNTR : reduced function counter

1: counter 0 implemented as a reduced function counter

  1. Bits 30:28 NUMCNTR[2:0] : number of counters
    0x1: one counter implemented.
  2. Bits 27:25 NUMSEQSTATE[2:0] : number of sequencer states
    0x0: no sequencer states implemented.
  3. Bit 24 Reserved, must be kept at reset value.
  4. Bit 23 LPOVERRIDE : low-power state override support
    1: low-power state override support implemented
  5. Bit 22 ATBTRIG : ATB trigger support
    1: ATB trigger support implemented
  6. Bits 21:16 TRACEIDSIZE[5:0] : number of bits of trace identification
    0x7: 7-bit trace identification implemented
  7. Bits 15:12 Reserved, must be kept at reset value.
  8. Bits 11:9 NUMEXTINSEL[2:0] : number of external input selectors
    0x0: no external input selectors implemented.
  9. Bits 8:0 NUMEXTIN[8:0] : number of external inputs
    0x004: four external inputs implemented.

ETM resource register 2 (ETM_RSCTLR2)

Address offset: 0x208

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PAIRINV
V
INVRes.GROUP[2:0]
rwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.SELECT[7:0]
rwrwrwrwrwrwrwrw
  1. Bits 31:22 Reserved, must be kept at reset value.
  2. Bit 21 PAIRINV : result of a combined pair of resources inversion
    0: not inverted
    1: inverted
  3. Bit 20 INV : selected resources inversion
    0: not inverted
    1: inverted
  4. Bit 19 Reserved, must be kept at reset value.
  5. Bits 18:16 GROUP[2:0] : group of resources selection
    0x0: external input selectors (select 0-3)
    0x1: inputs from processor DWT comparators element (select 0-3)
    0x2: counter at zero (select 0)
    0x3: single-shot comparator (select 0)
    others: reserved
  6. Bits 15:8 Reserved, must be kept at reset value.

Bits 7:0 SELECT[7:0] : more resources selection
Selects one or more resources from the group selected in GROUP[2:0].

ETM resource register 3 (ETM_RSCTLR3)

Address offset: 0x20C

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.INVRes.GROUP[2:0]
rwrwrwrw

1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.SELECT[7:0]
rwrwrwrwrwrwrwrw

Bits 31:21 Reserved, must be kept at reset value.

Bit 20 INV : selected resources inversion

0: not inverted

1: inverted

Bit 19 Reserved, must be kept at reset value.

Bits 18:16 GROUP[2:0] : group of resources selection

0x0: external input selectors (select 0-3)

0x1: inputs from processor DWT comparators element (select 0-3)

0x2: counter at zero (select 0)

0x3: single-shot comparator (select 0)

others: reserved

Bits 15:8 Reserved, must be kept at reset value.

Bits 7:0 SELECT[7:0] : more resources selection

Selects one or more resources from the group selected in GROUP[2:0].

ETM single-shot comparator control register 0 (ETM_SSCCR0)

Address offset: 0x280

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.RSTRes.Res.Res.Res.Res.Res.Res.Res.
rw

1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.

Bits 31:25 Reserved, must be kept at reset value.

Bit 24 RST : single-shot comparator reset

Enables the single-shot comparator resource to be reset when it occurs, to enable another comparator match to be detected.

1: reset enabled

Bits 23:0 Reserved, must be kept at reset value.

ETM single-shot comparator status register 0 (ETM_SSCSR0)

Address offset: 0x2A0

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
STATUSRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
rw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PCDVDAINST
rrrr

Bit 31 STATUS : single-shot comparator status

Indicates whether any of the selected comparators have matched.

0: no match occurred

1: at least one match occurred

Bits 30:4 Reserved, must be kept at reset value.

Bit 3 PC : processor comparator input sensitivity

1: single-shot comparator sensitive to processor comparator inputs

Bit 2 DV : data value comparator support

0: single-shot data value comparisons not supported

Bit 1 DA : data address comparator support

0: single-shot data address comparisons not supported

Bit 0 INST : instruction address comparator support

0: single-shot instruction address comparisons not supported

ETM single-shot processor comparator input control register 0 (ETM_SSPCICR0)

Address offset: 0x2C0

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PC[3:0]
rwrwrwrw

Bits 31:4 Reserved, must be kept at reset value.

Bits 3:0 PC[3:0] : processor comparator inputs selection for single-shot control

ETM power-down control register (ETM_PDCR)

Address offset: 0x310

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PU
rw
Res.Res.Res.

Bits 31:4 Reserved, must be kept at reset value.

Bit 3 PU : power-up request

Bits 2:0 Reserved, must be kept at reset value.

ETM power-down status register (ETM_PDSR)

Address offset: 0x314

Reset value: 0x0000 0003

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.STICK
YPD
r
POWE
R
r

Bits 31:2 Reserved, must be kept at reset value.

Bit 1 STICKYPD : sticky power-down state

Bit 0 POWER : ETM power-up status

ETM claim tag set register (ETM_CLAIMSETR)

Address offset: 0xFA0

Reset value: 0x0000 000F

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CLAIMSET[3:0]
rwrwrwrw

Bits 31:4 Reserved, must be kept at reset value.

Bits 3:0 CLAIMSET[3:0] : claim tag bits setting

Write:

0000: no effect

xxx1: Sets bit 0.

xx1x: Sets bit 1.

x1xx: Sets bit 2.

1xxx: Sets bit 3.

Read:

0xF: Indicates there are four bits in claim tag.

ETM claim tag clear register (ETM_CLAIMCLR)

Address offset: 0xFA4

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CLAIMCLR[3:0]

Bits 31:4 Reserved, must be kept at reset value.

Bits 3:0 CLAIMCLR[3:0] : claim tag bits reset

Write:

0000: no effect

xxx1: Clears bit 0.

xx1x: Clears bit 1.

x1xx: Clears bit 2.

1xxx: Clears bit 3.

Read: Returns current value of claim tag.

ETM authentication status register (ETM_AUTHSTATR)

Address offset: 0xFB8

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.SNID[1:0]SID[1:0]NSNID[1:0]NSID[1:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:6 SNID[1:0] : security level for secure non-invasive debug

0x2: secure non-invasive debug disabled

0x3: secure non-invasive debug enabled

Bits 5:4 SID[1:0] : security level for secure invasive debug

0x0: not implemented

Bits 3:2 NSNID[1:0] : security level for nonsecure non-invasive debug

0x2: nonsecure non-invasive debug disabled

0x3: nonsecure non-invasive debug enabled

Bits 1:0 NSID[1:0] : security level for nonsecure invasive debug

0x0: not implemented

ETM device type architecture register (ETM_DEVARCHR)

Address offset: 0xFBC

Reset value: 0x4772 4A13

31302928272625242322212019181716
ARCHITECT[10:0]PRESENTREVISION[3:0]
rrrrrrrrrrrrrrrr
1514131211109876543210
ARCHVER[3:0]ARCHPART[11:0]
rrrrrrrrrrrrrrrr

Bits 31:21 ARCHITECT[10:0] : architect JEP106 code

0x23B: JEP106 continuation code 0x4, JEP106 ID code 0x3B. Arm limited.

Bit 20 PRESENT : DEVARCH register presence

0x1: present

Bits 19:16 REVISION[3:0] : architecture revision

0x2: ETM architecture v4.2

Bits 15:12 ARCHVER[3:0] : architecture version

0x4: ETM architecture v4.2

Bits 11:0 ARCHPART[11:0] : architecture part
0xA13: ETM architecture

ETM CoreSight device type register (ETM_DEVTYPE)

Address offset: 0xFCC

Reset value: 0x0000 0013

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.SUBTYPE[3:0]MAJORTYPE[3:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 SUBTYPE[3:0] : device sub-type identifier
0x1: processor trace

Bits 3:0 MAJORTYPE[3:0] : device main type identifier
0x3: trace source

ETM CoreSight peripheral identity register 4 (ETM_PIDR4)

Address offset: 0xFD0

Reset value: 0x0000 0004

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.SIZE[3:0]JEP106CON[3:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 SIZE[3:0] : register file size
0x0: The register file occupies a single 4-Kbyte region.

Bits 3:0 JEP106CON[3:0] : JEP106 continuation code
0x4: Arm JEDEC code

ETM CoreSight peripheral identity register 0 (ETM_PIDR0)

Address offset: 0xFE0

Reset value: 0x0000 0021

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PARTNUM[7:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PARTNUM[7:0] : part number bits [7:0]

0x21: ETM part number

ETM CoreSight peripheral identity register 1 (ETM_PIDR1)

Address offset: 0xFE4

Reset value: 0x0000 00BD

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.JEP106ID[3:0]PARTNUM[11:8]

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 JEP106ID[3:0] : JEP106 identity code bits [3:0]

0xB: Arm JEDEC code

Bits 3:0 PARTNUM[11:8] : part number bits [11:8]

0xD: ETM part number

ETM CoreSight peripheral identity register 2 (ETM_PIDR2)

Address offset: 0xFE8

Reset value: 0x0000 001B

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.REVISION[3:0]JEDECJEP106ID[6:4]

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 REVISION[3:0] : component revision number

0x1: r0p1

Bit 3 JEDEC : JEDEC assigned value

0x1: designer identification specified by JEDEC

Bits 2:0 JEP106ID[6:4] : JEP106 identity code bits [6:4]

0x3: Arm JEDEC code

ETM CoreSight peripheral identity register 3 (ETM_PIDR3)

Address offset: 0xFEC

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.REVAND[3:0]CMOD[3:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 REVAND[3:0] : metal fix version

0x0: no metal fix

Bits 3:0 CMOD[3:0] : customer modified

0x0: no customer modifications

ETM CoreSight component identity register 0 (ETM_CIDR0)

Address offset: 0xFF0

Reset value: 0x0000 000D

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[7:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[7:0] : component identification bits [7:0]

0x0D: common identification value

ETM CoreSight peripheral identity register 1 (ETM_CIDR1)

Address offset: 0xFF4

Reset value: 0x0000 0090

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.
CLASS[3:0]PREAMBLE[11:8]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 CLASS[3:0] : component identification bits [15:12] - component class

0x9: trace generator component

Bits 3:0 PREAMBLE[11:8] : component identification bits [11:8]

0x0: common identification value

ETM CoreSight component identity register 2 (ETM_CIDR2)

Address offset: 0xFF8

Reset value: 0x0000 0005

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.
PREAMBLE[19:12]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[19:12] : component identification bits [23:16]

0x05: common identification value

ETM CoreSight component identity register 3 (ETM_CIDR3)

Address offset: 0xFFC

Reset value: 0x0000 00B1

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.
PREAMBLE[27:20]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[27:20] : component identification bits [31:24]

0xB1: common identification value

45.10.2 ETM register map and reset values

The ETM registers are accessed by the debugger through AP1 at address range 0xE004 1000 to 0xE004 1FFC.

Table 461. ETM register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x004ETM_PRGCTLRResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResEN
Reset value0
0x008ReservedReserved
0x00CETM_STATRResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResPMSTABLEIDLE
Reset valueXX
0x010ETM_CONFIGRResResResResResResResResResResResResResResResResResResResRSCOND[5:0]CCBBResResRes
Reset valueXXXXXXXXX
0x014-0x01CReservedReserved
0x020ETM_EVENTCTL0RResResResResResResResResResResResResResResResResTYPE1ResResResSEL1[3:0]TYPE0ResResResResSEL0[3:0]
Reset valueXXXXXXXX
0x024ETM_EVENTCTL1RResResResResResResResResResResResResResResResResResResResLP OVERRIDEATBResResResResResResResResResINSTEN[1:0]
Reset valueXXX
0x028ReservedReserved
0x02CETM_STALLCTLRResResResResResResResResResResResResResResResResResResResResINSTPRIORITYResISTALLResResResResResLEVEL[3:0]
Reset valueXXXXX
0x030ReservedReserved
0x034ETM_SYNCPRResResResResResResResResResResResResResResResResResResResResResResResResResResResResPERIOD[4:0]
Reset value010
0x038ETM_CCCTLRResResResResResResResResResResResResResResResResResResResResTHRESHOLD[11:0]
Reset valueXXXXXXXXXXX
0x03CReservedReserved
0x040ETM_TRACEIDRResResResResResResResResResResResResResResResResResResResResResResResResResResResResTRACEID[6:0]
Reset valueXXX
0x044-0x07CReservedReserved

Table 461. ETM register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x080ETM_VICTLRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.EXLEVEL_S [3:0]Res.Res.Res.Res.Res.TRCERRTRCRESETSSSTATUSRes.EVENT[7:0]
Reset valueXXXXXXXXXXXXXXX
0x084-0x13CReservedReserved
0x140ETM_CNTRLDVR0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.VALUE[15:0]
Reset valueXXXXXXXXXXXXXXXX
0x144 to 0x17CReservedReserved
0x180ETM_IDR8MAXSPEC[31:0]
Reset value00000000000000000000000000000000
0x184ETM_IDR9NUMP0KEY[31:0]
Reset value00000000000000000000000000000000
0x188ETM_IDR10NUMP1KEY[31:0]
Reset value00000000000000000000000000000000
0x18CETM_IDR11NUMP1SPC[31:0]
Reset value00000000000000000000000000000000
0x190ETM_IDR12NUMCONDKEY[31:0]
Reset value00000000000000000000000000000001
0x194ETM_IDR13NUMCONDSPC[31:0]
Reset value00000000000000000000000000000000
0x198-0x1BCReservedReserved
0x1C0ETM_IMSPECR0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SUPPORT [3:0]
Reset value0000
0x1C4-0x1DCReservedReserved
0x1E0ETM_IDR0Res.Res.COMMOPTRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.TRCEXDATAQSUPP [1:0]Res.Res.CONDTYPE [1:0]Res.NUMEVENT [1:0]RETSTACKRes.TRCCCITRCCONDTRCBBTRCDATA[1:0]INSTP0[1:0]Res.
Reset value1000000111110000
0x1E4ETM_IDR1DESIGNER[7:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TRCARCHMAJ [3:0]TRCARCHMIN [3:0]REVISION [3:0]
Reset value010000010100001000001
0x1E8ETM_IDR2Res.Res.Res.CCSIZE[3:0]DVSIZE[4:0]DASIZE[4:0]VMIDSIZE[4:0]CIDSIZE[4:0]IASIZE[4:0]
Reset value0000000000000000000000000100
0x1ECETM_IDR3NOOVERFLOWNUMPROC[2:0]SYSSTALLSTALLCTLSYNCPRTRCERRRes.Res.Res.Res.Res.EXLEVEL_S [3:0]Res.Res.Res.Res.CCITMIN[11:0]
Reset value000011111001000000000100

Table 461. ETM register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x1F0ETM_IDR4NUMVMIDC [3:0]NUMCIDC [3:0]NUMSSCC [3:0]NUMRSPAIR [3:0]NUMPC [3:0]Res.Res.Res.SUPPDACNUMDVC [3:0]NUMACPAIRS [3:0]
Reset value00000000000100010100000000000
0x1F4ETM_IDR5REDFUNCNTRNUMCNTR[2:0]NUMSEQSTATE [2:0]Res.LPOVERRIDEATBTRIGTRACEIDSIZE [5:0]Res.Res.Res.Res.NUMEXTINSEL [2:0]NUMEXTIN[8:0]
Reset value1001000110001110000000000100
0x1F8-0x204ReservedReserved
0x208ETM_RSCTLR2Res.Res.Res.Res.Res.Res.Res.Res.Res.PAIRINVINVRes.GROUP [2:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SELECT[7:0]
Reset valueXXXXXXXXXXXXX
0x20CETM_RSCTLR3Res.Res.Res.Res.Res.Res.Res.Res.Res.INVRes.GROUP [2:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SELECT[7:0]
Reset valueXXXXXXXXXXXX
0x210-0x27CReservedReserved
0x280ETM_SSCCR0Res.Res.Res.Res.Res.Res.Res.RSTRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset valueX
0x284-0x29CReservedReserved
0x2A0ETM_SSCSR0STATUSRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PCDVDAINST
Reset valueXXXXX
0x2A4-0x2BCReservedReserved
0x2C0ETM_SSPCICR0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PC[3:0]
Reset valueXXXX
0x2C4-0x30CReservedReserved
0x310ETM_PDCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PURes.Res.Res.
Reset value0
0x314ETM_PDSRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.STICKYPOWER
Reset value11
0x318-0xF9CReservedReserved
0xFA0ETM_CLAIMSETRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CLAIMSET [3:0]
Reset value1111
0xFA4ETM_CLAIMCLRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CLAIMCLR [3:0]
Reset value0000

Table 461. ETM register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFA8-0xFB4ReservedReserved
0xFB8ETM_AUTHSTATRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SNID [1:0]SID [1:0]NSNID [1:0]NSID [1:0]
Reset valueXXXXXXXX
0xFBCETM_DEVARCHRARCHITECT[10:0]PRESENREVISION [3:0]ARCHVER [3:0]ARCHPART[11:0]
Reset value01000111011100100100101000010011
0xFC0-0xFC8ReservedReserved
0xFCCETM_DEVTYPERRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SUBTYPE [3:0]MAJORTYP [3:0]
Reset value00010011
0xFD0ETM_PIDR4Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SIZE[3:0]JEP106CON [3:0]
Reset value00000100
0xFD4-0xFDCReservedReserved
0xFE0ETM_PIDR0Res.PARTNUM[7:0]
Reset value00100001
0xFE4ETM_PIDR1Res.JEP106ID [3:0]PARTNUM [11:8]
Reset value10111101
0xFE8ETM_PIDR2Res.REVISION [3:0]JEDECJEP106ID [6:4]
Reset value00011011
0xFECETM_PIDR3Res.REVAND[3:0]CMOD[3:0]
Reset value00000000
0xFF0ETM_CIDR0Res.PREAMBLE[7:0]
Reset value00001101
0xFF4ETM_CIDR1Res.CLASS[3:0]PREAMBLE [11:8]
Reset value10010000
0xFF8ETM_CIDR2Res.PREAMBLE[19:12]
Reset value00000101
0xFFCETM_CIDR3Res.PREAMBLE[27:20]
Reset value10110001

Refer to Section 45.5: System debug AP0 features for the register boundary addresses.

45.11 Trace port interface unit (TPIU)

The TPIU formats the trace stream and outputs it on the external trace port signals. The TPIU has two ATB slave ports for incoming trace data from the ITM and ETM. The trace port is a synchronous parallel port, comprising a clock output, TRACECLK, and four data

outputs, TRACEDATA[3:0]. The trace port width is programmable in the range 1 to 4. Using a smaller port width reduces the number of test points/connector pins needed, and frees up IOs for other purposes, at the expense of bandwidth restriction of the trace port, and hence of the quantity of trace information that can be output in real time.

Figure 526. Trace port interface unit (TPIU)

Block diagram of the Trace port interface unit (TPIU). The diagram shows three main input sources: ETM ATB, ITM ATB, and Cortex-M33 private peripheral bus (PPB). ETM ATB and ITM ATB connect to separate ATB interface blocks, which then connect to a central Formatter block. The PPB connects to an APB interface block, which also connects to the Formatter block. The Formatter block connects to a Trace output (serialiser) block. The serialiser block has three output pins: TRACECLK, TRACEDATA(3:0), and TRACESWO. A small text 'MSv49704V1' is visible in the bottom right corner of the diagram area.
Block diagram of the Trace port interface unit (TPIU). The diagram shows three main input sources: ETM ATB, ITM ATB, and Cortex-M33 private peripheral bus (PPB). ETM ATB and ITM ATB connect to separate ATB interface blocks, which then connect to a central Formatter block. The PPB connects to an APB interface block, which also connects to the Formatter block. The Formatter block connects to a Trace output (serialiser) block. The serialiser block has three output pins: TRACECLK, TRACEDATA(3:0), and TRACESWO. A small text 'MSv49704V1' is visible in the bottom right corner of the diagram area.

Trace data can also be output on the serial-wire output, TRACESWO.

For more information on the trace port interface in the Cortex-M33, refer to the Arm ® Cortex-M33 Technical Reference Manual [5].

45.11.1 TPIU registers

45.11.2 TPIU supported port size register (TPIU_SSPSR)

Address offset: 0x000

Reset value: 0x0000 0001

31302928272625242322212019181716
PORTSIZE[31:16]
rrrrrrrrrrrrrrrr
1514131211109876543210
PORTSIZE[15:0]
rrrrrrrrrrrrrrrr

Bits 31:0 PORTSIZE[31:0] : Supported trace port sizes, from 1 to 32 pins

Bit n-1 when set indicates that port size n is supported.

0x0000 0001: Port size 1 supported

45.11.3 TPIU current port size register (TPIU_CSPSR)

Address offset: 0x004

Reset value: 0x0000 0001

31302928272625242322212019181716
PORTSIZE[31:16]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
PORTSIZE[15:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:0 PORTSIZE[31:0] : Current trace port size

Bit n-1 when set indicates that the current port size is n pins. The value of n must be within the range of supported port size (1). Only one bit can be set, or unpredictable behavior may result. This register must be modified only when the formatter is stopped.

45.11.4 TPIU asynchronous clock prescaler register (TPIU_ACPR)

Address offset: 0x010

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.PRESCALER[12:0]
rwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:13 Reserved, must be kept at reset value.

Bits 12:0 PRESCALER[12:0] : selects the baud rate for the asynchronous output, TRACESWO

The baud rate is given by the TRACECLKIN frequency divided by (PRESCALER +1).

45.11.5 TPIU selected pin protocol register (TPIU_SPPR)

Address offset: 0x0F0

Reset value: 0x0000 0001

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TXMODE[1:0]
rwrw

Bits 31:2 Reserved, must be kept at reset value.

Bits 1:0 TXMODE[1:0] : selects the protocol used for trace output

0x0: reserved (parallel trace port mode not supported in this device)

0x1: Asynchronous SWO using Manchester encoding

0x2: Asynchronous SWO using NRZ encoding

0x3: reserved

45.11.6 TPIU formatter and flush status register (TPIU_FFSR)

Address offset: 0x300

Reset value: 0x0000 0008

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FTNON
STOP
TCPRE
SENT
FTSTO
PPED
FLINP
ROG
rrrr

Bits 31:4 Reserved, must be kept at reset value.

Bit 3 FTNONSTOP : Indicates whether formatter can be stopped or not

1: Formatter cannot be stopped.

Bit 2 TCPPRESENT : Indicates whether the optional TRACECTL output pin is available for use

0: TRACECTL pin is not present in this device.

Bit 1 FTSTOPPED : Stop request signal received

The formatter received a stop request signal and all trace data and post-amble is sent. Any additional trace data on the ATB interface is ignored.

0: Formatter not stopped

1: Formatter stopped

Bit 0 FLINPROG : Flush in progress

This bit indicates whether a flush on the ATB slave port is in progress and reflects the status of the AFVALIDS output. A flush can be initiated by the flush control bits in the TPIU_FFCR register.

0: No flush in progress

1: Flush in progress

45.11.7 TPIU formatter and flush control register (TPIU_FFCR)

Address offset: 0x304

Reset value: 0x0000 0102

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.TRIGINRes.FONM
AN
Res.Res.Res.Res.ENFCO
NT
Res.
rrwrw

Bits 31:9 Reserved, must be kept at reset value.

Bit 8 TRIGIN : Trigger on trigger in

1: Indicates a trigger in the trace stream when the TRIGIN input is asserted.

Bit 7 Reserved, must be kept at reset value.

Bit 6 FONMAN : Flush on manual

0: flush completed

1: generate a flush

Bits 5:2 Reserved, must be kept at reset value.

Bit 1 ENFCONT : Continuous formatting enable

Setting this bit to 0 in SWO mode bypasses the formatter and only ITM/DWT trace is output, ETM trace is disabled.

0: Continuous formatting disabled

1: Continuous formatting enabled

Bit 0 Reserved, must be kept at reset value.

45.11.8 TPIU formatter synchronization counter register (TPIU_FSCR)

Address offset: 0x308

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.PSCOUNT[12:0]
rwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:13 Reserved, must be kept at reset value.

Bits 12:0 PSCOUNT[12:0] : Formatter frames counter

Enables effective use of different sized TPAs without wasting large amounts of the storage capacity of the capture device. This counter contains the number of formatter frames since the last synchronization packet of 128 bits. It is a 12-bit counter with a maximum count value of 4096. This equates to synchronization every 65536 bytes, that is, 4096 packets x 16 bytes per packet. The default is set up for a synchronization packet every 1024 bytes, that is, every 64 formatter frames. If the formatter is configured for continuous mode, full and half-word synchronization frames are inserted during normal operation. Under these circumstances, the count value is the maximum number of complete frames between full synchronization packets.

45.11.9 TPIU claim tag set register (TPIU_CLAIMSETR)

Address offset: 0xFA0

Reset value: 0x0000 000F

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CLAIMSET[3:0]
rwrwrwrw

Bits 31:4 Reserved, must be kept at reset value.

Bits 3:0 CLAIMSET[3:0] : Sets claim tag bits

Write:

0000: No effect

xxx1: Sets bit 0.

xx1x: Sets bit 1.

x1xx: Sets bit 2.

1xxx: Sets bit 3.

Read:

0xF: Indicates there are four bits in claim tag.

45.11.10 TPIU claim tag clear register (TPIU_CLAIMCLR)

Address offset: 0xFA4

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CLAIMCLR[3:0]
rwrwrwrw

Bits 31:4 Reserved, must be kept at reset value.

Bits 3:0 CLAIMCLR[3:0] : resets claim tag bits

Write:

0000: No effect

xxx1: Clears bit 0.

xx1x: Clears bit 1.

x1xx: Clears bit 2.

1xxx: Clears bit 3.

Read: Returns current value of claim tag.

45.11.11 TPIU device configuration register (TPIU_DEVIDR)

Address offset: 0xFC8

Reset value: 0x0000 0CA1

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.SWOUARTNRZSWOMANTCLKDATAFIFOSIZE[2:0]Res.MAXNUM[4:0]
rrrrrrrrrrr

Bits 31:12 Reserved, must be kept at reset value.

Bit 11 SWOUARTNRZ : serial-wire output, NRZ supported

1: supported

Bit 10 SWOMAN : serial-wire output, Manchester encoded format supported

1: supported

Bit 9 TCLKDATA : indicates whether trace clock plus data is supported

0: supported

Bits 8:6 FIFOSIZE[2:0] : FIFO size in powers of 2

0x2: FIFO size = 4 bytes

Bit 5 Reserved, must be kept at reset value.

Bits 4:0 MAXNUM[4:0] : number/type of ATB input port multiplexing

0x0: one input port

45.11.12 TPIU device type identifier register (TPIU_DEVTYPE)

Address offset: 0xFCC

Reset value: 0x0000 0011

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.SUBTYPE[3:0]MAJORTYPE[3:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 SUBTYPE[3:0] : Sub-classification

0x1: trace port component

Bits 3:0 MAJORTYPE[3:0] : Major classification

0x1: trace sink component

45.11.13 TPIU CoreSight peripheral identity register 4 (TPIU_PIDR4)

Address offset: 0xFD0

Reset value: 0x0000 0004

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.F4KCOUNT[3:0]JEP106CON[3:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 F4KCOUNT[3:0] : Register file size

0x0: Register file occupies a single 4-Kbyte region.

Bits 3:0 JEP106CON[3:0] : JEP106 continuation code

0x4: Arm® JEDEC code

45.11.14 TPIU CoreSight peripheral identity register 0 (TPIU_PIDR0)

Address offset: 0xFE0

Reset value: 0x0000 0021

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PARTNUM[7:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PARTNUM[7:0] : Part number bits [7:0]

0x21: TPIU part number

45.11.15 TPIU CoreSight peripheral identity register 1 (TPIU_PIDR1)

Address offset: 0xFE4

Reset value: 0x0000 00BD

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.JEP106ID[3:0]PARTNUM[11:8]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 JEP106ID[3:0] : JEP106 identity code bits [3:0]
0xB: Arm® JEDEC code

Bits 3:0 PARTNUM[11:8] : Part number bits [11:8]
0xD: TPIU part number

45.11.16 TPIU CoreSight peripheral identity register 2 (TPIU_PIDR2)

Address offset: 0xFE8

Reset value: 0x0000 000B

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.REVISION[3:0]JEDECJEP106ID[6:4]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 REVISION[3:0] : Component revision number
0x0: r0p0

Bit 3 JEDEC : JEDEC assigned value
0x1: Designer ID specified by JEDEC

Bits 2:0 JEP106ID[6:4] : JEP106 identity code bits [6:4]
0x3: Arm® JEDEC code

45.11.17 TPIU CoreSight peripheral identity register 3 (TPIU_PIDR3)

Address offset: 0xFEC

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.REVAND[3:0]CMOD[3:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 REVAND[3:0] : Metal fix version
0x0: No metal fix

Bits 3:0 CMOD[3:0] : Customer modified
0x0: No customer modifications

45.11.18 TPIU CoreSight component identity register 0 (TPIU_CIDR0)

Address offset: 0xFF0

Reset value: 0x0000 000D

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[7:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[7:0] : Component ID bits [7:0]

0x0D: Common ID value

45.11.19 TPIU CoreSight peripheral identity register 1 (TPIU_CIDR1)

Address offset: 0xFF4

Reset value: 0x0000 0090

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.CLASS[3:0]PREAMBLE[11:8]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 CLASS[3:0] : Component ID bits [15:12] - component class

0x9: CoreSight component

Bits 3:0 PREAMBLE[11:8] : Component ID bits [11:8]

0x0: Common ID value

45.11.20 TPIU CoreSight component identity register 2 (TPIU_CIDR2)

Address offset: 0xFF8

Reset value: 0x0000 0005

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[19:12]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[19:12] : Component ID bits [23:16]
0x05: Common ID value

45.11.21 TPIU CoreSight component identity register 3 (TPIU_CIDR3)

Address offset: 0xFFC

Reset value: 0x0000 00B1

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[27:20]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[27:20] : Component ID bits [31:24]
0xB1: Common ID value

45.11.22 TPIU register map and reset values

The TPIU registers are accessed by the debugger through AP1 at address range 0xE004 0000 to 0xE004 0FFC.

Table 462. TPIU register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x000TPIU_SSPSRPORTSIZE[31:0]
Reset value00000000000000000000000000000001
0x004TPIU_CSPSRPORTSIZE[31:0]
Reset value00000000000000000000000000000001
0x008 to 0x00CReservedReserved.
0x010TPIU_ACPRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PRESCALER[12:0]
Reset value0000000000000
0x014 to 0x0ECReservedReserved.
0x0F0TPIU_SPPRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TXMODE[1:0]
Reset value0 1
0x0F4 to 0x2FCReservedReserved.
0x300TPIU_FFSRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FTNONSTOPTCPRESENTFTSTOPPEDFLINPROG
Reset value1000
0x304TPIU_FFCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TRIGINRes.FONMANRes.Res.Res.Res.Res.ENFCONTRes.
Reset value101
0x308TPIU_FSCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PSCOUNT[12:0]
Reset value0000000000000
0x30C to 0xF9CReservedReserved.
0xFA0TPIU_CLAIMSETRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CLAIMSET [3:0]
Reset value1111
0xFA4TPIU_CLAIMCLRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CLAIMCLR [3:0]
Reset value0000
0xFA8 to 0xFC4ReservedReserved.
0xFC8TPIU_DEVIDRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SWONRZSWOMANTCLKDATAFIFOSIZE[2:0]Res.MAXNUM[4:0]
Reset value1100100001

Table 462. TPIU register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFCCTPIU_DEVTYPERRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SUBTYPE [3:0]MAJORTYPE [3:0]
Reset value00010001
0xFD0TPIU_PIDR4Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.F4KCOUNT [3:0]JEP106CON [3:0]
Reset value00000100
0xFD4 to 0xFDCReservedReserved.
0xFE0TPIU_PIDR0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PARTNUM[7:0]
Reset value00100001
0xFE4TPIU_PIDR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.JEP106ID [3:0]PARTNUM [11:8]
Reset value10111101
0xFE8TPIU_PIDR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.REVISION [3:0]JEDECJEP106ID [6:4]
Reset value00001011
0xFECTPIU_PIDR3Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.REVAND[3:0]CMOD[3:0]
Reset value00000000
0xFF0TPIU_CIDR0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[7:0]
Reset value00001101
0xFF4TPIU_CIDR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CLASS[3:0]PREAMBLE [11:8]
Reset value10010000
0xFF8TPIU_CIDR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[19:12]
Reset value00000101
0xFFCTPIU_CIDR3Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[27:20]
Reset value10110001

Refer to Section 45.5: System debug AP0 features for the register boundary addresses.

45.12 Cross trigger interface (CTI)

The CTI allows cross triggering between the processor and the ETM.

Figure 527. Embedded cross trigger

Diagram of the Embedded cross trigger (CTI) architecture. It shows the Cortex-M33 CPU connected to the CTI via HALTED, EDBGREQ, and DBGRESTART signals. The DWT is connected to the CTI via ETMTRIGGER0, ETMTRIGGER1, and ETMTRIGGER2. The ETM is connected to the CTI via ETMTRIGOUT0, ETMTRIGOUT1, ETMEXTIN0, ETMEXTIN1, ETMEXTIN2, and ETMEXTIN3. The CTI has TRIGIN0-TRIGIN5 and TRIGOUT0-TRIGOUT7 pins. A PPB (Performance Profile Block) is also shown connected to the CTI.
Diagram of the Embedded cross trigger (CTI) architecture. It shows the Cortex-M33 CPU connected to the CTI via HALTED, EDBGREQ, and DBGRESTART signals. The DWT is connected to the CTI via ETMTRIGGER0, ETMTRIGGER1, and ETMTRIGGER2. The ETM is connected to the CTI via ETMTRIGOUT0, ETMTRIGOUT1, ETMEXTIN0, ETMEXTIN1, ETMEXTIN2, and ETMEXTIN3. The CTI has TRIGIN0-TRIGIN5 and TRIGOUT0-TRIGOUT7 pins. A PPB (Performance Profile Block) is also shown connected to the CTI.

The CTI enables events from various sources to trigger debug activity (e.g. halt the processor core).

The trigger input and output signals for the CTI are listed, respectively, in tables 463 and 464.

Table 463. CTI inputs

No.Source signalSource componentComments
0HALTEDCPUCPU halted - indicates CPU is in debug mode.
1ETMTRIGGER0DWTDWT comparator output 0
2ETMTRIGGER1DWTDWT comparator output 1
3ETMTRIGGER2DWTDWT comparator output 2
4ETMTRIGOUT0ETMETM event output 0
5ETMTRIGOUT1ETMETM event output 1
6--Not used
7--Not used

Table 464. CTI outputs

No.Source signalSource componentComments
0EDBGREQCPUCPU halt request - Puts CPU in debug mode.
1DBGRESTARTCPUCPU restart request - CPU exits debug mode.

Table 464. CTI outputs (continued)

No.Source signalSource componentComments
2--Not used
3--Not used
4ETMEXTIN0ETMETM event input 0
5ETMEXTIN1ETMETM event input 1
6ETMEXTIN2ETMETM event input 2
7ETMEXTIN3ETMETM event input 3

For more information on the CTI and how to use it, refer to the Arm ® CoreSight SoC-400 Technical Reference Manual [2].

45.12.1 CTI registers

CTI control register (CTI_CONTROLR)

Address offset: 0x000

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.GLBEN
rw

Bits 31:1 Reserved, must be kept at reset value.

Bit 0 GLBEN : Global cross-triggering enable

0: disabled

1: enabled

CTI trigger acknowledge register (CTI_INTACKR)

Address offset: 0x010

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.INTACK[7:0]
rwrwrwrwrwrwrwrw

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 INTACK[7:0] : trigger acknowledge

There is one bit of the register for each CTI TRIGOUT output. When a 1 is written to a bit in this register, the corresponding CTI TRIGOUT output is acknowledged, causing it to be cleared.

CTI application trigger set register (CTI_APPSETR)

Address offset: 0x014

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.APPSET[3:0]
rwrwrwrw

Bits 31:4 Reserved, must be kept at reset value.

Bits 3:0 APPSET[3:0] : channel event setting

Read:

XXX0: Channel 0 event inactive

XXX1: Channel 0 event active

XX0X: Channel 1 event inactive

XX1X: Channel 1 event active

X0XX: Channel 2 event inactive

X1XX: Channel 2 event active

0XXX: Channel 3 event inactive

1XXX: Channel 3 event active

Write:

0000: No effect

XXX1: Sets event on Channel 0.

XX1X: Sets event on Channel 1.

X1XX: Sets event on Channel 2.

1XXX: Sets event on Channel 3.

CTI application trigger clear register (CTI_APPCLEAR)

Address offset: 0x018

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.APPCLEAR[3:0]
wwww

Bits 31:4 Reserved, must be kept at reset value.

Bits 3:0 APPCLEAR[3:0] : channel event clearing

CTI application pulse register (CTI_APPPULSER)

Address offset: 0x01C

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.APPPULSE[3:0]
wwww

Bits 31:4 Reserved, must be kept at reset value.

Bits 3:0 APPPULSE[3:0] : pulse channel event

CTI trigger in x enable register (CTI_INENRx)

Address offset: 0x020 + 0x4 * x, (x = 0 to 7)

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TRIGINEN[3:0]
rwrwrwrw

Bits 31:4 Reserved, must be kept at reset value.

Bits 3:0 TRIGINEN[3:0] : cross trigger event enable/disable

Enables or disables a cross trigger event on each of the four channels when CTITRIGINx is activated (x = 0 to 7).

0000: Trigger does not generate events on any channel.

XXX1: Trigger x generates events on Channel 0.

XX1X: Trigger x generates events on Channel 1.

X1XX: Trigger x generates events on Channel 2.

1XXX: Trigger x generates events on Channel 3.

CTI trigger out x enable register (CTI_OUTENRx)

Address offset: 0x0A0 + 0x4 * x, (x = 0 to 7)

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TRIGOUTEN[3:0]
rwrwrwrw

Bits 31:4 Reserved, must be kept at reset value.

Bits 3:0 TRIGOUTEN[3:0] : For each channel, defines whether an event on that channel generates a trigger on CTI TRIGOUTx (x = 0 to 7).

0000: Channel events do not generate triggers on any trigger output.

XXX1: Channel 0 events generate triggers on Trigger output x.

XX1X: Channel 1 events generate triggers on Trigger output x.

X1XX: Channel 2 events generate triggers on Trigger output x.

1XXX: Channel 3 events generate triggers on Trigger output x.

CTI trigger in status register (CTI_TRGISTSR)

Address offset: 0x130

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.TRIGINSTATUS[7:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 TRIGINSTATUS[7:0] : Trigger input status

There is one bit of the register for each CTITRIGIN input. When a bit is set to 1, it indicates that the corresponding trigger input is active. When it is set to 0, the corresponding trigger input is inactive.

CTI trigger out status register (CTI_TRGOSTSR)

Address offset: 0x134

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.TRIGOUTSTATUS[7:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 TRIGOUTSTATUS[7:0] : Trigger output status

There is one bit of the register for each CTI TRIGOUT output. When a bit is set to 1, it indicates that the corresponding trigger output is active. When it is set to 0, the corresponding trigger output is inactive.

CTI channel in status register (CTI_CHINSTSR)

Address offset: 0x138

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CHINSTATUS[3:0]
rrrr

Bits 31:4 Reserved, must be kept at reset value.

Bits 3:0 CHINSTATUS[3:0] : Channel input status

There is one bit of the register for each channel input. When a bit is set to 1, it indicates that the corresponding channel input is active. When it is set to 0, the corresponding channel input is inactive.

CTI channel out status register (CTI_CHOUTSTSR)

Address offset: 0x13C

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CHOUTSTATUS[3:0]
rrrr

Bits 31:4 Reserved, must be kept at reset value.

Bits 3:0 CHOUTSTATUS[3:0] : Channel output status

There is one bit of the register for each channel output. When a bit is set to 1, it indicates that the corresponding channel output is active. When it is set to 0, the corresponding channel output is inactive.

CTI channel gate register (CTI_GATER)

Address offset: 0x140

Reset value: 0x0000 000F

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.GATEEN[3:0]
rwrwrwrw

Bits 31:4 Reserved, must be kept at reset value.

Bits 3:0 GATEEN[3:0] : Channel output enable

For each channel, defines whether an event on that channel can propagate over the CTM to other CTIs.

0000: Channels events do not propagate.

XXX1: Channel 0 events propagate.

XX1X: Channel 1 events propagate.

X1XX: Channel 2 events propagate.

1XXX: Channel 3 events propagate.

CTI device configuration register (CTI_DEVIDR)

Address offset: 0xFC8

Reset value: 0x0004 0800

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.NUMCH[3:0]
rrrr
1514131211109876543210
NUMTRIG[7:0]Res.Res.Res.EXTMUXNUM[4:0]
rrrrrrrrrrrrr

Bits 31:20 Reserved, must be kept at reset value.

Bits 19:16 NUMCH[3:0] : Number of ECT channels

0x4: 4 channels

Bits 15:8 NUMTRIG[7:0] : Number of ECT triggers
0x8: 8 trigger inputs and 8 trigger outputs

Bits 7:5 Reserved, must be kept at reset value.

Bits 4:0 EXTMUXNUM[4:0] : Number of trigger input/output multiplexers
0x0: None

CTI device type identifier register (CTI_DEVTYPE)

Address offset: 0xFCC

Reset value: 0x0000 0014

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.SUBTYPE[3:0]MAJORTYPE[3:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 SUBTYPE[3:0] : sub-classification
0x1: Indicates that this component is a cross-triggering one.

Bits 3:0 MAJORTYPE[3:0] : major classification
0x4: Indicates that this component allows a debugger to control other components in a CoreSight™ SoC-400 system.

CTI CoreSight peripheral identity register 4 (CTI_PIDR4)

Address offset: 0xFD0

Reset value: 0x0000 0004

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.F4KCOUNT[3:0]JEP106CON[3:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 F4KCOUNT[3:0] : register file size
0x0: The register file occupies a single 4-Kbyte region

Bits 3:0 JEP106CON[3:0] : JEP106 continuation code
0x4: Arm® JEDEC code

CTI CoreSight peripheral identity register 0 (CTI_PIDR0)

Address offset: 0xFE0

Reset value: 0x0000 0021

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PARTNUM[7:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PARTNUM[7:0] : Part number bits [7:0]

0x21: CTI part number

CTI CoreSight peripheral identity register 1 (CTI_PIDR1)

Address offset: 0xFE4

Reset value: 0x0000 00BD

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.JEP106ID[3:0]PARTNUM[11:8]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 JEP106ID[3:0] : JEP106 identity code bits [3:0]

0xB: Arm® JEDEC code

Bits 3:0 PARTNUM[11:8] : Part number bits [11:8]

0xD: CTI part number

CTI CoreSight peripheral identity register 2 (CTI_PIDR2)

Address offset: 0xFE8

Reset value: 0x0000 000B

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.REVISION[3:0]JEDECJEP106ID[6:4]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 REVISION[3:0] : Component revision number
0x0: r0p0

Bit 3 JEDEC : JEDEC assigned value
0x1: Designer identifier specified by JEDEC

Bits 2:0 JEP106ID[6:4] : JEP106 identity code bits [6:4]
0x3: Arm® JEDEC code

CTI CoreSight peripheral identity register 3 (CTI_PIDR3)

Address offset: 0xFEC

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.REVAND[3:0]CMOD[3:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 REVAND[3:0] : Metal fix version
0x0: No metal fix

Bits 3:0 CMOD[3:0] : Customer modified
0x0: No customer modifications

CTI CoreSight component identity register 0 (CTI_CIDR0)

Address offset: 0xFF0

Reset value: 0x0000 000D

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[7:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[7:0] : Component ID bits [7:0]
0x0D: Common ID value

CTI CoreSight peripheral identity register 1 (CTI_CIDR1)

Address offset: 0xFF4

Reset value: 0x0000 0090

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.CLASS[3:0]PREAMBLE[11:8]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 CLASS[3:0] : Component ID bits [15:12] - component class

0x9: CoreSight component

Bits 3:0 PREAMBLE[11:8] : Component ID bits [11:8]

0x0: Common ID value

CTI CoreSight component identity register 2 (CTI_CIDR2)

Address offset: 0xFF8

Reset value: 0x0000 0005

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[19:12]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[19:12] : Component ID bits [23:16]

0x05: Common ID value

CTI CoreSight component identity register 3 (CTI_CIDR3)

Address offset: 0xFFC

Reset value: 0x0000 00B1

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[27:20]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[27:20] : Component ID bits [31:24]
0xB1: Common ID value

45.12.2 CTI register map and reset values

The CTI registers are accessed by the debugger through AP1 at address range 0xE004 2000 to 0xE004 2FFC.

Table 465. CTI register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x000CTI_CONTROLRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.GLBEN
Reset value0
0x004 to 0x00CReservedReserved
0x010CTI_INTACKRRes.INTACK[7:0]
Reset value0 0 0 0 0 0 0 0
0x014CTI_APPSETRRes.APPSET[3:0]
Reset value0 0 0 0
0x018CTI_APPCLEARRes.APPCLEAR [3:0]
Reset value0 0 0 0
0x01CCTI_APPPULSERRes.APPPULSE [3:0]
Reset value0 0 0 0
0x020 to 0x03CCTI_INENR0 to CTI_INENR7Res.TRIGINEN [3:0]
Reset value0 0 0 0
0x040 to 0x09CReservedReserved
0x0A0 to 0x0BCCTI_OUTENR0 to CTI_OUTENR7Res.TRIGOUTEN [3:0]
Reset value0 0 0 0
0x0C0 to 0x12CReservedReserved
0x130CTI_TRIGISTSRRes.TRIGINSTATUS[7:0]
Reset value0 0 0 0 0 0 0 0
0x134CTI_TRIGOSTSRRes.TRIGOUTSTATUS[7:0]
Reset value0 0 0 0 0 0 0 0
0x138CTI_CHINSTSRRes.CHIN STATUS[3:0]
Reset value0 0 0 0
0x13CCTI_CHOUTSTSRRes.CHOUT STATUS[3:0]
Reset value0 0 0 0
0x140CTI_GATERRes.GATEEN[3:0]
Reset value1 1 1 1

Table 465. CTI register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x144 to 0xFC4ReservedReserved
0xFC8CTI_DEVIDRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.NUMCH[3:0]NUMTRIG[7:0]Res.Res.Res.EXTMUXNUM [4:0]
Reset value01000000100000000
0xFC8CTI_DEVTYPERes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SUBTYPE [3:0]MAJORTYPE [3:0]
Reset value00010100
0xFD0CTI_PIDR4Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.F4KCOUNT [3:0]JEP106CON [3:0]
Reset value00000100
0xFD4 to 0xFDCReservedReserved
0xFE0CTI_PIDR0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PARTNUM[7:0]
Reset value00100001
0xFE4CTI_PIDR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.JEP106ID [3:0]PARTNUM [11:8]
Reset value10111101
0xFE8CTI_PIDR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.REVISION [3:0]JEDECJEP106ID [6:4]
Reset value0000101
0xFECCTI_PIDR3Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.REVAND[3:0]CMOD[3:0]
Reset value00000000
0xFF0CTI_CIDR0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[7:0]
Reset value00001101
0xFF4CTI_CIDR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CLASS[3:0]PREAMBLE [11:8]
Reset value10010000
0xFF8CTI_CIDR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[19:12]
Reset value00000101
0xFFCCTI_CIDR3Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[27:20]
Reset value10110001
Refer to Section 45.5: System debug AP0 features for the register boundary addresses.

45.13 Microcontroller debug unit (DBGMCU)

DBGMCU is a component containing a number of registers that control the power and clock behavior in debug mode. It allows the debugger (or the debug software) to perform the following tasks:

45.13.1 DBGMCU access

The DBGMCU can be accessed through both AP0 and AP1, and directly by the Cortex-M33 processor with the following restrictions:

45.13.2 Device ID

The DBGMCU includes an identity code register, DBGMCU_IDCODE. This register contains the ID code for the device. Debug tools can locate this register via the CoreSight discovery procedure described in Section 45.6.1: CPU ROM tables .

45.13.3 Part number codification

The part number codification can be read from the DBGMCU registers DBGMCU_PNCR.

45.13.4 Low-power mode emulation

When the device enters Stop mode or Standby mode, the debugger can no longer access the CPU debug access port and loses the connection with the device CPU. In Stop mode it still remains possible to access the DBGMCU from the debugger. To gain or keep CPU debug access, the debugger (or software) can set the DBG_STOP and/or DBG_STANDBY bits in the DBGMCU_SCR register. This allows maintaining the clock and power to the device CPU and DBGMCU even when it enters Stop mode or Standby mode. When in debug Stop or debug Standby mode, the processor remains in deep sleep mode and exits this mode in the normal way. In these debug modes the processor can also be woken up by a debugger halt instruction, which also puts the device back to Run mode. When in debug Stop or debug Standby mode, all other device peripherals behave as in Stop mode or Standby mode and are not accessible from the debugger. In debug Stop mode, autonomous peripherals continue to operate when they request their clock. In debug Standby mode, the peripherals are kept under reset.

Note: When using debug Stop mode (DBG_STOP) a SysTick event wakes up the device. It is good practice that software disables the SysTick, before the CPU enters deep sleep.

In Stop mode, without enabling DBG_STOP, debug access via the DAP is still possible to the DBGMCU. To keep access to the DBGMCU in Standby mode, without enabling

DBG_STANDBY, is possible by enabling CDBGPWRIUPREQ before entering Standby mode. Keeping access to the DBGMCU allows to access the DBGMCU registers.

In debug Stop mode and debug Standby mode the device behavior does not differ from Stop mode and Standby mode, with the exception of SRAMs, which are retained and keep their values. For more details, see Table 466 .

Table 466. Low-power debug overview

Low-power modeSystem clockPower supplyDBGMCU and DAPCPU debugAutonomous peripheralsOther peripheralsSRAMsLow-power mode exitDebug wake-up
DBG_STOP (1)HSI16OnAccessibleAs Stop mode, clock on requestAs Stop mode, clock offAs Stop mode retainedStop wake-upHalt CPU
DBG_STANDBY (1)AccessibleUnder resetAs Standby mode retainedStandby resetHalt CPU
Stop (2)OffOnAccessibleAs Stop mode, clock offAs Stop mode, clock on requestAs Stop mode, clock offAs Stop mode retainedStop wake-upVia DBG_STOP
Standby with CDBGPWRIUPREQ (2)AccessibleUnder resetAs Standby mode retainedStandby resetVia DBG_STANDBY
Standby (3)OffOffPower downPower down when not retainedStandby resetNone

1. In DBG_STOP and DBG_STANDBY mode the debug connection with the CPU and access to the DBGMCU is kept. CPU can be woken up with debugger Halt.

2. In Stop mode and Standby mode with CDBGPWRIUPREQ, only debug access to the DBGMCU is kept, the debug connection to the CPU is lost. DBGMCU can be used to activate CPU clock via DBG_STOP or DBG_STANDBY.

3. In Standby mode all debug access is lost.

In Stop debug mode and Standby debug mode both the CPU debug and DBGMCU are accessible from the debugger. A debugger halt to the CPU wakes up the CPU and sets the system to Run mode. Only in Run mode peripherals with their bus clock enabled are accessible from the debugger.

In Stop mode and Standby mode with CDBGPWRIUPREQ enabled, only the DBGMCU is accessible from the debugger. Via the DBGMCU DBG_STOP and DBG_STANDBY, the debugger can move the device to the debug Stop and debug Standby mode to regain debug access to the CPU.

In Standby mode all debug access is lost.

45.13.5 Low-power mode status

The DBGMCU provide status flags for the processor core and device operating mode in DBGMCU_SCR.

Table 467. Low-power mode status flags

Status flagDescription
CSCPU in Sleep mode
CDSCPU in deep sleep mode
STOPFDevice in Stop mode
SBFDevice in Standby mode (this bit is only available with DBG_STANDBY or CDBGPWRUPREQ)

45.13.6 Peripheral clock freeze

The DBGMCU provides a peripheral clock freeze feature in the DBGMCU_XXXFZR registers. This allows the operation (clock) of certain peripherals to be suspended in debug mode (when the processor is halted). Peripherals supporting this feature are listed in Table 468 .

Table 468. Peripheral clock freeze control

BusControlPeripheralBehavior
APB1LDBGMCU_APB1LFZRI2C1Freeze timeout counting
IWDGFreeze counting
WWDG
TIM3
TIM2
APB1HDBGMCU_APB1HFZRLPTIM2Freeze counting
APB2DBGMCU_APB2FZRTIM17Freeze counting
TIM16
TIM1
APB7DBGMCU_APB7FZRRTCFreeze counting
LPTIM1
I2C3Freeze timeout counting
AHB1DBGMCU_AHB1FZRGPDMA1Freeze channel transfers

The control bit, when set, causes the corresponding peripheral operation to be suspended when the CPU is stopped in debug (HALTED = 1).

The accessibility of the bits DBG_XXX_STOP by the debugger depends on the state of the authentication signal spider.

When spider = 1 (secure privilege debug enabled), all bits can be modified by secure access. Only bits corresponding to nonsecure peripherals (or DMA channels) can be

modified by a nonsecure access. All bits can be read by both nonsecure and secure accesses.

When spiden = 0 (secure privilege debug disabled), only nonsecure accesses are possible (secure access requests by the debugger are converted to nonsecure by the CPU). Only bits corresponding to nonsecure peripherals (or DMA channels) can be modified. All bits can be read. This is summarized in the table below.

Table 469. Access to peripheral clock freeze control

spidenPeripheral statusAccess typeDBG_xxx_STOP access
xNonsecureNonsecureRW
Secure
0SecureNonsecureR only
Secure (1)
1SecureNonsecureR only
SecureRW

1. When spiden = 0, secure accesses requested by the debugger are converted to nonsecure.

The status (secure or nonsecure) of a peripheral or a DMA channel is signaled to the DBGMCU by GTZC or the peripheral.

The CPU access to the DBG_xxx_STOP bits does not depend upon spiden. This access depends only upon the security status of the peripheral or DMA channel. The bits corresponding to a secure peripheral or DMA channel can only be modified by a secure access (when the CPU is in secure state).

45.13.7 DBGMCU registers

The DBGMCU registers are not reset by a system reset, only by a power-on reset.

DBGMCU identity code register (DBGMCU_IDCODE)

Address offset: 0x000

Reset value: 0xXXXX 64B0

31302928272625242322212019181716
REV_ID[15:0]
rrrrrrrrrrrrrrrr
1514131211109876543210
DEV_ID[11:0]
Res.Res.Res.Res.rrrrrrrrrrrr

Bits 31:16 REV_ID[15:0] : Revision ID

0x1000: Revision A

0x1001: Revision Z

Bits 15:12 Reserved, must be kept at reset value.

Bits 11:0 DEV_ID[11:0] : Device ID
0x4B0: STM32WBA6xx

DBGMCU status and configuration register (DBGMCU_SCR)

Address offset: 0x004

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.CDSCSRes.Res.Res.SBFSTOPFLPMS[2:0]
rrrrrrr
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.TRACE_MODE[1:0]TRACE_ENTRACE_IOENRes.DBG_STANDBYDBG_STOPRes.
rwrwrwrwrw

Bits 31:26 Reserved, must be kept at reset value.

Bit 25 CDS : CPU deep sleep

0: CPU not in deep sleep

1: CPU in deep sleep

Bit 24 CS : CPU Sleep

0: CPU not in Sleep

1: CPU in Sleep

Bits 23:21 Reserved, must be kept at reset value.

Bit 20 SBF : Device Standby flag

0: Device not in Standby mode

1: Device in Standby mode

Bit 19 STOPF : Device Stop flag

0: device not in Stop mode

1: device in Stop mode

Bits 18:16 LPMS[2:0] : Device low-power mode selected

000: Stop 0 mode

001: Stop 1 mode

010: Stop 2 mode

10x: Standby mode

others reserved

Bits 15:8 Reserved, must be kept at reset value.

Bits 7:6 TRACE_MODE[1:0] : trace pin assignment

00: trace pins assigned for asynchronous mode (TRACESWO)

01: trace pins assigned for synchronous mode with port width of 1 (TRACECK, TRACED0)

10: trace pins assigned for synchronous mode with port width of 2 (TRACECK, TRACED1:0)

11: trace pins assigned for synchronous mode with port width of 4 (TRACECK, TRACED3:0)

Bit 5 TRACE_EN : trace port enable

This bit enables the trace port clock (TRACECK).

0: disabled

1: enabled

Bit 4 TRACE_IOEN : trace port pins enable

This bit enables the trace port clock (TRACECK).

0: disabled - trace port pins not assigned

1: enabled - trace port pins assigned according to the selection in TRACE_MODE

Bit 3 Reserved, must be kept at reset value.

Bit 2 DBG_STANDBY : Allows debug in Standby mode

Write access can be protected by PWR_SECCFGR.LPMSEC.

0: Normal Standby mode operation, all clocks are disabled automatically in Stop mode and core is powered down.

1: Core power maintained and CPU debug clock enabled in Standby mode, all other are under reset in Stop mode, except for DBGMCU.

The CPU debug and DBGMCU clocks remain active and the HSI16 oscillator is used as system clock, the supply and SRAM memory content is maintained during Standby debug mode, allowing CPU debug capability. On exit from Standby mode, a standby reset is performed.

The not-retained peripherals in Stop 2 mode are kept in reset and can-not be accessed by the debugger when in Stop 2 mode.

Bit 1 DBG_STOP : Allows debug in Stop mode

Write access can be protected by PWR_SECCFGR.LPMSEC.

0: Normal Stop mode operation, all clocks are disabled automatically in Stop mode.

1: CPU debug clock enabled in Stop mode, all other peripheral clocks are disabled automatically in Stop mode, except for DBGMCU.

The CPU debug and DBGMCU clocks remain active and the HSI16 oscillators is used as system clock during Stop debug mode, allowing CPU debug capability. On exit from Stop mode, the clock settings are set to the Stop mode exit state.

The not-retained peripherals in Stop 2 mode are kept in reset and can-not be accessed by the debugger when in Stop 2 mode.

Bit 0 Reserved, must be kept at reset value.

DBGMCU APB1L peripheral freeze register (DBGMCU_APB1LFZR)

Address offset: 0x008

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.DBG_I2C2_STOPDBG_I2C1_STOPRes.Res.Res.Res.Res.
rwrw
1514131211109876543210
Res.Res.Res.DBG_IWDG_STOPDBG_WWDG_STOPRes.Res.Res.Res.Res.Res.Res.Res.DBG_TIM4_STOPDBG_TIM3_STOPDBG_TIM2_STOP
rwrwrwrwrw

Bits 31:23 Reserved, must be kept at reset value.

Bit 22 DBG_I2C2_STOP : I2C2 SMBUS timeout stop in CPU debug

Write access can be protected by GTZC_TZSC.I2C2SEC.

0: Normal operation. I2C2 SMBUS timeout continues to operate while CPU is in debug mode.

1: Stop in debug. I2C2 SMBUS timeout is frozen while CPU is in debug mode.

Note: This bit is reserved on STM32WBA63xx devices.

Bit 21 DBG_I2C1_STOP : I2C1 SMBUS timeout stop in CPU debug

Write access can be protected by GTZC_TZSC.I2C1SEC.

0: Normal operation. I2C1 SMBUS timeout continues to operate while CPU is in debug mode.

1: Stop in debug. I2C1 SMBUS timeout is frozen while CPU is in debug mode.

Bits 20:13 Reserved, must be kept at reset value.

Bit 12 DBG_IWDG_STOP : IWDG stop in CPU debug

Write access can be protected by GTZC_TZSC.IWDGSEC.

0: Normal operation. IWDG continues to operate while CPU is in debug mode.

1: Stop in debug. IWDG is frozen while CPU is in debug mode.

Bit 11 DBG_WWDG_STOP : WWDG stop in CPU debug

Write access can be protected by GTZC_TZSC.WWDGSEC

0: Normal operation. WWDG continues to operate while CPU is in debug mode.

1: Stop in debug. WWDG is frozen while CPU is in debug mode.

Bits 10:3 Reserved, must be kept at reset value.

Bit 2 DBG_TIM4_STOP : TIM4 stop in CPU debug

Write access can be protected by GTZC_TZSC.TIM4SEC.

0: Normal operation. TIM4 continues to operate while CPU is in debug mode.

1: Stop in debug. TIM4 is frozen while CPU is in debug mode.

Note: This bit is reserved on STM32WBA63xx devices.

Bit 1 DBG_TIM3_STOP : TIM3 stop in CPU debug

Write access can be protected by GTZC_TZSC.TIM3SEC.

0: Normal operation. TIM3 continues to operate while CPU is in debug mode.

1: Stop in debug. TIM3 is frozen while CPU is in debug mode.

Bit 0 DBG_TIM2_STOP : TIM2 stop in CPU debug

Write access can be protected by GTZC_TZSC.TIM2SEC.

0: Normal operation. TIM2 continues to operate while CPU is in debug mode.

1: Stop in debug. TIM2 is frozen while CPU is in debug mode.

DBGMCU_APB1H peripheral freeze register (DBGMCU_APB1HFZR)

Address offset: 0x00C

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DBG_LPTIM2_STOPRes.Res.Res.DBG_I2C4_STOPRes.
rwrw

Bits 31:6 Reserved, must be kept at reset value.

Bit 5 DBG_LPTIM2_STOP : LPTIM2 stop in CPU debug

Write access can be protected by GTZC_TZSC.LPTIM2SEC.

0: Normal operation. LPTIM2 continues to operate while CPU is in debug mode.

1: Stop in debug. LPTIM2 is frozen while CPU is in debug mode.

Bits 4:2 Reserved, must be kept at reset value.

Bit 1 DBG_I2C4_STOP : I2C4 SMBUS timeout stop in CPU debug

Write access can be protected by GTZC_TZSC.I2C4SEC.

0: Normal operation. I2C4 SMBUS timeout continues to operate while CPU is in debug mode.

1: Stop in debug. I2C4 SMBUS timeout is frozen while CPU is in debug mode.

Note: This bit is reserved on STM32WBA63xx devices.

Bit 0 Reserved, must be kept at reset value.

DBGMCU_APB2 peripheral freeze register (DBGMCU_APB2FZR)

Address offset: 0x010

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DBG_TIM17_STOPDBG_TIM16_STOPRes.
rwrw
1514131211109876543210
Res.Res.Res.Res.DBG_TIM1_STOPRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
rw

Bits 31:19 Reserved, must be kept at reset value.

Bit 18 DBG_TIM17_STOP : TIM17 stop in CPU debug

Write access can be protected by GTZC_TZSC.TIM17SEC.

0: Normal operation. TIM17 continues to operate while CPU is in debug mode.

1: Stop in debug. TIM17 is frozen while CPU is in debug mode.

Bit 17 DBG_TIM16_STOP : TIM16 stop in CPU debug

Write access can be protected by GTZC_TZSC.TIM16SEC.

0: Normal operation. TIM16 continues to operate while CPU is in debug mode.

1: Stop in debug. TIM16 is frozen while CPU is in debug mode.

Bits 16:12 Reserved, must be kept at reset value.

Bit 11 DBG_TIM1_STOP : TIM1 stop in CPU debug

Write access can be protected by GTZC_TZSC.TIM1SEC.

0: Normal operation. TIM1 continues to operate while CPU is in debug mode.

1: Stop in debug. TIM1 is frozen while CPU is in debug mode.

Bits 10:0 Reserved, must be kept at reset value.

DBGMCU APB7 peripheral freeze register (DBGMCU_APB7FZR)

Address offset: 0x024

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.DBG_RTC_STOPRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DBG_LPTIM1_STOPRes.
rwrw
1514131211109876543210
Res.Res.Res.Res.Res.DBG_I2C3_STOPRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.
rw

Bit 31 Reserved, must be kept at reset value.

Bit 30 DBG_RTC_STOP : RTC stop in CPU debug

Access can be protected by GTZC_TZSC.TIM17SEC.

Can only be accessed secure when one or more features in the RTC or TAMP is/are secure.

0: Normal operation. RTC continues to operate while CPU is in debug mode.

1: Stop in debug. RTC is frozen while CPU is in debug mode.

Bits 29:18 Reserved, must be kept at reset value.

Bit 17 DBG_LPTIM1_STOP : LPTIM1 stop in CPU debug

Access can be protected by GTZC_TZSC.LPTIM1SEC.

0: Normal operation. LPTIM1 continues to operate while CPU is in debug mode.

1: Stop in debug. LPTIM1 is frozen while CPU is in debug mode.

Bits 16:11 Reserved, must be kept at reset value.

Bit 10 DBG_I2C3_STOP : I2C3 stop in CPU debug

Access can be protected by GTZC_TZSC.I2C3SEC.

0: Normal operation. I2C3 continues to operate while CPU is in debug mode.

1: Stop in debug. I2C3 is frozen while CPU is in debug mode.

Bits 9:0 Reserved, must be kept at reset value.

DBGMCU AHB1 peripheral freeze register (DBGMCU_AHB1FZR)

Address offset: 0x028

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.DBG_GPDMA1_CH7_STOPDBG_GPDMA1_CH6_STOPDBG_GPDMA1_CH5_STOPDBG_GPDMA1_CH4_STOPDBG_GPDMA1_CH3_STOPDBG_GPDMA1_CH2_STOPDBG_GPDMA1_CH1_STOPDBG_GPDMA1_CH0_STOP
rwrwrwrwrwrwrwrw

Bits 31:8 Reserved, must be kept at reset value.

Bit 7 DBG_GPDMA1_CH7_STOP : GPDMA 1 channel 7 stop in CPU debug

Write access can be protected by GPDMA_SECCFGR.SEC7.

0: Normal operation. GPDMA 1 channel 7 continues to operate while CPU is in debug mode.

1: Stop in debug. GPDMA 1 channel 7 is frozen while CPU is in debug mode.

Bit 6 DBG_GPDMA1_CH6_STOP : GPDMA 1 channel 6 stop in CPU debug

Write access can be protected by GPDMA_SECCFGR.SEC6.

0: Normal operation. GPDMA 1 channel 6 continues to operate while CPU is in debug mode.

1: Stop in debug. GPDMA 1 channel 6 is frozen while CPU is in debug mode.

Bit 5 DBG_GPDMA1_CH5_STOP : GPDMA 1 channel 5 stop in CPU debug

Write access can be protected by GPDMA_SECCFGR.SEC5.

0: Normal operation. GPDMA 1 channel 5 continues to operate while CPU is in debug mode.

1: Stop in debug. GPDMA 1 channel 5 is frozen while CPU is in debug mode.

Bit 4 DBG_GPDMA1_CH4_STOP : GPDMA 1 channel 4 stop in CPU debug

Write access can be protected by GPDMA_SECCFGR.SEC4.

0: Normal operation. GPDMA 1 channel 4 continues to operate while CPU is in debug mode.

1: Stop in debug. GPDMA 1 channel 4 is frozen while CPU is in debug mode.

Bit 3 DBG_GPDMA1_CH3_STOP : GPDMA 1 channel 3 stop in CPU debug

Write access can be protected by GPDMA_SECCFGR.SEC3.

0: Normal operation. GPDMA 1 channel 3 continues to operate while CPU is in debug mode.

1: Stop in debug. GPDMA 1 channel 3 is frozen while CPU is in debug mode.

Bit 2 DBG_GPDMA1_CH2_STOP : GPDMA 1 channel 2 stop in CPU debug

Write access can be protected by GPDMA_SECCFGR.SEC2.

0: Normal operation. GPDMA 1 channel 2 continues to operate while CPU is in debug mode.
1: Stop in debug. GPDMA 1 channel 2 is frozen while CPU is in debug mode.

Bit 1 DBG_GPDMA1_CH1_STOP : GPDMA 1 channel 1 stop in CPU debug

Write access can be protected by GPDMA_SECCFGR.SEC1.

0: Normal operation. GPDMA 1 channel 1 continues to operate while CPU is in debug mode.
1: Stop in debug. GPDMA 1 channel 1 is frozen while CPU is in debug mode.

Bit 0 DBG_GPDMA1_CH0_STOP : GPDMA 1 channel 0 stop in CPU debug

Write access can be protected by GPDMA_SECCFGR.SEC0.

0: Normal operation. GPDMA 1 channel 0 continues to operate while CPU is in debug mode.
1: Stop in debug. GPDMA 1 channel 0 is frozen while CPU is in debug mode.

DBGMCU status register (DBGMCU_SR)

Address offset: 0x0FC

Reset value: 0x000X 0003

31302928272625242322212019181716
AP_ENABLED[15:0]
rrrrrrrrrrrrrrrr
1514131211109876543210
AP_PRESENT[15:0]
rrrrrrrrrrrrrrrr

Bits 31:16 AP_ENABLED[15:0] : Bit n identifies whether access port APn is open (can be accessed via the debug port) or locked (debug access to the APn is blocked, except for DBGMCU access)

Bits 15:0 AP_PRESENT[15:0] : Bit n identifies whether access port APn is present in device

DBGMCU debug host authentication register (DBGMCU_DBG_AUTH_HOST)

Address offset: 0x100

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
AUTH_KEY[31:16]
wwwwwwwwwwwwwwww
1514131211109876543210
AUTH_KEY[15:0]
wwwwwwwwwwwwwwww

Bits 31:0 AUTH_KEY[31:0] : Device authentication key

The device specific 64-bit authentication key (OEMn key) must be written to this register (in two successive 32-bit writes, least significant word first) to permit RDP regression. Writing a wrong key locks access to the device and prevent code execution from the Flash memory.

DBGMCU debug device authentication register
(DBGMCU_DBG_AUTH_DEVICE)

Address offset: 0x104

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
AUTH_ID[31:16]
rrrrrrrrrrrrrrrr
1514131211109876543210
AUTH_ID[15:0]
rrrrrrrrrrrrrrrr

Bits 31:0 AUTH_ID[31:0] : Device specific ID

Device specific ID used for RDP regression.

DBGMCU part number codification register (DBGMCU_PNCR)

Address offset: 0x7DC

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
CODIFICATION[31:16]
rrrrrrrrrrrrrrrr
1514131211109876543210
CODIFICATION[15:0]
rrrrrrrrrrrrrrrr

Bits 31:0 CODIFICATION[31:0] : Part number codification

0x0032 3641: STMicroelectronics STM32WBA62xx part number codification.

0x0033 3641: STMicroelectronics STM32WBA63xx part number codification.

0x0034 3641: STMicroelectronics STM32WBA64xx part number codification.

0x0035 3641: STMicroelectronics STM32WBA65xx part number codification.

DBGMCU CoreSight peripheral identity register 4 (DBGMCU_PIDR4)

Address offset: 0xFD0

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.F4KCOUNT[3:0]JEP106CON[3:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 F4KCOUNT[3:0] : Register file size

0x0: The register file occupies a single 4-Kbyte region

Bits 3:0 JEP106CON[3:0] : JEP106 continuation code

0x0: STMicroelectronics JEDEC code

DBGMCU CoreSight peripheral identity register 0 (DBGMCU_PIDR0)

Address offset: 0xFE0

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PARTNUM[7:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PARTNUM[7:0] : Part number bits [7:0]

0x00: DBGMCU part number

DBGMCU CoreSight peripheral identity register 1 (DBGMCU_PIDR1)

Address offset: 0xFE4

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.JEP106ID[3:0]PARTNUM[11:8]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 JEP106ID[3:0] : JEP106 identity code bits [3:0]

0x0: STMicroelectronics JEDEC code

Bits 3:0 PARTNUM[11:8] : Part number bits [11:8]

0x0: DBGMCU part number

DBGMCU CoreSight peripheral identity register 2 (DBGMCU_PIDR2)

Address offset: 0xFE8

Reset value: 0x0000 000A

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.REVISION[3:0]JEDECJEP106ID[6:4]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 REVISION[3:0] : Component revision number

0x0: r0p0

Bit 3 JEDEC : JEDEC assigned value

0x1: Designer identifier specified by JEDEC

Bits 2:0 JEP106ID[6:4] : JEP106 identity code bits [6:4]

0x2: STMicroelectronics JEDEC code

DBGMCU CoreSight peripheral identity register 3 (DBGMCU_PIDR3)

Address offset: 0xFEC

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.REVAND[3:0]CMOD[3:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 REVAND[3:0] : Metal fix version

0x0: No metal fix

Bits 3:0 CMOD[3:0] : Customer modified

0x0: No customer modifications

DBGMCU CoreSight component identity register 0 (DBGMCU_CIDR0)

Address offset: 0xFF0

Reset value: 0x0000 000D

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[7:0]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[7:0] : Component ID bits [7:0]

0x0D: Common ID value

DBGMCU CoreSight peripheral identity register 1 (DBGMCU_CIDR1)

Address offset: 0xFF4

Reset value: 0x0000 00F0

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.CLASS[3:0]PREAMBLE[11:8]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:4 CLASS[3:0] : Component ID bits [15:12] - component class

0xF: no CoreSight component

Bits 3:0 PREAMBLE[11:8] : Component ID bits [11:8]

0x0: common ID value

DBGMCU CoreSight component identity register 2 (DBGMCU_CIDR2)

Address offset: 0xFF8

Reset value: 0x0000 0005

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[19:12]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[19:12] : Component ID bits [23:16]
0x05: Common ID value

DBGMCU CoreSight component identity register 3 (DBGMCU_CIDR3)

Address offset: 0xFFC

Reset value: 0x0000 00B1

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[27:20]
rrrrrrrr

Bits 31:8 Reserved, must be kept at reset value.

Bits 7:0 PREAMBLE[27:20] : Component ID bits [31:24]
0xB1: Common ID value

45.13.8 DBGMCU register map and reset values

The DBGMCU registers are accessed by the debugger through AP0 or AP1 at address range 0xE004 4000 to 0xE004 4FFC.

Table 470. DBGMCU register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x000DBGMCU_IDCODEREV_ID[15:0]Res.Res.Res.Res.DEV_ID[11:0]
Reset valueXXXXXXXXXXXXXXXX010010110000
0x004DBGMCU_SCRRes.Res.Res.Res.Res.Res.Res.CDSCSRes.Res.SBFSTOPFLPMS[2:0]Res.Res.Res.Res.Res.Res.Res.Res.TRACE_MODE [1:0]TRACE_ENTRACE_IOENRes.DBG_STANDBYDBG_STOPRes.
Reset value000000000000000
0x008DBGMCU_APB1LFZRRes.Res.Res.Res.Res.Res.Res.Res.Res.DBG_I2C2_STOP (1)DBG_I2C1_STOPRes.Res.Res.Res.Res.Res.Res.Res.Res.DBG_IWDG_STOPDBG_WWDG_STOPRes.Res.Res.Res.Res.Res.Res.Res.DBG_TIM4_STOP (1)DBG_TIM3_STOPDBG_TIM2_STOP
Reset value0000000

Table 470. DBGMCU register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x00CDBGMCU_
APB1HFZR
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DBG_LPTIM2_STOPRes.Res.Res.DBG_I2C4_STOP (1)Res.
Reset value00
0x010DBGMCU_
APB2FZR
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DBG_TIM17_STOPDBG_TIM16_STOPRes.Res.Res.Res.Res.DBG_TIM1_STOPRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value000
0x014 to 0x020ReservedReserved
0x024DBGMCU_
APB7FZR
Res.DBG_RTC_STOPRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DBG_LPTIM1_STOPRes.Res.Res.Res.Res.DBG_I2C3_STOPRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value000
0x028DBGMCU_
AHB1FZR
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DBG_GPDMA1_CH7_STOPDBG_GPDMA1_CH6_STOPDBG_GPDMA1_CH5_STOPDBG_GPDMA1_CH4_STOPDBG_GPDMA1_CH3_STOPDBG_GPDMA1_CH2_STOPDBG_GPDMA1_CH1_STOPDBG_GPDMA1_CH0_STOP
Reset value00000000
0x02C to 0x0F8ReservedReserved
0x0FCDBGMCU_SRAP_ENABLED[15:0]AP_PRESENT[15:0]
Reset value000000000000000X0000000000000011
0x100DBGMCU_DBG_
AUTH_HOST
AUTH_KEY[31:0]
Reset valueXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0x104DBGMCU_DBG_
AUTH_DEVICE
AUTH_KEY[31:0]
Reset valueXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0x108 to 0x7D8ReservedReserved
0x7DCDBGMCU_PNCRCODIFICATION[31:0]
Reset valueXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0x7E0 to 0xFCCReservedReserved
0xFD0DBGMCU_PIDR4Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.F4KCOUNT [3:0]JEP106CON [3:0]
Reset value00000000

Table 470. DBGMCU register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFD4 to 0xFDCReservedReserved
0xFE0DBGMCU_PIDR0ResResResResResResResResResResResResResResResResResResResResResResResResResPARTNUM[7:0]
Reset value00000000
0xFE4DBGMCU_PIDR1ResResResResResResResResResResResResResResResResResResResResResResResResResJEP106ID [3:0]PARTNUM [11:8]
Reset value00000000
0xFE8DBGMCU_PIDR2ResResResResResResResResResResResResResResResResResResResResResResResResResREVISION [3:0]IDECJEP106ID [6:4]
Reset value00001010
0xFECDBGMCU_PIDR3ResResResResResResResResResResResResResResResResResResResResResResResResResREVAND[3:0]CMOD[3:0]
Reset value00000000
0xFF0DBGMCU_CIDR0ResResResResResResResResResResResResResResResResResResResResResResResResResPREAMBLE[7:0]
Reset value00001101
0xFF4DBGMCU_CIDR1ResResResResResResResResResResResResResResResResResResResResResResResResResCLASS[3:0]PREAMBLE [11:8]
Reset value11110000
0xFF8DBGMCU_CIDR2ResResResResResResResResResResResResResResResResResResResResResResResResResPREAMBLE[19:12]
Reset value00000101
0xFFCDBGMCU_CIDR3ResResResResResResResResResResResResResResResResResResResResResResResResResPREAMBLE[27:20]
Reset value10110001

1. Bit only available on STM32WBA62/63/65xx devices.

Refer to Section 45.5.1: System debug ROM table and Section 45.6.1: CPU ROM tables for the register boundary addresses.

45.14 References

  1. 1. IHI 0031C (ID080813) - Arm ® Debug Interface Architecture Specification ADIv5.0 to ADIv5.2, Issue C, 8th Aug 2013
  2. 2. DDI 0480F (ID100313) - Arm ® CoreSight SoC-400 r3p2 Technical Reference Manual, Issue G, 16th March 2015
  3. 3. DDI 0553A (ID092917) - Arm ® v8-M Architecture Reference Manual, Issue A.f, 29 September 2017
  4. 4. 100230_0002_00_en - Arm ® Cortex ® -M33 Processor r0p2 Technical Reference Manual, Issue 0002-00, 10 May 2017
  5. 5. 100232_0001_00_en - Arm CoreSight ETM-M33 r0p2 Technical Reference Manual, Issue 0001-00, 3 February 2017