78. Debug support (DBG)

78.1 DBG introduction

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 (SWJ-DP), using industry standard debugging tools.

A trace port allows data to be captured for logging and analysis.

The debug features are based on the following Arm ® CoreSight components:

These components are described in Section 78.11 and Section 78.12 . More information can be found in the Arm documents referenced in Section 78.13 .

Debug use cases

The trace and debug system are designed to support a variety of typical use cases:

A limited trace capability is available over the single-wire debug output. This supports code instrumentation using “printf”, tracing of data and address watchpoints, interrupt detection and program counter sampling.

The software can be debugged using equipment connected to the JTAG/SWD debug port. This allows breakpoint and watchpoint settings, code stopping, and memory access.

Debug resources can be accessed by software running on the processor. This allows autonomous fault analysis, and communication with external tools via a functional interface (such as USB or UART). Halting the CPU is not possible.

The trace information is sent to a trace port analyzer in real time. An ID embedded in the trace allows the analyzer to identify the source of each information packet.

The software data from the processor, memory content via DMA, and hardware event trace information can be generated using the STM. The information is combined with the processor trace stream, and output to a trace port analyzer in real time.

The combined trace information can be stored on-chip in a private circular buffer. The trace storage can be started and stopped by a debugger command, a software command, an external trigger signal, or an internal event.

Thanks to the ETR, the combined trace information can be sent to a system memory. The trace storage can be started and stopped by a debugger command, a software command, an external trigger signal, or an internal event.

The debugger can read the contents of the recorded trace data via the debug port. This is slower than the trace port, but allows basic trace functionality on the debugger without the cost of a trace port analyzer.

The recorded trace data can be read by the Cortex-M55. This powerful feature allows built-in test software to monitor code execution in real time, analyze and identify faults, and autonomously handle exceptions.

The stored trace can also be uploaded to a host machine using one of the communication interfaces (such as USB, USART, SPI, I2C, Ethernet, or CAN). This is especially useful if the trace port is not accessible, for example remote monitoring and failure analysis of a deployed product.

78.2 DBG functional description

The debug infrastructure is composed of three subsystems:

78.3 DBG block diagram

Figure 1075. Block diagram of debug infrastructure

Block diagram of debug infrastructure showing the Cortex-M55 core connected to various debug and trace components. The diagram is divided into four main sections: JTAG/serial-wire debug port, Debug access port (DAP), Cortex-M55 debug, and Trace and debug subsystem. The JTAG/serial-wire debug port includes pins JTMS/SWDIO, JTDI, JTDO, JTCK/SWCLK, and NJTRST. The DAP includes the SWJ-DP, AXI-AP, and APB-AP. The Cortex-M55 debug section includes PMU, DWT, BPU, ITM, and the Cortex-M55 core. The Trace and debug subsystem includes SWO, CSSTF, ETF, TPIU, ETR, CTI, and DBTRGOUT. A legend at the bottom left defines symbols for CoreSight components, EPPB, DAPBUS, ATB, CTM, and Timestamp. The diagram is labeled MSv70432V2.
Block diagram of debug infrastructure showing the Cortex-M55 core connected to various debug and trace components. The diagram is divided into four main sections: JTAG/serial-wire debug port, Debug access port (DAP), Cortex-M55 debug, and Trace and debug subsystem. The JTAG/serial-wire debug port includes pins JTMS/SWDIO, JTDI, JTDO, JTCK/SWCLK, and NJTRST. The DAP includes the SWJ-DP, AXI-AP, and APB-AP. The Cortex-M55 debug section includes PMU, DWT, BPU, ITM, and the Cortex-M55 core. The Trace and debug subsystem includes SWO, CSSTF, ETF, TPIU, ETR, CTI, and DBTRGOUT. A legend at the bottom left defines symbols for CoreSight components, EPPB, DAPBUS, ATB, CTM, and Timestamp. The diagram is labeled MSv70432V2.

78.4 DBG pins

Table 855. SWJ-DP pins

Pin nameJTAG debug portSWD debug portPin assignment
TypeDescriptionTypeDescription
JTMS/SWDIOIJTAG test mode selectI/OSerial-wire data in/outRefer to the product datasheet
JTCK/SWCLKIJTAG test clockISerial-wire clock
JTDIIJTAG test data input--
JTDOOJTAG test data output--
NJTRSTIJTAG test reset--

Table 856. Trace port pins

Pin nameTypeDescriptionPin assignment
TRACED[3:0]OTrace synchronous data out (can be 1, 2, or 4 pins)Refer to the product datasheet
TRACECLKOTrace clock

Table 857. Serial-wire trace port pins

Pin nameTypeDescriptionPin assignment
TRACESWOOTrace asynchronous data outRefer to the product datasheet (1)

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

Table 858. Trigger pins

Pin nameTypeDescriptionPin assignment
DBTRGINIExternal trigger input to CTIRefer to the product datasheet
DBTRGOUTOExternal trigger output from CTI
DBTRGIOI/OExternal bi-directional trigger (1)
  1. 1. DBTRGIO can be configured as an input or an output by DBTRGOEN in DBGMCU_CR. If configured as an input, it is connected to DBTRGIN. If configured as an output, it is connected to DBTRGOUT. This is because DBTRGIN and DBTRGOUT may not be available on some packages.

78.5 DBG power, clock, and reset

78.5.1 DBG power domains

Debug components are located in the core power domain. This means that a debug session is disconnected if the core is powered down (for example in Standby mode).

Debug and low-power modes

The device includes power saving features that allow the core power domain to be switched off, or stopped when not required. If the power is switched off, or the core is not clocked, all debug components are inaccessible to the debugger. To avoid this, a power-saving mode emulation is implemented.

If emulation is enabled for a domain, the domain still enters power-saving mode, but its clock and power are maintained: the domain behaves as in power-saving mode, but the debugger does not lose the connection.

This emulation mode is programmed in the DBGMCU (see Section 78.12.20 ).

78.5.2 DBG clocks

The debugger supplies the clock for the debug port (swtclk) 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 state machines and internal logic of the debug port. This clock must therefore continue to toggle for at least five 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 system debug clock domain (ck_sys_dbg). All debug and trace components are in this same clock domain.

The ck_sys_dbg clock is enabled by the debugger using CDBGPWRUPREQ in DP_CTRLSTAT. It can also be enabled by software setting DBGCLKEN in DBGMCU_CR. This clock must be enabled before the debugger or software can access any of the debug features on the device. Disable this clock when debug and trace are not used, to reduce power consumption.

The TPIU output clock (ck_trace, also called traceclk) is generated by the RCC. Its frequency can be programmed to match the I/O port capability. This clock is also used to drive the SWO. It can only be enabled by setting TRACECLKEN in DBGMCU_CR.

Note: ck_trace must be activated whenever tracing is required, even if neither the TPIU nor the SWO are used (for example, when using the ETR as a software buffer). This avoids

filling up the SWO FIFO, which may then block the trace output from the ITM in the Cortex-M55.

The debug and trace components included in the processor are clocked with the processor clock.

78.5.3 Debug reset

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

The debug and trace components, including the Cortex-M55 debug part, can be reset in three different ways:

Setting this bit asserts the debug reset request signal (cdbgrstreq) connected to the RCC. The RCC then activates rcc_dbg_rst, and returns a handshake signal (cdbgrstack) to acknowledge the DAP request. This acknowledge can be read by the debugger on CDBGIRSTACK in DP_CTRLSTAT. The rcc_dbg_rst is active as long as CDBGIRSTREQ is set.

When this bit is set, the rcc_dbg_rst is activated. It is released when DBGIRST is cleared.

The rcc_dbg_rst is activated after a power-on reset, or when the product exits Standby mode.

Figure 1076. Debug reset control logic

Figure 1076. Debug reset control logic diagram. The diagram shows the internal logic for generating the rcc_dbg_rst signal. It includes an RCC block containing an RCC_MISCRSTR register and an AND gate. The AND gate takes rcc_vcore_rst and the inverted output of the RCC_MISCRSTR register as inputs. The output of the AND gate is connected to the Debug and trace block as rcc_dbg_rst. The Debug and trace block also contains CDBGIRSTREQ and CDBGIRSTACK signals. The CDBGIRSTREQ signal is connected to the AND gate through a buffer. The CDBGIRSTACK signal is connected to the AND gate through a buffer. The sys_bus_ck signal is connected to the ACK logic block, which is also connected to the CDBGIRSTREQ and CDBGIRSTACK signals.

The diagram illustrates the debug reset control logic. On the left, the RCC block contains an RCC_MISCRSTR register. An external rcc_vcore_rst signal and the inverted output of the RCC_MISCRSTR register are inputs to an AND gate. The output of this AND gate is the rcc_dbg_rst signal, which is sent to the Debug and trace block. The Debug and trace block contains CDBGIRSTREQ and CDBGIRSTACK signals. The CDBGIRSTREQ signal is connected to the AND gate through a buffer. The CDBGIRSTACK signal is connected to the AND gate through a buffer. A sys_bus_ck signal is connected to an ACK logic block, which is also connected to the CDBGIRSTREQ and CDBGIRSTACK signals. The ACK logic block is connected to the CDBGIRSTREQ signal through a buffer.

Figure 1076. Debug reset control logic diagram. The diagram shows the internal logic for generating the rcc_dbg_rst signal. It includes an RCC block containing an RCC_MISCRSTR register and an AND gate. The AND gate takes rcc_vcore_rst and the inverted output of the RCC_MISCRSTR register as inputs. The output of the AND gate is connected to the Debug and trace block as rcc_dbg_rst. The Debug and trace block also contains CDBGIRSTREQ and CDBGIRSTACK signals. The CDBGIRSTREQ signal is connected to the AND gate through a buffer. The CDBGIRSTACK signal is connected to the AND gate through a buffer. The sys_bus_ck signal is connected to the ACK logic block, which is also connected to the CDBGIRSTREQ and CDBGIRSTACK signals.

The rcc_dbg_rst can be applied only when the processor is in a quiescent state (when all system transactions have been completed, or when the processor is in debug mode).

78.6 Security

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

78.6.1 BSEC control over debug

The BSEC features the following registers dedicated to debug:

It can be used to open the debug access port to the Cortex-M55 (AP1) when a specific value is written in it. This register drives ap_unlocked[7:0] signals toward the debug logic that decodes these signals to open the access port if the expected value is met.

It can be used to enable the non-secure/secure debug when a specific value is written in it. This register drives dbg_unlocked_sec[7:0] and dbg_unlocked[7:0] signals toward the debug logic that decodes these signals to determine the values of the authentication signals (see the next section), enabling or not the debug for full secure or only non-secure world.

The BSEC also defines the HDPL (hide protection level) from which the debug is enabled. Its hardware ensures that dbg_unlocked and dbg_unlocked_sec automatically adopt the specific values as soon as the appropriate HDPL is reached.

On an open device, these registers are automatically set to the values that open the debug (refer to Section 4: Boot and security control (BSEC) for details on these registers.)

78.6.2 Authentication signals

The following authentication signals are used by a CoreSight system to determine which features are enabled or disabled. These signals are derived from the BSEC_DBGCR register value. This applies not only when the debug authentication sequence is executed, but also during the regular debug in open, closed, or closed secure states (refer to Section 3: System security for details on these states):

For detailed information on the Arm Coresight debug infrastructure, refer to the relevant component section, or to the relevant Arm technical documentation, which describes the dbgen, niden, spiden and spniden signals. When the BSEC_DBGCR register is configured

to enable debug (either secure or non-secure), the dbgen and niden signals are set. The spiden and spniden signals are only set if secure debug is enabled.

The initial states of the signals are set at POR, according to Table 859 . Signal states can be modified through an authentication process, by a trusted software with secure and privileged access rights, in collaboration with the debugger (see Section 78.7 for more details on the authentication process).

Table 859. Authentication signal initial states

Device stateAuthentication signal default stateDescription
Open or
Closed_Unlocked DEV BOOT
All 1All debug and trace enabled at boot-up.
ClosedAll 0All debug and trace disabled at boot-up. Secure software must enable debug as required after booting.

78.7 Debug authentication

78.7.1 Main characteristics

The debug authentication relies on the fact that, even when debug is disabled, there is always an access port available (the APB-AP, AP0) to support communication between the host (debugger) and the device (STM32 product).

Debug rights (controlled by BSEC) are reset by a POR.

The debug authentication starts only at boot (HDPL1). This implies that a debugger hot plug is not possible on a closed part.

In BSEC-open state, the debugger can configure debug peripherals, and has full access to the system without the need for an authentication (but not to the fuse secrets, and unmapped ROM code).

During bootROM execution (HDPL0), the debug is automatically disabled via hardware.

When the debug is opened via a certificate, the debugger can proceed with debug infrastructure configuration. The debug certificate contains debugger access rights (secure, non-secure, HDPL).

When the debug is disabled, the debugger can still proceed with debug infrastructure 'discovery', but can only see the authentication mailbox. Other debug and trace features are disabled.

78.7.2 Debug authentication protocol

Principle

The protocol implements a challenge response mechanism based on asymmetric cryptography to authenticate the host. It relies on a key pair, with a public key stored in the device, and a private key from the host library, used to sign a random value (the challenge) generated by the device.

The protocol implements a bidirectional communication between the debugger (host) and the SoC (device) through a mailbox interface located in the DBGMCU.

The host can write to the mailbox via the JTAG/SWD interface. It expects to get responses and messages from the device via the same mailbox.

The debug authentication protocol is launched on a POR of the device, when an “open request” message is posted by the host. The protocol is based on the following steps:

  1. 1. Initial message: posted by the host, combined with a reset to launch the debug authentication process on the device
  2. 2. Challenge message: The device generates a random value, to be signed by the host, when sending back the response.
  3. 3. Response: The host sends a message to the device proving its authenticity. This is done using a tool to generate a token.

After a first sequence of mutual authentication to align (on protocol version, or device type for example), the device generates a random value that must be signed by the host with a private key when building the response.

The device verifies the signed response including the random value using a public key embedded in the device.

Status mailbox

A mailbox status information is provided to inform host or device that a message is available for reading. This is especially useful when one side sends a message larger than 32 bits. For instance, when the device sends such a long message, it checks that the host has read each 32-bit element before writing a new one by polling the clear of DEVICE_ACK.

The DBGMCU_DBG_AUTH_ACK register is used for that purpose. This register is read only for the host and the device:

78.8 Chip-level TAP controller (CLTAPC)

The JTAG interface is connected to the internal scan chain of the device. It is used for testing as well as for debug. The first component in the scan chain is the chip-level TAP controller, which implements a TAP state machine based on IEEE Std 1149.1-1990. It allows access to the built-in manufacturing test features.

The CLTAPC must be bypassed in order to access the debug support functions provided by the SWJ-DP. This is done by prefixing SWJ-DP instructions with the CLTAPC bypass instruction sequence (0b11111).

78.9 Serial-wire and JTAG debug port (SWJ-DP)

The SWJ-DP is a CoreSight component that implements an external access port for connecting debugging equipment.

Two 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 POR. 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.

78.9.1 JTAG debug port

The JTAG-DP implements a TAP state machine (TAPSM) based on IEEE Std 1149.1-1990, and shown in Figure 1077 . It controls two scan chains: one associated with an instruction register (IR), and one with a number of data registers (DR).

Figure 1077. JTAG TAP state machine

Figure 1077. JTAG TAP state machine diagram showing the state transitions between Test-Logic-Reset, Run-Test/Idle, Select-DR-Scan, Capture-DR, Shift-DR, Exit1-DR, Pause-DR, Exit2-DR, Update-DR, Select-IR-Scan, Capture-IR, Shift-IR, Exit1-IR, Pause-IR, Exit2-IR, and Update-IR states based on JTMS and JTDI signals.
stateDiagram-v2
    [*] --> Test-Logic-Reset: JTMS=1
    Test-Logic-Reset --> Run-Test/Idle: JTMS=0
    Run-Test/Idle --> Select-DR-Scan: JTMS=1
    Run-Test/Idle --> Select-IR-Scan: JTMS=1
    Select-DR-Scan --> Capture-DR: JTMS=0
    Select-DR-Scan --> Select-IR-Scan: JTMS=1
    Capture-DR --> Shift-DR: JTMS=0
    Capture-DR --> Select-DR-Scan: JTMS=1
    Shift-DR --> Shift-DR: JTMS=0
    Shift-DR --> Exit1-DR: JTMS=1
    Exit1-DR --> Select-DR-Scan: JTMS=1
    Exit1-DR --> Select-IR-Scan: JTMS=1
    Exit1-DR --> Pause-DR: JTMS=0
    Exit1-DR --> Exit2-DR: JTMS=0
    Exit1-DR --> Update-DR: JTMS=0
    Pause-DR --> Shift-DR: JTMS=0
    Pause-DR --> Select-DR-Scan: JTMS=1
    Pause-DR --> Select-IR-Scan: JTMS=1
    Pause-DR --> Exit2-DR: JTMS=0
    Pause-DR --> Update-DR: JTMS=0
    Exit2-DR --> Select-DR-Scan: JTMS=1
    Exit2-DR --> Select-IR-Scan: JTMS=1
    Exit2-DR --> Update-DR: JTMS=0
    Update-DR --> Run-Test/Idle: JTMS=1
    Update-DR --> Select-DR-Scan: JTMS=0
    Select-IR-Scan --> Capture-IR: JTMS=0
    Select-IR-Scan --> Select-DR-Scan: JTMS=1
    Capture-IR --> Shift-IR: JTMS=0
    Capture-IR --> Select-IR-Scan: JTMS=1
    Shift-IR --> Shift-IR: JTMS=0
    Shift-IR --> Exit1-IR: JTMS=1
    Exit1-IR --> Select-IR-Scan: JTMS=1
    Exit1-IR --> Pause-IR: JTMS=0
    Exit1-IR --> Exit2-IR: JTMS=0
    Exit1-IR --> Update-IR: JTMS=0
    Pause-IR --> Shift-IR: JTMS=0
    Pause-IR --> Select-IR-Scan: JTMS=1
    Pause-IR --> Exit2-IR: JTMS=0
    Pause-IR --> Update-IR: JTMS=0
    Exit2-IR --> Select-IR-Scan: JTMS=1
    Exit2-IR --> Update-IR: JTMS=0
    Update-IR --> Run-Test/Idle: JTMS=1
    Update-IR --> Select-DR-Scan: JTMS=0
  
Figure 1077. JTAG TAP state machine diagram showing the state transitions between Test-Logic-Reset, Run-Test/Idle, Select-DR-Scan, Capture-DR, Shift-DR, Exit1-DR, Pause-DR, Exit2-DR, Update-DR, Select-IR-Scan, Capture-IR, Shift-IR, Exit1-IR, Pause-IR, Exit2-IR, and Update-IR states based on JTMS and JTDI signals.

MSV39776V1

When the TAPSM goes through the Capture-IR state, 0b0001 is transferred into the IR scan chain connected between JTDI and JTDO.

While the TAPSM is in the Shift-IR state, the IR scan chain shifts one bit for each JTCK rising edge. This means that on the first tick:

When the TAPSM goes through the Update-IR state, the value scanned in the IR scan chain is transferred to the instruction register.

When the TAPSM goes through the Capture-DR state, a value is transferred from one of DR to one of the DR scan chains, connected between JTDI and JTDO.

The value held in the instruction register determines which DR and associated DR scan chain are selected.

Data are then shifted while the TAPSM is in the Shift-DR state, in the same way as the IR shift in the Shift-IR state.

When the TAPSM goes through the Update-DR state, the value scanned in the DR scan chain is transferred to the selected DR.

When the TAPSM is in the Run-Test/Idle state, no special actions occur. The IDCODE instruction is loaded in IR.

When active, the NJTRST signal resets the state machine asynchronously to the test-logic-reset state.

The table below lists DRs corresponding to the 4-bit IR instructions.

Table 860. JTAG-DP data registers

Instruction registerData 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 allows 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 which is read following a read request
Bits 2:0 = ACK[2:0] = 3-bit acknowledge:
0b010= OK/fault
0b000 = Wait
Other = reserved
1011APACC35Access port access register
Initiates an access port and allows 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 which is read following a read request
Bits 2:0 = ACK[2:0] = 3-bit acknowledge:
010b = OK/Fault
001b = Wait
Other = reserved
1100(BYPASS)1Reserved: BYPASS selected
1101(BYPASS)1Reserved: BYPASS selected

Table 860. JTAG-DP data registers (continued)

Instruction registerData registerScan chain lengthDescription
1110IDCODE32ID code
0x6BA00477: Arm JTAG debug port ID code
1111BYPASS1Bypass
A single JTCK cycle delay is inserted between JTDI and JTDO

For more details on DR registers and the JTAG debug protocol, refer to the Arm Debug Interface Architecture Specification [1].

78.9.2 SWD debug port

The serial-wire debug protocol uses the two following pins:

Serial data are transferred LSB first, synchronously with the clock. A transfer comprises the following phases:

  1. 1. packet request (8 bits) transmitted by the host
  2. 2. acknowledge response (3 bits) transmitted by the target
  3. 3. data transfer (33 bits) transmitted by the host (for a write) or the device (for a read)

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

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

Table 861. Packet request

Bit(s)NameDescription
0StartMust be 1
1APnDP0: DP register access (see Table 864 for a list of DP registers)
1: AP register access (see Section 78.10 )
2RnW0: Write request
1: Read request
4:3A(3:2)Address field of DP or AP register (refer to Table 864 and Section 78.10 )
5ParitySingle bit parity of preceding bits
6Stop0
7ParkNot driven by host. Must be read as 1 by the device.

Table 862. ACK response

BitfieldNameDescription
2:0ACK0b000: Fault
0b010: Wait
0b100: OK

Table 863. Data transfer

BitfieldNameDescription
31:0WDATA or RDATAWrite or read data
32ParitySingle bit parity of 32 data bits

Figure 1078 shows successful write and read transfers.

Figure 1078. SWD successful data transfer

Timing diagram showing SWD successful data transfer. It illustrates the SWCLK line (a square wave) and the SWDIO line (a bidirectional data line). The diagram shows two transfers: a Write transfer and a Read transfer. The Write transfer starts with a Start bit (1), followed by APnDP (x), RnW (0), A[2] (x), A[3] (x), Parity (x), Stop (0), Park (1), Over (/), ACK[0] (1), ACK[1] (0), ACK[2] (0), Over (/), WDATA[0] (x), WDATA[1] (x), WDATA[2] (x), followed by a gap, then WDATA[29] (x), WDATA[30] (x), WDATA[31] (x), and Parity (x). The Read transfer starts with a Start bit (1), followed by APnDP (x), RnW (1), A[2] (x), A[3] (x), Parity (x), Stop (0), Park (1), Over (/), ACK[0] (1), ACK[1] (0), ACK[2] (0), RDATA[0] (x), RDATA[1] (x), RDATA[2] (x), followed by a gap, then RDATA[29] (x), RDATA[30] (x), RDATA[31] (x), Parity (x), and Over (/).

Legend

Bit values: 1 – value is 1
0 – value is 0
x – value is 1 or 0
/ – transfer of SWDIO line possession

MSv39777V1

Timing diagram showing SWD successful data transfer. It illustrates the SWCLK line (a square wave) and the SWDIO line (a bidirectional data line). The diagram shows two transfers: a Write transfer and a Read transfer. The Write transfer starts with a Start bit (1), followed by APnDP (x), RnW (0), A[2] (x), A[3] (x), Parity (x), Stop (0), Park (1), Over (/), ACK[0] (1), ACK[1] (0), ACK[2] (0), Over (/), WDATA[0] (x), WDATA[1] (x), WDATA[2] (x), followed by a gap, then WDATA[29] (x), WDATA[30] (x), WDATA[31] (x), and Parity (x). The Read transfer starts with a Start bit (1), followed by APnDP (x), RnW (1), A[2] (x), A[3] (x), Parity (x), Stop (0), Park (1), Over (/), ACK[0] (1), ACK[1] (0), ACK[2] (0), RDATA[0] (x), RDATA[1] (x), RDATA[2] (x), followed by a gap, then RDATA[29] (x), RDATA[30] (x), RDATA[31] (x), Parity (x), and Over (/).

For any FAULT or WAIT ACK response from the device, the data transfer phase is canceled, unless overrun detection is enabled. If and overrun detection is enabled, data are ignored by the device (for a write), or not driven (for 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 of 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.

78.9.3 Debug port registers

The SW-DP and JTAG-DP access the debug port (DP) registers, listed in Table 864 .

The debugger can access DP registers as follows:

  1. 1. Program DPBANKSEL in DP_SELECT to select the register bank to be accessed (see Table 864 ).
  2. 2. If using JTAG, program A[3:2] in the DPACC register with the register address within the bank. Program the R/W bit to select a read or a write. For a write, program the DATA field with the write data.

If using SWD, the A[3:2] and R/W fields are part of the packet request word sent to the SW-DP with the APnDP bit reset (see Table 861 ). The write data are sent in the data phase.

Table 864. Debug port registers

AddressA[3:2] valueR/WDescription
0x000RDP_PIDR register (2) . Contains the IDCODE for the debug port.
WDP_ABORT register (1) . Aborts the current AP transaction. This register is also used to clear the error flags in DP_CTRL/STAT.
0x401R/WIf DPBANKSEL[3:0] = 0x0 in DP_SELECT:
DP_CTRLSTAT register. Controls the DP and provides status information.
If DPBANKSEL[3:0] = 0x1 in DP_SELECT:
DP_DLCR register (2) . Controls the operating mode of the SWD data link.
If DPBANKSEL[3:0] = 0x2 in DP_SELECT:
DP_TARGETID register. Provides target identification information.
If DPBANKSEL[3:0] = 0x3 in DP_SELECT:
DLPIDR register (2) . Provides the SWD protocol version.
0x810RRESEND register (2) . Returns the value that was returned by the last AP read or DP_RDBUFF read, used in the event of a corrupted read transfer.
WDP_SELECT register. Selects the access port, access port register bank, and DP register at address 0x4.
0xC11RDP_RDBUFF register
– Via JTAG-DP, enables the debugger to get the final result after a sequence of operations (without requesting new JTAG-DP operation).
– Via SW-DP, contains the result of the preceding AP read access, allowing a new AP access to be avoided.
WDP_TARGETSEL register (2) . On a write to DP_TARGETSEL immediately following a line reset sequence, the target is selected if the following conditions are both met:
– Bits [31:28] match bits [31:28] in DP_DLPIDR.
– Bits [27:0] match bits [27:0] in DP_TARGETID.
Writing any other value deselects the target. Debug tools must write 0xFFFFFFFF to deselect all targets. This is an invalid DP_TARGETID value. All other invalid DP_TARGETID values are reserved.

1. Access to the AP ABORT register from the JTAG-DP is done using the ABORT instruction.

2. Only accessible via SW-DP. Register is “reserved” via JTAG-DP.

Debug port identification register (DP_PIDR)

Address offset: 0x0

Reset value: 0x6BA0 2477

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

0x6

Bits 27:20 PARTNO[7:0] : Debug port part number

0xBA

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

Bit 16 MIN : Minimal debug port (MINDP) implementation

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

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

0x2: DPv2

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

0x23B: Arm

Bit 0 Reserved, must be kept at reset value.

Debug port abort register (DP_ABORT)

Address offset: 0x0

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.ORUN
ERRCLR
WDER
RCLR
STKER
RCLR
STKCM
PCLR
DAP
ABORT
wwwww

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

Bit 4 ORUNERRCLR : Overrun error clear bit

0: No effect

1: Clear STICKYORUN in DP_CTRLSTAT.

Bit 3 WDERRCLR : Write data error clear bit

0: No effect

1: Clear WDATAERR in DP_CTRLSTAT.

Bit 2 STKERRCLR : Sticky error clear bit

0: No effect

1: Clear STICKYERR in DP_CTRLSTAT.

Bit 1 STKCMPCLR : Sticky compare clear bit

0: No effect

1: Clear STICKYCMP in DP_CTRLSTAT.

Bit 0 DAPABORT : Abort current AP transaction

The transaction is aborted if an excessive number of WAIT responses are returned.

This indicates that the transaction has stalled.

0: No effect

1: Abort the transaction.

Debug port control/status register (DP_CTRLSTAT)

Address offset: 0x4

Reset value: 0x0000 0000

31302928272625242322212019181716
CSYSP
WRUP
ACK
CSYSP
WRUP
REQ
CDBG
PWRU
PACK
CDBG
PWRU
PREQ
CDBG
RSTAC
K
CDBG
RSTRE
Q
Res.Res.TRNCNT[11:4]
rrwrrwrrwrwrwrwrwrwrwrwrw
1514131211109876543210
TRNCNT[3:0]MASKLANE[3:0]WDATA
ERR
READ
OK
STICK
YERR
STICK
YCMP
TRNMODE[1:0]STICKY
ORUN
ORUND
ETECT
rwrwrwrwrwrwrwrwrrrwwwwww

Bit 31 CSYSPWRUPACK : System domain power-up status bit - not used in this device

Bit 30 CSYSPWRUPREQ : System domain power-up control bit - not used in this device

Bit 29 CDBGPWRUPACK : Debug domain power-up status bit

This bit is read-only. It returns the status of the debug domain power-up acknowledge signal from the power controller.

0: domain powered down

1: domain powered up

Bit 28 CDBGPWRUPREQ : Debug domain power-up/down control bit

This bit controls the debug domain power-up/down request signal to the power controller.

0: power-down requested

1: power-up requested

Bit 27 CDBGIRSTACK : Debug domain reset status bit - not used in this device

Bit 26 CDBGIRSTREQ : Debug domain reset control bit - not used in this device

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

Bits 23:12 TRNCNT[11:0] : Transaction counter

To program a sequence of transactions to incremental addresses via an AP, this field is loaded with the number of transactions to perform. It is decremented on successful completion of each transaction.

Bits 11:8 MASKLANE[3:0]: Pushed-compare and pushed-verify masking bits

The field indicates the bytes to be masked in pushed-compare and pushed-verify operations (TRNMODE = 1 or 2 in this register). In the pushed operations, the word supplied in an AP write transaction is compared with the current value at the target AP address.

1xxx: Include byte lane 3 in comparisons.

x1xx: Include byte lane 2 in comparisons.

xx1x: Include byte lane 1 in comparisons.

xxx1: Include byte lane 0 in comparisons.

Bit 7 WDATAERR: Write data error in SW-DP

The bit indicates one of the following:

This bit is read-only. It is reset by writing 1 to WDERRCLR in DP_ABORT.

0: No error

1: Error has occurred.

Note: This bit is reserved in JTAG-DP.

Bit 6 READOK: AP read response in SW-DP

This bit indicates the response to the last AP read access. It is read-only.

0: Read not ok

1: Read ok

Note: This bit is reserved in JTAG-DP.

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

This bit indicates that an error occurred during an AP transaction. In SW-DP, this bit is reset by writing 1 to STKERRCLR in DP_ABORT. In JTAG-DP, this bit is reset by programming it to 1.

0: No error

1: Error has occurred.

Bit 4 STICKYCMP: Compare match (read-only in SW-DP, R/W in JTAG-DP)

This bit indicates that a match occurred in a pushed operation. In SW-DP, this bit is reset by writing 1 to STKCMPCLR in DP_ABORT. In JTAG-DP, this bit is reset by programming it to 1.

0: Match if TRNMODE = 0x1; no match if TRNMODE = 0x2

1: No match if TRNMODE = 0x1; match if TRNMODE = 0x2

Bits 3:2 TRNMODE[1:0]: Transfer mode for AP write operations

For read operations, this field must be set to 0x0.

0x0: Normal operation - AP transactions are passed directly to the AP.

0x1: Pushed-verify operation. The DP stores the write data and performs a read transaction at the target AP address. The result of the read operation is compared with the stored data. If they do not match, the STICKYCMP bit is set in this register.

0x2: Pushed-compare operation. The DP stores the write data and performs a read transaction at the target AP address. The result of the read is compared with the stored data. If they match, the STICKYCMP bit is set.

0x3: Reserved

Note: In pushed operations, only the data bytes indicated by the MASKLANE field are included in the comparison.

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

This bit indicates that an overrun occurred (a new transaction received before previous transaction completed). This bit is only set if ORUNDETECT is set in this register. In SW-DP, this bit is reset by writing 1 to ORUNERRCLR in DP_ABORT. In JTAG-DP, this bit is reset by writing a 1 to it.

0: No overrun

1: Overrun occurred.

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 STICKYORUN is cleared.

Debug port data link control register (DP_DLCR)

Address offset: 0x4

Reset value: 0x0000 0040

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]Res.Res.Res.Res.Res.Res.Res.Res.Res.
rwrw

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

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

0x0: 1 data bit period

0x1: 2 data bit periods

0x2: 3 data bit periods

0x3: 4 data bit periods

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

Debug port target identification register (DP_TARGETID)

Address offset: 0x4

Reset value: 0x0486 0041

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

Bits 31:28 TREVISION[3:0] : Device revision number

0x0: revision 1

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

0x4860: STM32N6x5/x7xx

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

0x020: STMicroelectronics

Bit 0 Reserved, must be kept at reset value.

Address offset: 0x4

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

These bits define the instance number for this device in a multi-drop system: 0x0.

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

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

0x1: Version 2

Debug port resend register (DP_RESEND)

Address offset: 0x8

Reset value: 0x0000 0000

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

Bits 31:0 RESEND[31:0] : Last AP read or DP RDBUFF read value

These bits contain the value that was returned by the last AP read or DP RDBUFF read. Used in the event of a corrupted read transfer.

Debug port access port select register (DP_SELECT)

Address offset: 0x8

Reset value: 0xXXXX XXXX

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

Bits 31:24 APSEL[7:0] : Access port select bits

These bits select the access port for the next transaction.

0x00: AP0 - System debug access port (APB-AP)

0x01: AP1 - Cortex-M55 debug access port (AHB-AP)

Others: reserved

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

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

These bits select the 4-word register bank on the active AP for the next transaction.

Bits 3:0 DPBANKSEL[3:0] : DP register bank select bits

These bits select the register at address 0x4 of the debug port.

0x0: DP_CTRLSTAT register

0x1: DP_DLCR register

0x2: DP_TARGETID register

0x3: DP_DLPIDR register

Others: reserved

Debug port read buffer register (DP_RDBUFF)

Address offset: 0xC

Reset value: 0x0000 0000

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

Bits 31:0 RDBUFF[31:0] : Last AP read value

The field contains the value returned by the last AP read access. There are two ways to retrieve the value returned by an AP read access:

Debug port target identification register (DP_TARGETSEL)

Address offset: 0xC

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
TINSTANCE[3:0]TPARTNO[15:4]
wwwwwwwwwwwwwwww
1514131211109876543210
TPARTNO[3:0]TDESIGNER[10:0]Res.
wwwwwwwwwwwwwww

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

This field defines the instance number for the target device in a multi-drop system. It must be programmed with the same value as TINSTANCE in DP_DLPIDR in order to select this device.

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

This field defines the part number for the target device. It must be programmed with the same value as TPARTNO in DP_TARGETID in order to select this device.

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

This field defines the JEDEC code for the target device. It must be programmed with the same value as TDESIGNER in DP_TARGETID in order to select this device.

Bit 0 Reserved, must be kept at reset value.

Debug port register map

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

The debug port address offset is 4-bit wide, where the two most significant bits are defined in the JTAG-DP register DPACC or SW-DP packet request A[3:2] field. The two least significant bits are 00.

Table 865. Debug port register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x0DP_DPIDRREVISION [3:0]PARTNO[7:0]Res.Res.Res.MINVERSION [3:0]DESIGNER[10:0]Res.
Reset value01101011110100001001000111011
0x0DP_ABORTRes.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.ORUNERRCLRWDERRCLRSTKERRCLRSTKCMPCLRDAPABORT
Reset value00000
0x4 (1)DP_CTRLSTATCSYSPWRUPACKCSYSPWRUPREQCDBGPWRUPACKCDBGPWRUPREQCDBGRSTACKCDBGRSTREQRes.Res.TRNCNT[11:0]MASKLANE[3:0]WDATAERRREADOKSTICKYERRSTICKYCMPTRNMODE[1:0]STICKYORUNORUNDETECT
Reset value0000000000000000000000000000000
0x4 (2)DP_DLCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TURNROUND [1:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value000

Table 865. Debug port register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x4 (3)DP_TARGETIDTREVSION [3:0]TPARTNO[15:0]TDESIGNER[10:0]Res
Reset value000001001000011000000000010000001
0x4 (4)DP_DLPIDRTINSTANCE [3:0]ResPROTSVN [3:0]
Reset value00000 0 0 1
0x8DP_RESENDRESEND[31:0]
Reset value00000000000000000000000000000000
0x8DP_SELECTAPSEL[7:0]DPBANKSEL [3:0]
Reset valueXXXXXXXXResResResResResResResResResResResResResResResResResResResResResResResRes
0xCDP_RDBUFFRDBUFF[31:0]
Reset value00000000000000000000000000000000
0xCDP_TARGETSELTINSTANCE [3:0]TPARTNO[15:4]TPARTNO [3:0]Res
Reset valueXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  1. 1. DPBANKSEL[3:0] = 0x0
  2. 2. DPBANKSEL[3:0] = 0x1
  3. 3. DPBANKSEL[3:0] = 0x2
  4. 4. DPBANKSEL[3:0] = 0x3

78.10 Access ports

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

Figure 1079. Debug and access port connections

Diagram showing the connections between JTAG/SWD, SWJ-DP, DAPBUS, AP0 (APB-AP), AP1 (AHB-AP), AP2 (AXI-AP), DBGMCU, Cortex-M55, and System interconnect (AXI).
    graph LR
      JTAG_SWD[JTAG/SWD] <--> SWJ_DP[SWJ-DP]
      SWJ_DP <--> DAPBUS[DAPBUS]
      DAPBUS --> AP0[AP0
(APB-AP)
] DAPBUS --> AP1[AP1
(AHB-AP)
] DAPBUS --> AP2[AP2
(AXI-AP)
] AP0 <--> DBGMCU[DBGMCU] AP1 <--> Cortex_M55[Cortex-M55] AP2 <--> System_Interconnect[System interconnect (AXI)]
Diagram showing the connections between JTAG/SWD, SWJ-DP, DAPBUS, AP0 (APB-AP), AP1 (AHB-AP), AP2 (AXI-AP), DBGMCU, Cortex-M55, and System interconnect (AXI).

components located on the EPPB interface (external private peripheral bus). In a closed device, AP1 is locked until the debug authentication process is complete.

All access ports are of MEM-AP type: debug and trace component registers are mapped in the address space of the associated debug bus. The 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 address of the AP registers is composed of:

The content of APSEL field in DP_SELECT defines which MEM-AP is being accessed.

The debugger can access the AP registers as follows:

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 861 ). The write data are sent in the data phase.

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

  1. 1. Program the transaction target address in APx_TAR.
  2. 2. Program APx_CSW, if necessary, with the transfer parameters (AddrInc for example).
  3. 3. Write to or read from APx_DRW to initiate a bus transaction at the address held in the APx_TAR register. Alternatively, a read or write to banked data register BDN triggers an access to address TAR[31:4] + n (this allows an access to the next four consecutive addresses without changing the address in APx_TAR).

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

Authentication

The effect of the authentication signals for AP1 and AP2 is shown in Table 866 .

Table 866. AP1-2 authentication behavior

spidenOthersBehavior
0XSecure transfers blocked. Any attempt to perform a secure transfer results in an error. Nonsecure transfers are enabled.
1Both non-secure and secure transfers are enabled.

78.10.1 AP0 registers

Access port 0 control/status word register (AP0_CSW)

Address offset: 0x0

Reset value: 0x8000 0002

31302928272625242322212019181716
DBGSW
ENABLE
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
rw
1514131211109876543210
Res.Res.Res.Res.MODE[3:0]TRINP
ROG
DEVIC
EEN
ADDRINC[1:0]Res.SIZE[2:0]
rwrwrwrwrrrwrwrrr

Bit 31 DBGSWENABLE : Software debug enable

This bit enables or disables software access to the APB bus via the APB interconnect. It must always be set to 1 to enable software access to the DBGMCU.

0 Disable software access.

1 Enable software access.

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

Bits 11:8 MODE[3:0] : Mode of operation

0x0: Normal download or upload model.

Others: reserved

Bit 7 TRINPROG : Transfer in progress

This bit indicates that an AP bus transfer is in progress.

0: No transfer in progress

1: Bus transfer in progress

Bit 6 DEVICEEN : Device enable

This bit defines whether the AP can be accessed or not.

1: AP access enabled

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

These bits define whether the 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 in this register).

Others: reserved

Bit 3 Reserved, must be kept at reset value.

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

0x2: Word (32-bit)

AP0 transfer address register (AP0_TAR)

Address offset: 0x04

Reset value: 0x0000 0000

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

Bits 31:0 ADDRESS[31:0] : address of the current transfer

AP0 data read/write register (AP0_DRW)

Address offset: 0x0C

Reset value: 0x0000 0000

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

Bits 31:0 DATA[31:0] : read/write data for current transfer

In write mode, this is the write data value. In read mode, this is the read data value.

AP0 banked data register x (AP0_BDx)

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

Reset value: 0x0000 0000

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

Bits 31:0 DATA[31:0] : Read/write data for current transfer

The transaction address is \( TAR[31:4] \ll 4 + 0x4 * x \) .

AP0 base address register (AP0_BASE)

Address offset: 0xF8

Reset value: 0x8000 0003

31302928272625242322212019181716
BASEADDR[19:4]
rrrrrrrrrrrrrrrr
1514131211109876543210
BASEADDR[3:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.FORM
AT
ENTRY
PRESE
NT
rrrrrr

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

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

0x800000: ROM table base address is 0x8000 0000

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 component present status

This bit indicates that debug components are present on the access port bus:

1: Debug components are present.

AP0 identification register (AP0_IDR)

Address offset: 0xFC

Reset value: 0x5477 0002 (AP0)

31302928272625242322212019181716
REVISION[3:0]JEDECBANK[3:0]JEDECCODE[6:0]MEMA
P
rrrrrrrrrrrrrrrr
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.IDENTITY[7:0]
rrrrrrrr

Bits 31:28 REVISION[3:0] : Arm core revision

0x5: r1p0

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

0x4: Arm

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

0x3B: Arm

Bit 16 MEMAP : Memory access port

1: Standard register map

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

Bits 7:0 IDENTITY[7:0] : AP type identification

0x02: APB-AP

AP0 register map

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

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

Table 867. AP0 register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x00AP0_CSWDBGSWENABLERes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.MODE[3:0]TRINPROGDEVICEENADDRINC[1:0]Res.SIZE[2:0]
Reset value10000000000010
0x04AP0_TARADDRESS[31:0]
0x08ReservedReserved
0x0CAP0_DRWDATA[31:0]
0x10 +
0x4 * x
(x = 0 to 3)
AP0_BDxDATA[31:0]
0x20-0xF4ReservedReserved
0xF8AP0_BASEBASEADDR[19:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FORMATENTRYPRESENT
Reset value1000000000000000000011
0xFCAP0_IDRREVISION[3:0]JEDECBANK[3:0]JEDECCODE[6:0]MEMAPRes.Res.Res.Res.Res.Res.Res.Res.Res.IDENTITY[7:0]
Reset value0101010011110111

78.10.2 AP1 registers

Access port 1 control/status word register (AP1_CSW)

Address offset: 0x0

Reset value: 0x4000 0002

31302928272625242322212019181716
Res.SPROTRes.PROT[4:0]SPISTA
TUS
Res.Res.Res.Res.Res.Res.Res.
rwrwrwrwrwrwr
1514131211109876543210
Res.Res.Res.Res.MODE[3:0]TRINP
ROG
DBGST
ATUS
ADDRINC[1:0]Res.SIZE[2:0]
rwrwrwrwrrrwrwrwrwrw

Bit 31 Reserved, must be kept at reset value.

Bit 30 SPROT : Secure transfer request

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

0: If spiden is high, secure transfer. If spiden is low, no transfer.

1: Nonsecure transfer

Bit 29 Reserved, must be kept at reset value.

Bits 28:24 PROT[4:0] : Bus transfer protection

This field sets the protection attributes HPROT[4:0] of the bus transfer.

xxxx0: Instruction fetch

xxxx1: Data access

xxx0x: User mode

xxx1x: Privileged mode

xx0xx: Non-bufferable

xx1xx: Bufferable

x0xxx: Non-cacheable

x1xxx: Cacheable

0xxxx: Non-exclusive

1xxxx: Exclusive

Bit 23 SPISTATUS : Status of spiden authentication signal

This bit determines whether the debugger can access secure memory.

0: Secure AHB transfers not supported

1: Secure AHB transfers allowed

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

Bits 11:8 MODE[3:0] : Specifies the mode of operation

0x0: Normal download or upload mode

Others: reserved

Bit 7 TRINPROG : Transfer in progress

This bit indicates that an AP bus transfer is in progress.

0: No transfer in progress

1: Bus transfer in progress

Bit 6 DBGSTATUS : Debug status

Indicates the state of the dbgen authentication signal

0: No AHB transfers permitted

1: AHB transfers permitted

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

These bits define whether the TAR address is automatically incremented after a transaction.

0x0: No auto-increment

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

0x2: Packed transfers enabled. A 32-bit AP access generates a 1 x 32-bit, 2 x 16-bit, or

4 x 8-bit bus transaction corresponding to the programmed transaction size. Data are packed or unpacked accordingly.

0x3: 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: Half-word (16-bit)
0x2: Word (32-bit)
Others: Reserved

AP1 transfer address register (AP1_TAR)

Address offset: 0x04

Reset value: 0x0000 0000

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

Bits 31:0 ADDRESS[31:0] : Address of the current transfer

AP1 data read/write register (AP1_DRW)

Address offset: 0x0C

Reset value: 0x0000 0000

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

Bits 31:0 DATA[31:0] : Read/write data for current transfer

In write mode, this is the write data value. In read mode, this is the read data value.

AP1 banked data register x (AP1_BDx)

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

Reset value: 0x0000 0000

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

Bits 31:0 DATA[31:0] : read/write data for current transfer

The transaction address is TAR[31:4] << 4 + 0x4 * x.

AP1 base address register (AP1_BASE)

Address offset: 0xF8

Reset value: 0xE00F E003

31302928272625242322212019181716
BASEADDR[19:4]
rrrrrrrrrrrrrrrr
1514131211109876543210
BASEADDR[3:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FORM
AT
ENTRY
PRESENT
rrrrrr

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

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

0xE00FE: ROM table base address is at 0xE00F E000.

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 component present status

This bit indicates that debug components are present on the access port bus:

1: Debug components are present.

AP1 identification register (AP1_IDR)

Address offset: 0xFC

Reset value: 0x8477 0001 (AP1)

31302928272625242322212019181716
REVISION[3:0]JEDECBANK[3:0]JEDECCODE[6:0]MEMA
P
rrrrrrrrrrrrrrrr
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.IDENTITY[7:0]
rrrrrrrr

Bits 31:28 REVISION[3:0] : Arm core revision

0x8: r0p9

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

0x4: Arm

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

0x3B: Arm

Bit 16 MEMAP : Memory access port
1: Standard register map

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

Bits 7:0 IDENTITY[7:0] : AP type identification
0x01: AHB-AP

AP1 register map

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

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

Table 868. AP1 register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x00AP1_CSWRes.SPROTRes.PROT[4:0]SPISSTATUSRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.MODE[3:0]TRINPROGDEVICEENADDRINC[1:0]Res.SIZE[2:0]
Reset value10000000000000000010
0x04AP1_TARADDRESS[31:0]
0x08ReservedReserved
0x0CAP1_DRWDATA[31:0]
Reset value00000000000000000000000000000000
0x10 +
0x4 * x
(x = 0 to 3)
AP1_BDxDATA[31:0]
Reset value00000000000000000000000000000000
0x20-0xF4ReservedReserved
0xF8AP1_BASEBASEADDR[19:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FORMATENTRYPRESENT
Reset value1110000000001111111011
0xFCAP1_IDRREVISION[3:0]JEDECBANK[3:0]JEDECCODE[6:0]MEMAPRes.Res.Res.Res.Res.Res.Res.Res.IDENTITY[7:0]
Reset value100010001110111100000001

78.10.3 AP2 registers

AP2 control/status word register (AP2_CSW)

Address offset: 0x0

Reset value: 0x30X0 60X2

31302928272625242322212019181716
Res.PROT[2:0]CACHE[3:0]SPISTA
TUS
Res.Res.Res.Res.Res.Res.Res.
rwrwrwrwrwrwrwr

1514131211109876543210
Res.DOMAIN[1:0]ACEEN
ABLE
MODE[3:0]TRINP
ROG
DBGST
ATUS
ADDRINC[1:0]Res.SIZE[2:0]
rwrwrwrwrwrwrwrrrwrwrwrwrw

Bit 31 Reserved, must be kept at reset value.

Bits 30:28 PROT[2:0] : Access permissions

This field sets ARPROT[2:0] or AWPROT[2:0] attributes of the bus transfer.

xx0: Unprivileged access

xx1: Privileged access

x0x: Secure access

x1x: Nonsecure access

0xx: Data access

1xx: Instruction access

Bits 27:24 CACHE[3:0] : Memory type

This field sets ARCACHE[3:0] or AWCACHE[3:0] attributes of the bus transfer (see AMBA AXI and ACE Protocol Specification [7]).

Bit 23 SPISTATUS : Status of spider authentication signal

This bit determines whether the debugger can access secure memory.

0: Secure AXI transfers not supported

1: Secure AXI transfers are allowed.

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

Bits 14:13 DOMAIN[1:0] : Shareable transaction encoding for ACE

0: Non-shareable

1: Shareable, inner domain, includes additional masters.

2: Shareable, outer domain, also includes inner or additional masters.

3: Shareable, system domain, all masters included

Bit 12 ACEENABLE : Enable ACE transactions, including barriers

0: Disable

1: Enable

Bits 11:8 MODE[3:0] : Specify mode of operation

0x0: Normal download or upload

0x1: Barrier transaction

Others: Reserved

Bit 7 TRINPROG : Transfer in progress

This bit indicates that an AP bus transfer is in progress.

0: No transfer in progress

1: Bus transfer in progress

Bit 6 DBGSTATUS : Debug status

This bit indicates the state of the dbgen authentication signal

0: No AXI transfers permitted

1: AXI transfers are permitted.

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

These bits define whether the 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).

0x2: Packed transfers enabled. A 32-bit AP access generates a 1 x 32-bit, 2 x 16-bit or 4 x 8-bit bus transaction corresponding to the programmed transaction size. The data is packed or unpacked accordingly.

0x3: 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: Half-word (16-bit)

0x2: Word (32-bit)

0x3: Double word (64-bit)

Others: Reserved

AP2 transfer address register (AP2_TAR)

Address offset: 0x04

Reset value: 0x0000 0000

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

Bits 31:0 ADDRESS[31:0] : Address of the current transfer

AP2 data read/write register (AP2_DRW)

Address offset: 0x0C

Reset value: 0x0000 0000

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

Bits 31:0 DATA[31:0] : Read/write data for current transfer

In write mode, this is the write data value. In read mode, this is the read data value.

For 64-bit transfers, two accesses must be made to DRW for a single 64-bit AXI access.

The first access in read mode initiates the read on the AXI bus and returns the lower 32-bit word of data. The second access returns the upper 32-bit word. In write mode, the first access contains the lower 32-bit word of data, the second access contains the upper 32-bit word and initiates the write on the AXI bus.

AP2 banked data register x (AP2_BDx)

Address offset: \( 0x10 + 0x4 \times x \) ( \( x = 0 \) to \( 3 \) )

Reset value: 0x0000 0000

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

Bits 31:0 DATA[31:0] : Read/write data for current transfer
The transaction address is \( TAR[31:4] \ll 4 + 0x4 \times x \) .
64-bit banked data transactions are not supported

AP2 configuration register (AP2_CONFIG)

Address offset: 0xF4

Reset value: 0x0000 0002

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.

AP2 base address register (AP2_BASE)

Address offset: 0xF8

Reset value: 0x0000 0002

31302928272625242322212019181716
BASEADDR[19:4]
rrrrrrrrrrrrrrrr
1514131211109876543210
BASEADDR[3:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.FORMATENTRY PRESENT
rrrrrr

Bits 31:12 BASEADDR[19:0] : Base address (bits 31 to 12) of the AP ROM table
Not applicable, no ROM table present

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 component present status
This bit indicates that debug components are present on the access port bus:
0: No debug components are present.

AP2 identification register (AP2_IDR)

Address offset: 0xFC

Reset value: 0x4477 0004

31302928272625242322212019181716
REVISION[3:0]JEDECBANK[3:0]JEDECCODE[6:0]MEMA
P
rrrrrrrrrrrrrrrr
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.IDENTITY[7:0]
rrrrrrrr

Bits 31:28 REVISION[3:0] : Arm core revision
0x4: r1p1

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

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

Bit 16 MEMAP : Memory access port
1: Standard register map

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

Bits 7:0 IDENTITY[7:0] : AP type identification
0x04: AXB-AP

AP2 register map

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

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

Table 869. AP2 register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x00AP2_CSWResPROT[2:0]CACHE[3:0]SPSTATUSResResResResResResResResDOMAIN[2:0]ACEENABLEMODE[3:0]TRINPROGDBGSTATUSADDRINC[1:0]ResSIZE[2:0]
Reset value0110000X1100000XXXX010
0x04AP2_TARADDRESS[31:0]
0x08ReservedReserved
0x0CAP2_DRWDATA[31:0]
0x10 + 0x4 * x
(x = 0 to 3)
AP2_BDxDATA[31:0]
0x20-0xF0ReservedReserved
0xF4AP2_CONFIGResResResResResResResResResResResResResResResResResResResResResResResResResResResResLDLABE
Reset value010
0xF8AP_BASEBASEADDR[19:0]ResResResResResResResResResResFORMATENTRYPRESENT
Reset value000000000000000000010
0xFCAP_IDRREVISION[3:0]JEDECBANK[3:0]JEDECCODE[6:0]MEMAPResResResResResResResResResResResResResResResResResResResIDENTITY[7:0]
Reset value01000100011101110000100

78.10.4 ROM tables

The ROM table is a CoreSight component that contains the base addresses of all the CoreSight debug components accessible via the access port to which they are attached. These tables allow a debugger to discover the topology of the CoreSight system automatically.

The system ROM table is pointed to by the AP0 base register. It contains the base address pointer for the DBGMCU.

The system ROM table occupies a 4-Kbyte, 32-bit wide chunk of address space, from 0x8000 0000 to 0x8000 0FFC when accessed by the debugger.

Alternatively, it can be accessed by the CPU at address range 0x4400 0000 to 0x4400 0FFF.

Table 870. System ROM table
Address offset in ROM tableComponent nameComponent base address (debugger)Component base address (system bus)Component address offsetSize (Kbytes)Entry
0x000DBGMCU0x8000 10000x4400 10000x100040x0000 1003
0x004DFT register (1)0x8000 20000x4400 20000x200040x0000 2002
0x008Top of table----0x0000 0000
0x00C to 0xFC8Reserved----0x0000 0000
0xFCC to 0xFFCROM table registers-----

1. Not CoreSight compatible. Bit 0 is reset to indicate that there are no CoreSight registers in this component.

The MCU ROM table is pointed to by the AP1 base register. It contains the base address pointer for the Cortex-M55 ROM table and for the trace subsystem ROM table.

It occupies a 4-Kbyte, 32-bit wide chunk of address space, from 0xE00F E000 to 0xE00F EFFF.

Table 871. MCU ROM table
Address offset in ROM tableComponent nameComponent base addressComponent address offsetSize (Kbytes)Entry
0x000Cortex-M55 processor ROM table ( Table 873 )0xE00F F0000x0000 100040x0000 1003
0x004Trace subsystem ROM table ( Table 880 )0xE008 00000xFFF8 200040xFFF8 2003
0x008Top of table---0x0000 0000
0x00C to 0xFC8Reserved---0x0000 0000
0xFCC to 0xFFCROM table registers----

The top of ROM tables contains a number of read-only registers, including the standard CoreSight component and peripheral identity registers (see Section 78.10.5 ).

Each debug component occupies one or more 4-Kbyte blocks of address space. This block of address space is referred to as the debug register file for the component.

The component address offset field of a ROM table entry points to the start of the last 4-Kbyte block of the address space of the component. This block always contains the component and peripheral ID registers for the component, starting at offset 0xFD0 from the start of the block. The 4-Kbyte count field PIDR4 [7:4], specifies the number of 4-Kbyte blocks for the component.

The process for finding the start of the address space for a component is:

  1. 1. Read the ROM-table entry for the component and extract its Address_Offset[18:0] from bits [31:12] of the ROM-table entry.
  2. 2. Use the address offset, together with the base address of the ROM table, ROM_Base_Address, to calculate the base address of the component:

\[ \text{Component\_Base\_Address} = \text{ROM\_Base\_Address} + \text{Address\_Offset} \]

The Component_Base_Address is the start address of the 4-Kbyte address space containing the CoreSight identity registers for the component.

  1. 3. Read the peripheral ID4 (PIDR4) register for the component. The address of this register is:

\[ \text{Peripheral\_ID4\_address} = \text{Component\_Base\_Address} + 0\text{xFD0} \]

  1. 4. Extract the SIZE[7:4] field from the value of the peripheral ID4 register. This gives the number of 4-Kbyte sections of address space occupied by the component.
  1. 5. Use the SIZE field value to calculate the start address of the address space for the component:

\( \text{Component\_Start\_Address} = \text{Component\_Base\_Address} - \text{SIZE} \times 0\text{x1000} \) . If the field value is 0b0000, which corresponds to one 4-Kbyte section, the address space for the component starts at Component_Base_Address obtained at stage 2.

For more information on the use of the ROM tables, refer to the Arm Debug Interface Architecture Specification [1].

78.10.5 System/MCU ROM registers

SYSROM memory type register (SYSROM_MEMTYPE)

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
r

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

Bit 0 SYSTM : System memory

0: No system memory is present on this bus.

SYSROM 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.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: Register file occupies a single 4-Kbyte region.

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

0x0: STMicroelectronics JEDEC continuation code

SYSROM CoreSight peripheral identity register 0 (SYSROM_PIDR0)

Address offset: 0xFE0

Reset value: 0x0000 0099

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] : Device part number field, bits [7:0]

0x86: STM32N6 device

SYSROM 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 field, bits [3:0]

0x0: STMicroelectronics JEDEC code

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

0x4: STM32N6x5/x7xx device

SYSROM CoreSight peripheral identity register 2 (SYSROM_PIDR2)

Address offset: 0xFE8

Reset value: 0x0000 001A

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] : Device revision number

0x0: Not used

Bit 3 JEDEC : JEDEC assigned value

1: Designer ID specified by JEDEC

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

0x2: STMicroelectronics JEDEC code

SYSROM 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

SYSROM 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 field, bits [7:0]

0x0D: Common ID value

SYSROM CoreSight component 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 field, bits [15:12] - component class

0x1: ROM table component

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

0x0: Common ID value

SYSROM 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 field, bits [23:16]

0x05: Common ID value

SYSROM 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 field, bits [31:24]
0xB1: Common ID value

System ROM register map

Table 872. System ROM table register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFCCSYSROM_MEMTYPERes.SYSMEM
Reset value0
0xFD0SYSROM_PIDR4Res.SIZE[3:0]JEP106CON[3:0]
Reset value00000000
0xFD4-0xFDCReservedReserved
0xFE0SYSROM_PIDR0Res.PARTNUM[7:0]
Reset value1000001110
0xFE4SYSROM_PIDR1Res.JEP106ID[3:0]PARTNUM[11:8]
Reset value0000010000
0xFE8SYSROM_PIDR2Res.REVISION[3:0]JEDECJEP106ID[6:4]
Reset value0000101000
0xFECSYSROM_PIDR3Res.REVAND[3:0]CMOD[3:0]
Reset value0000000000
0xFF0SYSROM_CIDR0Res.PREAMBLE[7:0]
Reset value0000111011
0xFF4SYSROM_CIDR1Res.CLASS[3:0]PREAMBLE[11:8]
Reset value0001000000
0xFF8SYSROM_CIDR2Res.PREAMBLE[19:12]
Reset value0000010100

Table 872. System ROM table register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFFCSYSROM_CIDR3PREAMBLE[27:20]
Reset value10110001

78.11 Cortex-M55 debug features

The Cortex-M55 integrates the following CoreSight components:

These components are accessible by the debugger via the Cortex-M55 AHB-AP.

78.11.1 Processor ROM table

The MCU ROM table in the Cortex-M55 sub-system pointed to by the BASE register in the Cortex-M55 AHB-AP links to the Cortex-M55 processor ROM table.

Table 873 contains the base address pointer for the SCS registers, which allows the debugger to identify the CPU core, as well as for the FPB, DWT, ITM, ETM, and CTI.

The Cortex-M55 processor ROM table occupies a 4-Kbyte, 32-bit wide chunk of address space, from 0xE00FF000 to 0xE00FFFFC.

Table 873. Processor ROM table

Address in ROM tableComponent nameComponent base addressComponent address offsetSize (Kbytes)Entry
0xE00F F000SCS0xE000 E0000xFFF0 F00040xFFF0 F003
0xE00F F004DWT0xE000 10000xFFF0 200040xFFF0 2003
0xE00F F008FPB0xE000 20000xFFF0 300040xFFF0 3003
0xE00F F00CITM0xE000 00000xFFF0 100040xFFF0 1003
0xE00F F010TPIU (1)0xE004 00000xFFF4 100040xFFF4 1002
0xE00F F014ETM0xE004 10000xFFF4 200040xFFF4 2003
0xE00F E018PMU0xE000 30000xFFF0 400040xFFF0 4003
0xE00F E01CCTI0xE004 20000xFFF4 300040xFFF4 3003
0xE00F F020PMC-100 (2)0xE004 60000xFFF4 700040xFFF4 7002
0xE00F F024Top of table---0x0000 0000

Table 873. Processor ROM table (continued)

Address in ROM tableComponent nameComponent base addressComponent address offsetSize (Kbytes)Entry
0xE00F F024 to 0xE00F FFC8Reserved---0x0000 0000
0xE00FF FCC to 0xE00F FFCROM table registers----
  1. 1. The TPIU is included in this table by default, but bit 0 is reset to indicate that it is not present.
  2. 2. The PMC-100 is included in this table by default, but bit 0 is reset to indicate that it is not present.

The topology for the debug components in the Cortex-M55 subsystem is shown in Figure 1080 .

Figure 1080. Cortex-M55 debug topology

Figure 1080. Cortex-M55 debug topology diagram showing the hierarchy of debug components connected via the AHB-AP. It includes the BASE register, MCU Integration ROM table, Cortex-M55 ROM table, System control space (SCS), Data watchpoint/trace (DWT), Breakpoint unit (FPB), Instrumentation trace (ITM), Embedded trace (ETM), PMU, and Cross trigger (CTI).

The diagram illustrates the debug topology for the Cortex-M55 subsystem. It shows the hierarchy of debug components connected via the AHB-AP. The BASE register (0xE00FE000) points to the MCU Integration ROM table at 0xE00FE000. This table contains entries for the Cortex-M55 ROM table and other components. The Cortex-M55 ROM table at 0xE00FF000 contains entries for the System control space (SCS), Data watchpoint/trace (DWT), Breakpoint unit (FPB), Instrumentation trace (ITM), Embedded trace (ETM), PMU, and Cross trigger (CTI). Each component has its own set of registers, including Register file base, PIDR4, and CIDR3.

Figure 1080. Cortex-M55 debug topology diagram showing the hierarchy of debug components connected via the AHB-AP. It includes the BASE register, MCU Integration ROM table, Cortex-M55 ROM table, System control space (SCS), Data watchpoint/trace (DWT), Breakpoint unit (FPB), Instrumentation trace (ITM), Embedded trace (ETM), PMU, and Cross trigger (CTI).

78.11.2 Processor ROM registers

Processor ROM memory type register (CPUROM_MEMTYPE)

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.SYSTM
M
r

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

Bit 0 SYSTMEM : System memory presence

1: System memory is present on this bus.

Processor ROM CoreSight peripheral identity register 4 (CPUROM_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: Register file occupies a single 4-Kbyte region.

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

0x4: Arm JEDEC continuation code

Processor ROM CoreSight peripheral identity register 0 (CPUROM_PIDR0)

Address offset: 0xFE0

Reset value: 0x0000 00D2

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 field, bits [7:0]
0xD2: Cortex-M55 processor ROM table

Processor ROM CoreSight peripheral identity register 1 (CPUROM_PIDR1)

Address offset: 0xFE4

Reset value: 0x0000 00B4

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 field, bits [3:0]
0xB: Arm JEDEC code

Bits 3:0 PARTNUM[11:8] : Part number field, bits [11:8]
0x4: Cortex-M55 processor ROM table

Processor ROM CoreSight peripheral identity register 2 (CPUROM_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: rev r0p0

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

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

Processor ROM CoreSight peripheral identity register 3 (CPUROM_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

Processor ROM CoreSight component identity register 0 (CPUROM_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 field, bits [7:0]

0x0D: Common ID value

Processor ROM CoreSight component identity register 1 (CPUROM_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 field, bits [15:12] - component class

0x1: ROM table component

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

0x0: Common ID value

Processor ROM CoreSight component identity register 2 (CPUROM_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 field, bits [23:16]

0x05: Common ID value

Processor ROM CoreSight component identity register 3 (CPUROM_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 field, bits [31:24]

0xB1: Common ID value

Processor ROM register map

Table 874. Processor ROM register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFCCCPUROM_MEMTYPERes.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.Res.SYSTEM
Reset value1
0xFD0CPUROM_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
0xFE0CPUROM_PIDR0Res.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 value11010010

Table 874. Processor ROM register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFE4CPUROM_PIDR1Res.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 value10110100
0xFE8CPUROM_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]JEDEC [6:4]JEP106ID [6:4]
Reset value00001011
0xFECCPUROM_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
0xFF0CPUROM_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
0xFF4CPUROM_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 value00010000
0xFF8CPUROM_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
0xFFCCPUROM_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

78.11.3 Data watchpoint and trace unit (DWT)

The DWT provides eight comparators that can be used as:

It also contains counters for:

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

For address matching, the comparator can use a mask, so it matches 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 Cortex-M55 Processor Technical Reference Manual [4].

78.11.4 Cortex-M55 DWT registers

The register file base address for the DWT is defined in Table 873: Processor ROM table .

DWT control register (DWT_CTRL)

Address offset: 0x000

Reset value: 0x8000 0000

31302928272625242322212019181716
NUMCOMP[3:0]NOTRCPKTNOEXTTRIGNOCYCCNTNOPRFCNTCYCDISSCYCEVTENAFOLDEVTENALSUEVTENASLEEPEVTENAEXCEVTENACPIEVVTENAEXCTRCEVENA
rrrrrrrrrwrwrwrwrwrwrwrw
1514131211109876543210
Res.PCSAMPLEN
A
SYNCTAP[1:0]CYCTAP
P
POSTINIT[3:0]POSTRESET[3:0]CYCCNTENA
rwrwrwrwrwrwrwrwrwrwrwrwrw

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

0x8: Eight 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 disabled secure

0: No effect

1: Cycle counter is not incremented when the processor is in secure state

  1. Bit 22 CYCEVTENA : Enable POSTCNT underflow event counter packet generation
    0: Disabled
    1: Enabled
  2. Bit 21 FOLDEVTENA : Enable folded instruction counter overflow event generation
    0: Disabled
    1: Enabled
  3. Bit 20 LSUEVTENA : Enable LSU counter overflow event generation
    0: Disabled
    1: Enabled
  4. Bit 19 SLEEPEVTENA : Enable sleep counter overflow event generation
    0: Disabled
    1: Enabled
  5. Bit 18 EXCEVTENA : Enable exception overhead counter overflow event generation
    0: Disabled
    1: Enabled
  6. Bit 17 CPIEVTENA : Enable CPI counter overflow event generation
    0: Disabled
    1: Enabled
  7. Bit 16 EXCTRCENA : Enable exception trace generation
    0: Disabled
    1: Enabled
  8. Bits 15:13 Reserved, must be kept at reset value.
  9. Bit 12 PCSAMPLENA : POSTCNT counter use enable
    Enables the use of POSTCNT counter as a timer for periodic PC sample packet generation.
    0: Disabled
    1: Enabled
  10. Bits 11:10 SYNCTAP[1:0] : Position of synchronization packet counter tap on CYCCNT counter
    This selection determines the synchronization packet rate.
    0x0: Disabled - no synchronization packets
    0x1: Tap at CYCCNT[24]
    0x2: Tap at CYCCNT[26]
    0x3: Tap at CYCCNT[28]
  11. Bit 9 CYCTAP : Position of the POSTCNT tap on the CYCCNT counter
    0: Tap at CYCCNT[6]
    1: Tap at CYCCNT[10]
  12. 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).
  13. Bits 4:1 POSTRESET[3:0] : Reload value of the POSTCNT counter.
  14. Bit 0 CYCCNTENA : CYCCNT counter enable
    0: Disabled
    1: Enabled
DWT cycle count register (DWT_CYCCNT)

Address offset: 0x004

Reset value: 0x0000 0000

31302928272625242322212019181716
CYCCNT[31:16]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
CYCCNT[15:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
Bits 31:0 CYCCNT[31:0] : Processor clock-cycle counter DWT CPI count register (DWT_CPICNT)

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_LSUCNT, and counts any instruction fetch stalls.

DWT exception count register (DWT_EXCCNT)

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.

DWT sleep count register (DWT_SLEEPCNT)

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 SLEEPCNT[7:0] : Sleep cycle counter

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

DWT LSU count register (DWT_LSUCNT)

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.

DWT fold count register (DWT_FOLDCNT)

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 (in parallel with another instruction).

DWT program counter sample register (DWT_PCSR)

Address offset: 0x01C

Reset value: 0xXXXX XXXX

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.

DWT comparator register x (DWT_COMPx)

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

Reset value: 0x0000 0000

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

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

DWT function register x (DWT_FUNCTx)

Address offset: 0x028 + 0x10 * x (x = 0 to 7)

Reset value: 0x5800 0000, 0xF000 0000, 0x5000 0000, 0xF000 0000, 0x5000 0000, 0xD000 0000, 0x5000 0000, 0xD000 0000

31302928272625242322212019181716
ID[4:0]Res.Res.MATCH
ED
Res.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] : Identify capability (read-only)

Identifies the MATCH[3:0] capabilities for the comparator.

0x08: Data address, and data address with value

0x09: Cycle counter, data address, and data address with value

0x0A: Instruction address, data address, and data address with value

0x0B: Cycle counter, instruction address, data address and data address with value

0x18: Data address, data address limit, and data address with value

0x1A: Instruction address, instruction address limit, data address, data address limit, and data address with value

0x1C: Data address, data address limit, data value, linked data value, and data address with value

0x1E: Instruction address, instruction address limit, data address, data address limit, data value, linked data value, and data address with value

Others: Reserved

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

Bit 24 MATCHED : Comparator match (read-only)

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

0: No match

1: Match occurred

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

Bits 11:10 DATAVSIZE[1:0] : Size of required data comparison

For data value matching, specifies the size of the required data comparison.

0: Byte

1: Half word

2: Word

3: Reserved

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

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

Defines the action when a match occurs

0: Trigger only

1: Generate debug event

2: 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

3: 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 this comparator (see ID[4:0] for valid types).

DWT comparator value mask register x (DWT_VMASKx)

Address offset: 0x02C + 0x10 * x (x = 1,3)

Reset value: 0x0000 0000

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

Bits 31:0 VMASK[31:0] : Data value mask.

Mask value for use in the comparison with load or store data. This only applies to comparators which support data value matching.

For every bit m, if VMASK[m] = 0, the comparison matches only if DWT_COMPx[m] matches bit [m] of the candidate data value. If VMASK[m] = 1, the comparison ignores bit [m] of the candidate data value.

DWT device type architecture register (DWT_DEVARCH)

Address offset: 0xFBC

Reset value: 0x4771 1A02

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

Bits 31:21 ARCHITECT[10:0] : Architect JEDEC code

0x23B: Arm JEDEC code

Bit 20 PRESENT : DEVARCH register present

1: Present

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

0x1: DWT architecture v2.1

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

0x1: DWT architecture v2

Bits 11:0 ARCHPART[11:0] : Architecture

0xA02: DWT architecture

DWT device type register (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] : Component subtype

0x0: Other

Bits 3:0 MAJOR[3:0] : Component major type
0x0: Miscellaneous

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.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: Register file occupies a single 4-Kbyte region.

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

DWT CoreSight peripheral identity register 0 (DWT_PIDR0)

Address offset: 0xFE0

Reset value: 0x0000 0002

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 field, bits [7:0]
0x02: DWT part number

DWT CoreSight peripheral identity register 1 (DWT_PIDR1)

Address offset: 0xFE4

Reset value: 0x0000 00B0

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 field, bits [3:0]

0xB: Arm JEDEC code

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

0x0: DWT part number

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]

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 field, bits [6:4]

0x3: Arm JEDEC code

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]

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

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 field, bits [7:0]

0x0D: Common ID value

DWT CoreSight component identity register 1 (DWT_CIDR1)

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 field, bits [15:12] - component class

0xE: Trace generator component

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

0x0: Common ID value

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 field, bits [23:16]

0x05: Common ID value

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 field, bits [31:24]

0xB1: Common ID value

DWT register map

Table 875. DWT register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x000DWT_CTRLNUMCOMP
[3:0]
NOTRCPKTNOEXTTRIGNOCYCCNTNOPRFCNTCYCDISSCYCEVTENAFOLDEVTENALSUEVTENASLEEPEVTENAEXCEVTENACPIVTENAEXCTRCENARes.Res.Res.PCSAMPTENASYNCTAP[1:0]CYCTAPPOSINIT[3:0]POSTPRESET
[3:0]
CYCCNTENA
Reset value1000000000000000000000000000000
0x004DWT_CYCCNTCYCCNT[31:0]
Reset value0000000000000000000000000000000
0x008DWT_CPICNTRes.Res.Res.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 value0000000
0x00CDWT_EXCCNTRes.Res.Res.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 value0000000
0x010DWT_SLEEPcntRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SLEEPcnt[7:0]
Reset value0000000

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

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x014DWT_LSUCNTResResResResResResResResResResResResResResResResResResResResResResLSUCNT[7:0]
Reset value0000000000
0x018DWT_FOLDCNTResResResResResResResResResResResResResResResResResResResResResResFOLDCNT[7:0]
Reset value0000000000
0x01CDWT_PCSREIASAMPLE[31:0]
Reset valueXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0x020DWT_COMP0COMP[31:0]
Reset value00000000000000000000000000000000
0x024ReservedReserved
0x028DWT_FUNCT0ID[4:0]ResResMATCHEDResResResResResResResResResResResResResResResResDATA/SIZE [1:0]ResResResResResResResACTION [1:0]MATCH[3:0]
Reset value010110000000
0x02CReservedReserved
0x030DWT_COMP1COMP[31:0]
Reset value00000000000000000000000000000000
0x034ReservedReserved
0x038DWT_FUNCT1ID[4:0]ResResMATCHEDResResResResResResResResResResResResResResResResDATA/SIZE [1:0]ResResResResResResResACTION [1:0]MATCH[3:0]
Reset value111100000000
0x03CDWT_VMASK1VMASK[31:0]
Reset value00000000000000000000000000000000
0x040DWT_COMP2COMP[31:0]
Reset value00000000000000000000000000000000
0x044ReservedReserved
0x048DWT_FUNCT2ID[4:0]ResResMATCHEDResResResResResResResResResResResResResResResResDATA/SIZE [1:0]ResResResResResResResACTION [1:0]MATCH[3:0]
Reset value010100000000
0x04CReservedReserved
0x050DWT_COMP3COMP[31:0]
Reset value00000000000000000000000000000000
0x054ReservedReserved
0x058DWT_FUNCT3ID[4:0]ResResMATCHEDResResResResResResResResResResResResResResResResDATA/SIZE [1:0]ResResResResResResResACTION [1:0]MATCH[3:0]
Reset value110100000000
0x05CDWT_VMASK3VMASK[31:0]
Reset value00000000000000000000000000000000
0x060DWT_COMP4COMP[31:0]
Reset value00000000000000000000000000000000
0x064ReservedReserved

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

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x068DWT_FUNCT4ID[4:0]Res.Res.MATCHEDRes.Res.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 value01010000000000
0x06CReservedReserved
0x070DWT_COMP5COMP[31:0]
Reset value00000000000000000000000000000000
0x074ReservedReserved
0x078DWT_FUNCT5ID[4:0]Res.Res.MATCHEDRes.Res.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 value11010000000000
0x07CReservedReserved
0x080DWT_COMP6COMP[31:0]
Reset value00000000000000000000000000000000
0x084ReservedReserved
0x088DWT_FUNCT6ID[4:0]Res.Res.MATCHEDRes.Res.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 value01010000000000
0x08CReservedReserved
0x090DWT_COMP7COMP[31:0]
Reset value00000000000000000000000000000000
0x094ReservedReserved
0x098DWT_FUNCT7ID[4:0]Res.Res.MATCHEDRes.Res.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 value11010000000000
0x09C-0xFB8ReservedReserved
0xFB8DWT_DEVARCHARCHITECT[10:0]PRESENTREVISION [3:0]ARCHVER [3:0]ARCHPART[11:0]
Reset value01000111011100010001101000000010
0xFC0-0xFC8ReservedReserved
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.Res.SUB[3:0]MAJOR[3:0]
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.SIZE[3:0]JEP106CON [3:0]
Reset value000010
0xFD4-0xFDCReservedReserved
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 value001001

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

OffsetRegister name313029282726252423222120191817161514131211109876543210
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.JEP106ID
[3:0]
PARTNUM
[11:8]
Reset value101111001
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.REVISION
[3:0]
JEDECJEP106ID
[6:4]
Reset value000001011
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.REVAND[3:0]CMOD[3:0]
Reset value000000000
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.PREAMBLE[7:0]
Reset value000001101
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.CLASS[3:0]PREAMBLE
[11:8]
Reset value011110000
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.PREAMBLE[19:12]
Reset value000000101
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.PREAMBLE[27:20]
Reset value101110001

78.11.5 Cortex-M55 performance monitoring unit (PMU)

The PMU enables software to get information about events that are taking place in the processor, and can be used for performance analysis and system debug.

The PMU supports eight 16-bit event counters, and one 32-bit cycle counter. Each event counter can count one event from the list of PMU events in the Arm Cortex-M55 Processor Technical Reference Manual [4]. The PMU also supports a chain function, which allows the PMU to cascade two of the 16-bit counters into one 32-bit counter. Only odd event counters support the chain feature. PMU counters increment if the corresponding enable bit is set in PMU_CNTENSET.

The PMU cycle counter PMU_CCNTR is an alias of the DWT_CYCCNT register. All derived functions of the counter are available whenever either the DWT or the PMU enables the cycle counter.

Generating interrupts

If a counter is configured to generate an interrupt when it overflows, a debug monitor exception becomes pending: MON_PEND bit is set to 1 in the Debug Exception and Monitor Control Register (DEMCR) of the Cortex-M55 core debug registers. At the same time, the PMU bit in the Cortex-M55 Debug Fault Status Register (DFSR) is set to 1. The associated overflow bit programmed by PMU_OVSSET and PMU_OVSCLR indicates which counter triggered the exception.

The interrupts are enabled if their corresponding bit programmed by PMU_INTENSET, and PMU_INTENCLR is set and DEMCR.MON_EN is 1.

Exporting trace

The PMU can export trace whenever the lower 8 bits of the counters overflow. The PMU issues an event counter packet with the appropriate counter flag set to 1. This occurs on counter increment only, not on software or debugger write. For each counter n, if the lower 8 bits of that counter overflows, the associated OVn bit of the event counter packet is set.

If multiple counters overflow during the same period, multiple bits may be set.

The PMU can serve as an event source for the CTI.

78.11.6 Cortex-M55 PMU registers

The register file base address for the PMU is defined in Table 873: Processor ROM table .

PMU event counter register x (PMU_EVCNTRx)

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

Reset value: 0x0000 XXXX

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

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

Bits 15:0 COUNTER[15:0] : Event counter

The counter increments whenever the selected event occurs.

PMU cycle counter register (PMU_CCNTR)

Address offset: 0x07C

Reset value: 0xXXXX XXXX

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

Bits 31:0 CCNT[31:0] : Cycle count

The counter increments every processor clock cycle.

PMU event type and filter register (PMU_EVTYPERx)

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

Reset value: 0x0000 XXXX

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

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

Bits 15:0 EVTCOUNT[15:0] : Event to count

The number of the event that is counted by event counter PMU_EVCNTRx.

PMU count enable set register (PMU_CNTENSET)

Address offset: 0xC00

Reset value: 0x0000 0000

31302928272625242322212019181716
CRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
rw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PN[7:0]
rwrwrwrwrwrwrwrw

Bit 31 C : Cycle-count enable
Condition: write operation
0: No effect
1: Enable cycle counter.
Condition: read operation
0: Cycle counter disabled
1: Cycle counter enabled

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

Bits 7:0 PN[7:0] : Event counter enable
Condition: write operation
Writing a 1 to bit n enables event counter PMU_EVCNTRn. Writing a 0 has no effect.
Condition: read operation
When bit n is 0, event counter PMU_EVCNTRn is disabled.
When bit n is 1, event counter PMU_EVCNTRn is enabled.

PMU count enable clear register (PMU_CNTENCLR)

Address offset: 0xC20

Reset value: 0x0000 0000

31302928272625242322212019181716
CRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
rw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PN[7:0]
rwrwrwrwrwrwrwrw

Bit 31 C : Cycle-count disable

Condition: write operation

0: No effect

1: Disable cycle counter.

Condition: read operation

0: Cycle counter disabled

1: Cycle counter enabled

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

Bits 7:0 PN[7:0] : Event counter disable

Condition: write operation

Writing a 1 to bit n disables event counter PMU_EVCNTRn. Writing a 0 has no effect.

Condition: read operation

When bit n is 0, event counter PMU_EVCNTRn is disabled.

When bit n is 1, event counter PMU_EVCNTRn is enabled.

PMU count interrupt set register (PMU_INTENSET)

Address offset: 0xC40

Reset value: 0x0000 0000

31302928272625242322212019181716
CRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
rw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PN[7:0]
rwrwrwrwrwrwrwrw

Bit 31 C : Cycle-counter-overflow interrupt request enable

Condition: write operation

0: No effect

1: Enable cycle-counter-overflow interrupt request.

Condition: read operation

0: Cycle-counter-overflow interrupt request disabled

1: Cycle-counter-overflow interrupt request enabled

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

Bits 7:0 PN[7:0] : Event-counter interrupt request enable

Condition: write operation

Writing a one to bit n enables the interrupt request for event counter PMU_EVCNTRn.

Writing a 0 has no effect.

Condition: read operation

When bit n is 0, the event-counter interrupt request for PMU_EVCNTRn is disabled.

When bit n is 1, the event-counter interrupt request for PMU_EVCNTRn is enabled.

PMU count interrupt clear register (PMU_INTENCLR)

Address offset: 0xC60

Reset value: 0x0000 0000

31302928272625242322212019181716
CRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
rw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PN[7:0]
rwrwrwrwrwrwrwrw

Bit 31 C : Cycle-counter-overflow interrupt request disable

Condition: write operation

0: No effect

1: Disable cycle-counter-overflow interrupt request.

Condition: read operation

0: Cycle-counter-overflow interrupt request disabled

1: Cycle-counter-overflow interrupt request enabled

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

Bits 7:0 PN[7:0] : Event-counter interrupt request disable

Condition: write operation

Writing a one to bit n disables the interrupt request for event counter PMU_EVCNTRn.

Writing a 0 has no effect.

Condition: read operation

When bit n is 0, the event-counter interrupt request for PMU_EVCNTRn is disabled.

When bit n is 1, the event-counter interrupt request for PMU_EVCNTRn is enabled.

PMU overflow flag status clear register (PMU_OVSCLR)

Address offset: 0xC80

Reset value: 0x0000 0000

31302928272625242322212019181716
CRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
rw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PN[7:0]
rwrwrwrwrwrwrwrw

Bit 31 C : Cycle-counter-overflow flag clear

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

Bits 7:0 PN[7:0] : Even- counter-overflow flag clear

PMU software increment register (PMU_SWINC)

Address offset: 0xCA0

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.PN[7:0]
wwwwwwww

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

Bits 7:0 PN[7:0] : Event counter software increment

Writing a one to bit n increments event counter PMU_EVCNTRn, if it is configured for software increments. Writing a 0 has no effect.

PMU overflow flag status set register (PMU_OVSSET)

Address offset: 0xCC0

Reset value: 0x0000 0000

31302928272625242322212019181716
CRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
rw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.PN[7:0]
rwrwrwrwrwrwrwrw

Bit 31 C : Cycle-counter-overflow flag set

Condition: write operation

0: No effect

1: Set cycle-counter-overflow flag.

Condition: read operation

0: Cycle counter has not overflowed.

1: Cycle counter has overflowed.

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

Bits 7:0 PN[7:0] : Event-counter-overflow flag set

Condition: write operation

Writing a one to bit n sets the overflow flag for event counter PMU_EVCNTRn. Writing a 0 has no effect

Condition: read operation

When bit n is 0, the event counter for PMU_EVCNTRn has not overflowed.

When bit n is 1, the event counter for PMU_EVCNTRn has overflowed.

PMU type register (PMU_TYPE)

Address offset: 0xE00

Reset value: 0x00A0 5F08

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.TRORes.FZORes.Res.Res.Res.Res.
rr
1514131211109876543210
Res.CCSIZE[5:0]N[7:0]
rrrrrrrrrrrrrrr

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

Bit 23 TRO : Trace on overflow support

1: Trace on overflow supported

Bit 22 Reserved, must be kept at reset value.

Bit 21 FZO : Freeze on overflow support

1: Freeze on overflow mechanism supported

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

Bit 14 CC : Cycle counter present

1: Dedicated cycle counter is present.

Bits 13:8 SIZE[5:0] : Counter size

This field indicates the spacing of counters in the memory-map.

0x1F: 32 bits

Bits 7:0 N[7:0] : Number of event counters

0x8

PMU type register (PMU_CTRL)

Address offset: 0xE04

Reset value: 0x0000 XXXX

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.TRORes.FZORes.Res.Res.DPRes.Res.CPE
rwrwrwwwrw

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

Bit 11 TRO : Trace on overflow enable

0: Trace on overflow disabled

1: Trace when any of the event counters overflows an 8-bit value

Bit 10 Reserved, must be kept at reset value.

Bit 9 FZO : Freeze on overflow enable

0: Event counters continue counting while the overflow flag is set.

1: Event counters stop while the overflow flag is set.

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

Bit 5 DP : Controls whether the cycle counter is disabled in secure state

. This bit is an alias of CYCDISS in DWT_CTRL.

0: No effect

1: Cycle counter is not incremented when the processor is in secure state.

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

Bit 2 C : Cycle counter reset

0: No effect

1: Reset PMU_CCNTR to 0.

Bit 1 P : Event counter reset

0: No effect

1: Reset all event counters, not including PMU_CCNTR, to 0.

Bit 0 E : Event counter enable

0: All counters, including PMU_CCNTR, are disabled.

1: All counters are enabled by PMU_CNTENSET.

PMU overflow flag status set register (PMU_AUTHSTAT)

Address offset: 0xFB8

Reset value: 0x0000 00XX

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.

PMU device type architecture register (PMU_DEVARCH)

Address offset: 0xFBC

Reset value: 0x4770 0A06

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

PMU device type register (PMU_DEVTYPE)

Address offset: 0xFCC

Reset value: 0x0000 0016

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] : Component subtype

0x1

Bits 3:0 MAJOR[3:0] : Component major type

0x6

PMU CoreSight peripheral identity register 4 (PMU_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: Register file occupies a single 4-Kbyte region.

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

0x4: Arm JEDEC code

PMU CoreSight peripheral identity register 0 (PMU_PIDR0)

Address offset: 0xFE0

Reset value: 0x0000 0023

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 field, bits [7:0]

0x23: PMU part number

PMU CoreSight peripheral identity register 1 (PMU_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 field, bits [3:0]

0xB: Arm JEDEC code

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

0xD: PMU part number

PMU CoreSight peripheral identity register 2 (PMU_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 field, bits [6:4]

0x3: Arm JEDEC code

PMU CoreSight peripheral identity register 3 (PMU_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

PMU CoreSight component identity register 0 (PMU_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 field, bits [7:0]

0x0D: Common ID value

PMU CoreSight component identity register 1 (PMU_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 field, bits [15:12] - component class

0x9: PMU

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

0x0: Common ID value

PMU CoreSight component identity register 2 (PMU_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 field, bits [23:16]

0x05: Common ID value

PMU CoreSight component identity register 3 (PMU_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.
rrrrrrrr

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

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

0xB1: Common ID value

PMU register map

Table 876. PMU register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
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.Res.Res.
0x000 + 0x4 * x
(x=0 to 7)
Last address: 0x01C
PMU_EVCNTRxCOUNTER[15:0]
Reset value000000000000000
0x020-0x078ReservedReserved
0x07CPMU_CCNTRCCNT[31:0]
Reset valueXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0x080-0x3FCReservedReserved

Table 876. PMU register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x400 + 0x4 * x
(x=0 to 7)
Last address:
0x41C
PMU_EVTYPExResResResResResResResResResResResResResResResResEVT CNT[15:0]
Reset valueXXXXXXXXXXXXXXX
0x420-0xBFCReservedReserved
0xC00PMU_CNTENSETCResResResResResResResResResResResResResResResResResResResResResResResPN[7:0]
Reset value00000000
0xC04-0xC1CReservedReserved
0xC20PMU_CNTENCLRCResResResResResResResResResResResResResResResResResResResResResResResPN[7:0]
Reset value00000000
0xC24-0xC3CReservedReserved
0xC40PMU_INTENSETCResResResResResResResResResResResResResResResResResResResResResResResPN[7:0]
Reset value00000000
0xC44-0xC5CReservedReserved
0xC60PMU_INTENCLRCResResResResResResResResResResResResResResResResResResResResResResResPN[7:0]
Reset value00000000
0xC64-0xC7CReservedReserved
0xC80PMU_OVSCLRCResResResResResResResResResResResResResResResResResResResResResResResPN[7:0]
Reset value00000000
0xC84-0xC9CReservedReserved
0xCA0PMU_SWINCCResResResResResResResResResResResResResResResResResResResResResResResPN[7:0]
Reset value00000000
0xCA4-0xCBCReservedReserved
0xCC0PMU_OVSSETCResResResResResResResResResResResResResResResResResResResResResResResPN[7:0]
Reset value00000000
0xCC4-0xDFCReservedReserved
0xE00PMU_TYPEResResResResResResResTR0ResFZ0ResResResResResResResResResResResResResCCSIZE[5:0]N[7:0]
Reset value11101111100
0xE04PMU_CTRLResResResResResResResResResResResResResResResResResResResResTR0ResFZ0ResResResDPResResCP
Reset valueXXXXX
0xE04-0xFB4ReservedReserved
0xFB8PMU_AUTHSTATResResResResResResResResResResResResResResResResResResResResResResResResSNID [1:0]ResResSID [1:0]ResResNSNID [1:0]NSID [1:0]
Reset valueXXXXXXXX

Table 876. PMU register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFBCPMU_DEVARCHARCHITECT[10:0]PRESENTREVISION [3:0]ARCHVER [3:0]ARCHPART[11:0]
Reset value010001110111000000001010000000110
0xFC0-0xFC8ReservedReserved
0xFCCPMU_DEVTYPERes.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:0]
Reset value00010110
0xFD0PMU_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
0xFE0PMU_PIDR0Res.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 value00100011
0xFE4PMU_PIDR1Res.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 value10111101
0xFE8PMU_PIDR2Res.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 value00001011
0xFECPMU_PIDR3Res.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 value00000000
0xFF0PMU_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
0xFF4PMU_CIDR1Res.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 value10010000
0xFF8PMU_CIDR2Res.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 value00000101
0xFFCPMU_CIDR3Res.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 value10110001

78.11.7 Instrumentation trace macrocell (ITM)

The ITM generates trace information as packets. There are four 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 four sources in decreasing order of priority are:

The 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 port identity, the write access size, and 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.

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.

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 every time a timestamp packet is generated. The timestamps thus indicate the time elapsed since the previous timestamp packet.

Timestamps can also be generated using the system-wide 64-bit count value coming from the timestamp generator component.

For more details on how to use the ITM, refer to the Arm Cortex-M55 Processor Technical Reference Manual [4].

78.11.8 Cortex-M55 ITM registers

The register file base address for the ITM is defined in Table 873: Processor ROM table .

ITM stimulus register x (ITM_STIMx)

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

Reset value: 0xXXXX XXXX

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

Bits 31:0 STIMULUS[31:0] : Software event packet/disabled/fifoready

Write data are output on the trace bus as a software event packet.

When reading, bit 0 is a fifoready indicator:

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

1: Stimulus port can accept new write data.

When reading, bit 1 is a disabled indicator:

0: Stimulus port and ITM are enabled.

1: Stimulus port or ITM are disabled.

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] : Stimulus port enable

Each bit n (31:0) enables the stimulus port associated with ITM_STIMn register.

0: Port disabled

1: Port enabled

ITM trace privilege registers (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]
rwrwrwrw

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

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

Each bit controls eight stimulus ports:

xxx0: Unprivileged access permitted on ports 0 to 7

xxx1: Only privileged access permitted on ports 0 to 7

xx0x: Unprivileged access permitted on ports 8 to 15

xx1x: Only privileged access permitted on ports 8 to 15

x0xx: Unprivileged access permitted on ports 16 to 23

x1xx: Only privileged access permitted on ports 16 to 23

0xxx: Unprivileged access permitted on ports 24 to 31

1xxx: Only privileged access permitted on ports 24 to 31

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]
rwrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.GTSFREQ[1:0]TSPRESCALE [1:0]Res.Res.STALL ENASWO ENATX ENASYNC ENATS ENAITM ENA
rwrwrwrwrwrrwrwrwrw

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

Bit 23 BUSY : ITM busy

Indicates whether the ITM is currently processing events (read-only):

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-0 value to this field.

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

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

Bits 11:10 GTSFREQ[1:0] : Global timestamp frequency

Defines how often the ITM generates a global timestamp, based on the global timestamp clock frequency, or disables generation of global timestamps.

0x0: Disable generation of global timestamps.

0x1: Generate timestamp request whenever the ITM detects a change in global timestamp counter bits [63:7]; this is approximately every 128 cycles.

0x2: Generate timestamp request whenever the ITM detects a change in global timestamp counter bits [63:13]; this is approximately every 8192 cycles.

0x3: Generate a timestamp after every packet, if the output FIFO is empty.

Bits 9:8 TSPRESCALE[1:0] : Local timestamp prescale

Prescaler used with the trace packet reference clock.

0x0: No prescaling

0x1: Divide by 4.

0x2: Divide by 16.

0x3: Divide by 64.

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

Bit 5 STALLena : Stall the processor to guarantee delivery of trace packets

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

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

Bit 4 SWOena : Asynchronous clocking enable for the timestamp counter (read-only)

0: Timestamp counter uses the processor clock.

Bit 3 TXena : Hardware event packet forwarding enable

This bit enables forwarding of hardware event packets from the DWT unit to the trace port.

0: Disabled

1: Enabled

Bit 2 SYNCena : Synchronization packet transmission enable

If a debugger sets this bit, it must also configure SYNCTAP in DWT_CTRL for the correct synchronization speed.

0: Disabled

1: Enabled

Bit 1 TXena : Local timestamp generation enable

0: Disabled

1: Enabled

Bit 0 ITMena : ITM enable

0: Disabled

1: Enabled

ITM device type architecture register (ITM_DEVARCH)

Address offset: 0xFBC

Reset value: 0x4770 1A01

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

Bits 31:21 ARCHITECT[10:0] : Architect JEDEC code
0x23B: Arm JEDEC code

Bit 20 PRESENT : DEVARCH register present
1: Present

Bits 19:16 REVISION[3:0] : Architecture revision
0x0: ITM architecture v2.0

Bits 15:12 ARCHVER[3:0] : Architecture version
0x1: ITM architecture v2

Bits 11:0 ARCHPART[11:0] : Architecture
0xA01: ITM architecture

ITM device type register (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
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] : Component subtype
0x4: Associated with a bus, stimulus derived from bus activity.

Bits 3:0 MAJOR[3:0] : Component major type
0x3: Trace source

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.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: Register file occupies a single 4-Kbyte region.

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

0x4: Arm JEDEC code

ITM CoreSight peripheral identity register 0 (ITM_PIDR0)

Address offset: 0xFE0

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.PARTNUM[7:0]
rrrrrrrr

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

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

0x01: ITM part number

ITM CoreSight peripheral identity register 1 (ITM_PIDR1)

Address offset: 0xFE4

Reset value: 0x0000 00B0

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 field, bits [3:0]

0xB: Arm JEDEC code

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

0x1: ITM part number

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

1: Designer ID specified by JEDEC

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

0x3: Arm JEDEC code

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

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 field, bits [7:0]

0x0D: Common ID value

ITM CoreSight component identity register 1 (ITM_CIDR1)

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 field, bits [15:12] - component class

0xE: Trace generator component

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

0x0: Common ID value

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 field, bits [23:16]

0x05: Common ID value

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 field, bits [31:24]

0xB1: Common ID value

ITM register map

Table 877. ITM register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x000 + 0x4 * x
(x=0 to 31)
Last address: 0x07C
ITM_STIMxSTIMULUS[31:0]
Reset valueXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0x080-0xDFCReservedReserved
0xE00ITM_TERSTIMENA[31:0]
Reset value00000000000000000000000000000000
0xE04-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.PRIVMASK [3:0]
Reset value0000
0xE44-0xE7CReservedReserved
0xE80ITM_TCRRes.Res.Res.Res.Res.Res.Res.Res.BUSYTRACEBUSID[6:0]Res.Res.Res.Res.GTSFREQ[1:0]TSPRESCALE [1:0]Res.Res.STALLENASWOENATXENASYNCENATSENAITMENA
Reset value000000000000000000
0xE84-0xFB8ReservedReserved
0xFBCITM_DEVARCHARCHITECT[10:0]PRESENTREVISION [3:0]ARCHVER [3:0]ARCHPART[11:0]
Reset value01000111011100000001101000000001
0xFC0-0xFC8ReservedReserved
0xFCCITM_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.Res.SUB[3:0]MAJOR[3:0]
Reset value01000011

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

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFD0ITM_PIDR4ResResResResResResResResResResResResResResResResResResResResResResResResSIZE[3:0]JEP106CON[3:0]
Reset value000001000
0xFD4-
0xFDC
ReservedReserved
0xFE0ITM_PIDR0ResResResResResResResResResResResResResResResResResResResResResResResResPARTNUM[7:0]
Reset value00000001
0xFE4ITM_PIDR1ResResResResResResResResResResResResResResResResResResResResResResResResJEP106ID[3:0]PARTNUM[11:8]
Reset value10110000
0xFE8ITM_PIDR2ResResResResResResResResResResResResResResResResResResResResResResResResREVISION[3:0]JEDID[1:0]JEP106ID[6:4]
Reset value00001011
0xFECITM_PIDR3ResResResResResResResResResResResResResResResResResResResResResResResResREVAND[3:0]CMOD[3:0]
Reset value00000000
0xFF0ITM_CIDR0ResResResResResResResResResResResResResResResResResResResResResResResResPREAMBLE[7:0]
Reset value00001101
0xFF4ITM_CIDR1ResResResResResResResResResResResResResResResResResResResResResResResResCLASS[3:0]PREAMBLE[11:8]
Reset value11100000
0xFF8ITM_CIDR2ResResResResResResResResResResResResResResResResResResResResResResResResPREAMBLE[19:12]
Reset value00000101
0xFFCITM_CIDR3ResResResResResResResResResResResResResResResResResResResResResResResResPREAMBLE[27:20]
Reset value10110001

78.11.9 Breakpoint Unit (BPU)

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

78.11.10 Cortex-M55 BPU registers

The register file base address for the BPU is defined in Table 873: Processor ROM table .

BPU control register (BPU_CTRL)

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]NUM_LIT[3:0]NUM_CODE[3:0]Res.Res.KEYENABLE
rrrrrrrrrrrrwrw

Bits 31:28 REV[3:0] : BPU architecture revision

1: Revision 2

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

Bits 14:12 NUM_CODE[6:4] : Instruction address comparator number (three MSBs)

This read-only field holds the three MSBs of the number of instruction address comparators supported.

0x0: the MSBs of the number are all 0.

Bits 11:8 NUM_LIT[3:0] : Number of literal address comparators supported (read-only)

0x0: No literal comparators supported

Bits 7:4 NUM_CODE[3:0] : Instruction address comparator number (four LSBs)

This read-only field holds the four LSBs of the number of instruction address comparators supported.

0x8: Eight instruction comparators supported

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

Bit 1 KEY : Write protect key

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

Bit 0 ENABLE : BPU enable

0: Disabled

1: Enabled

BPU remap register (BPU_REMAP)

Address offset: 0x004

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.RMPSPTREMAP[23:11]
rrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
REMAP[10:0]Res.Res.Res.Res.Res.
rwrwrwrwrwrwrwrwrwrwrw

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

Bit 29 RMPSPT : Flash patch remap support (read-only)

0: Remapping not supported

Bits 28:5 REMAP[23:0] : Not supported

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

BPU comparator registers (BPU_COMPx)

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

Reset value: 0x0000 0000

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

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

Specifies bits[31:1] of the breakpoint instruction address.

Bit 0 ENABLE : Comparator enable

The comparator is only enabled if both this bit and BPU ENABLE in BPU_CTRL are set.

0: Disabled

1: Enabled

BPU device type architecture register (BPU_DEVARCH)

Address offset: 0xFBC

Reset value: 0x4770 1A03

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

Bits 31:21 ARCHITECT[10:0] : Architect JEDEC code

0x23B: Arm JEDEC code

Bit 20 PRESENT : DEVARCH register present

1: Present

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

0x0: BPU architecture v2.0

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

0x1: BPU architecture v2

Bits 11:0 ARCHPART[11:0] : Architecture

0xA03: BPU architecture

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.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: Register file occupies a single 4-Kbyte region.

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

0x4: Arm JEDEC code

BPU CoreSight peripheral identity register 0 (BPU_PIDR0)

Address offset: 0xFE0

Reset value: 0x0000 0023

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 field, bits [7:0]

0x23: BPU part number

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 field, bits [3:0]

0xB: Arm JEDEC code

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

0xD: BPU part number

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 field, bits [6:4]

0x3: Arm JEDEC code

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

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.PREAMBLE[7:0]
rrrrrrrr

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

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

0x0D: Common ID value

BPU CoreSight component 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.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 field, bits [15:12] - component class

0x9: BPU

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

0x0: Common ID value

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.PREAMBLE[19:12]
rrrrrrrr

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

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

0x05: Common ID value

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 field, bits [31:24]

0xB1: Common ID value

BPU register map

Table 878. BPU register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x000BPU_CTRLREV[3:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.NUM_CODE [6:4]NUM_LIT [3:0]NUM_CODE [3:0]Res.Res.KEYENABLE
Reset value000100000000100000
0x004BPU_REMAPRes.Res.RMPSPREMAP[23:0]Res.Res.Res.Res.Res.
Reset value00000000000000000000000000000000
0x008 +
0x4 * x
(x=0 to 7)
Last
address:
0x020
BPU_COMPxBPADDR[31:1]Res.ENABLE
Reset value000000000000000000000000000000000
0x024-
0xFB8
ReservedReserved
0xFBCBPU_DEVARCHARCHITECT[10:0]PRESENTREVISION [3:0]ARCHVER [3:0]ARCHPART[11:0]
Reset value010001110111000000001101000000011
0xFC0-
0xFC8
ReservedReserved
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.SIZE[3:0]JEP106CON [3:0]
Reset value00000100
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.PARTNUM[7:0]
Reset value00100011

Table 878. BPU register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
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 value101111011
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]JEDEC [6:4]JEP106ID [6:4]
Reset value000010111
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 value000000000
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.PREAMBLE[7:0]
Reset value000011011
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.CLASS[3:0]PREAMBLE [11:8]
Reset value100100000
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.PREAMBLE[19:12]
Reset value000001011
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.PREAMBLE[27:20]
Reset value101100001

78.11.11 Embedded Trace Macrocell (ETM)

The Cortex-M55 ETM is a CoreSight component closely coupled to the CPU. The ETM generates trace packets that allow the execution of the Cortex-M55 core to be traced.

Note: 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-M55 Technical Reference Manual [5].

78.11.12 Cortex-M55 ETM registers

The register file base address for the ETM is defined in Table 873: Processor ROM table .

ETM programming control register (ETM_PRGCTL)

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
rw

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

Bit 0 EN : Trace program enable

0: Trace unit disabled

1: Trace unit enabled

ETM status register (ETM_STAT)

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.Res.Res.Res.Res.PMSTABLEIDLE
rr

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

Bit 1 PMSTABLE : Programmers model stable

This bit indicates whether ETM registers are stable and can be read.

0: Registers not stable

1: Registers stable

Bit 0 IDLE : Trace unit inactive

0: ETM not idle

1: ETM idle

ETM trace configuration register (ETM_CONFIG)

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.RSTSCOND[2:0]Res.Res.Res.CCIBBINSTP0[1:0]Res.
rwrwrwrwrwrwrwrr

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

ETM event control 0 register (ETM_EVENTCTL0)

Address offset: 0x020

Reset value: 0x0000 0000

Writes to this register are accepted on when the trace unit is disabled.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
EVENT1[7:0]EVENT0[7:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

ETM event control 1 register (ETM_EVENTCTL1)

Address offset: 0x024

Reset value: 0x0000 0000

Writes to this register are accepted on when the trace unit is disabled.

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: Low-power state normal behavior

1: Entry to low-power state does not affect resources and event trace generation.

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 trace event element enable

Each bit corresponds to an event:

x0: Event 0 does not cause an event element.

x1: Event 0 causes an event element.

0x: Event 1 does not cause an event element.

1x: Event 1 causes an event element.

ETM stall control register (ETM_STALLCTL)

Address offset: 0x02C

Reset value: 0x0000 0000

Writes to this register are accepted on when the trace unit is disabled.

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.ISTALLRes.Res.Res.Res.LEVEL[1:0]Res.Res.
rwrwrw

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

Bit 8 ISTALL : Stall processor based on instruction trace buffer space

0: Do not stall processor.

1: Stall processor.

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

Bits 3:2 LEVEL[1:0] : Stalling threshold level

A low level minimizes the amount of processor stalling, with a higher risk of FIFO overflow.

A high level minimizes the risk of FIFO overflow but increases the amount of processor stalling.

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

ETM global timestamp control register (ETM_TSCTL)

Address offset: 0x030

Reset value: 0x0000 0000

Writes to this register are accepted on when the trace unit is disabled.

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.
rwrwrwrwrwrwrwrw
EVENT[7:0]

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

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

When the selected event is triggered, the ETM inserts a global timestamp into the trace streams.

ETM synchronization period register (ETM_SYNCP)

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.
rrrrr
PERIOD[4:0]

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

Bits 4:0 PERIOD[4:0] : Trace bytes between synchronization requests

This bitfield defines the number of bytes of trace information between trace synchronization requests.

0xA: 1024 bytes

ETM cycle count control register (ETM_CCCTL)

Address offset: 0x038

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.THRESHOLD[11:0]
rwrwrwrwrwrwrwrwrwrwrwrw

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

Bits 11:0 THRESHOLD[11:0] : Threshold value for instruction trace cycle counting

The threshold represents the minimum interval between cycle count trace packets.

0x0 - 0x03: Reserved

Other: Threshold

ETM trace ID register (ETM_TRACEID)

Address offset: 0x040

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.TRACEID[6:0]
rwrwrwrwrwrwrw

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

Bits 6:0 TRACEID[6:0] : Trace ID

0x01 to 0x6F: Valid ID

Others: Reserved

ETM ViewInst main control register (ETM_VICTL)

Address offset: 0x080

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.EXLEV
EL_S3
Res.Res.EXLEV
EL_S0
rwrw
1514131211109876543210
Res.Res.Res.Res.TRCER
R
TRCRE
SET
SSSTA
TUS
Res.EVENT[7:0]
rwrwrwrwrwrwrwrwrwrwrw

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

Bit 19 EXLEVEL_S3 : Trace disable, exception level 3 (handler mode)

This bit disables tracing in the specified exception level in secure state for exception level 3.

0: Enable ViewInst in this exception level.

1: Disable ViewInst in this exception level.

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

Bit 16 EXLEVEL_S0 : Trace disable, exception level 0 (thread mode)

This bit disables tracing in the specified exception level in secure state for exception level 0.

0: Enable ViewInst in this exception level.

1: Disable ViewInst in this exception level.

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

Bit 11 TRCERR : Tracing of system error exception

This bit selects whether a system error exception must always be traced.

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

1: System error exception is always traced regardless of the value of ViewInst.

Bit 10 TRCRESET : Tracing of reset exception

This bit selects whether a reset exception must always be traced.

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

1: Reset exception is always traced regardless of the value of ViewInst.

Bit 9 SSSTATUS : Current status of the start/stop logic

0: Stop state

1: Started state

Bit 8 Reserved, must be kept at reset value.

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

Whenever the resource selected by this bitfield becomes active, the ViewInst function becomes active.

ETM ViewInst start/stop processor comparator control register (ETM_VIPCSSCTL)

Address offset: 0x08C

Reset value: 0x0000 0000

31302928272625242322212019181716
ResResResResResResResResSTOP[7:0]
rwrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.START[7:0]
rwrwrwrwrwrwrwrw

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

Bits 23:16 STOP[7:0] : Processor comparator input selector to stop trace

This bitfield selects which processor comparator inputs are in use with ViewInst start-stop control, to stop the trace. One bit is provided for each processor comparator input.

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

Bits 7:0 START[7:0] : Processor comparator input selector to start trace

This bitfield selects which processor comparator inputs are in use with ViewInst start-stop control, to start the trace. One bit is provided for each processor comparator input.

ETM external input selection register (ETM_EXTINSEL)

Address offset: 0x120

Reset value: 0x0000 0000

31302928272625242322212019181716
SEL3[7:0]SEL2[7:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
SEL1[7:0]SEL0[7:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:24 SEL3[7:0] : This bitfield selects an external input to use as a resource.

Bits 23:16 SEL2[7:0] : This bitfield selects an external input to use as a resource.

Bits 15:8 SEL1[7:0] : This bitfield selects an external input to use as a resource.

Bits 7:0 SEL0[7:0] : This bitfield selects an external input to use as a resource.

ETM counter reload value register (ETM_CNTRLDV)

Address offset: 0x140

Reset value: 0x0000 0000

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

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

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

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

ETM ID 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

This bitfield 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: Maximum trace speculation depth is 0.

ETM ID 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 keys used in instruction trace only configuration

ETM ID 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] : Total number of P1 right-hand keys

This bitfield indicates the total number of P1 right-hand keys, including normal and special keys.

0x0: No P1 keys used in instruction trace only configuration

ETM ID 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] : Total number of special P1 right-hand keys used
0x0: No special P1 keys used

ETM ID 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] :
This bitfield indicates the total number of conditional instruction right-hand keys, including normal and special keys.
0x1: One conditional instruction right hand-key implemented

ETM ID 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
0x0: No special conditional instruction right hand-keys implemented

ETM ID register 0 (ETM_IDR0)

Address offset: 0x1E0

Reset value: 0x2800 06E1

31302928272625242322212019181716
Res.Res.COMM
OPT
TSSIZE[4:0]Res.Res.Res.Res.BF[1:0]TRCEX
DATA
QSUPP
[1]
rrrrrrrrrr

1514131211109876543210
QSUPP
[0]
Res.CONDTYPE[1:0]NUMEVENT[1:0]RETST
ACK
Res.TRCCC
I
TRCC
OND
TRCBBTRCDATA[1:0]INSTP0[1:0]Res.
rrrrrrrrrrrrr

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

Bit 29 COMMOPT : Meaning of the commit field in some packets

1: Commit mode 1

Bits 28:24 TSSIZE[4:0] : Global timestamp size

0x08: Maximum of 64-bit global timestamp implemented

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

Bits 19:18 BF[1:0] : Branch future support

0x0: Not supported

Bit 17 TRCEXDATA :

This bit indicates support for tracing of data transfers for exceptions and exception returns.

0: Not supported

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

0x0: Not supported

Bit 14 Reserved, must be kept at reset value.

Bits 13:12 CONDTYPE[1:0] : Conditional result tracing type

0x0: ETM indicates only if a conditional instruction passes or fails its condition code check.

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

0x1: Two events supported

Bit 9 RETSTACK : Return stack support

1: Two entry return stack supported

Bit 8 Reserved, must be kept at reset value.

Bit 7 TRCCCI : Support for cycle counting in the instruction trace

1: Cycle counting in the instruction trace is implemented.

Bit 6 TRCCOND : Support for conditional instruction tracing

1: Conditional instruction trace is implemented.

Bit 5 TRCBB : Support for branch broadcast tracing

1: Branch broadcast trace is implemented.

Bits 4:3 TRCDATA[1:0] : Support for data tracing

0x0: 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 ID register 1 (ETM_IDR1)

Address offset: 0x1E4

Reset value: 0x4100 F450

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 entity

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: ETM v4

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

0x5: Minor version 5

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

0x0: Rev 0

ETM ID 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

This bitfield indicates the size of the cycle counter in bits minus 12.

0x0: Cycle counter is 12 bits

Bits 24:20 DVSIZE[4:0] : Data value size in bytes

0x0: Data value size is not supported in instruction only configuration.

Bits 19:15 DASIZE[4:0] : Data address size in bytes

0x0: Data address size is not supported in instruction only configuration.

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: 32-bit maximum address size

ETM ID register 3 (ETM_IDR3)

Address offset: 0x1EC

Reset value: 0x0509 0004

31302928272625242322212019181716
NOOVERFLOWNUMPROC[2:0]SYSTALLSTALLCTLSYNCPTRCERRRes.Res.Res.Res.EXLEVEL_S[3:0]
rrrrrrrrrrrr
1514131211109876543210
Res.Res.Res.Res.CCITMIN[11:0]
rrrrrrrrrrrr

Bit 31 NOOVERFLOW : Support of NOOVERFLOW

This bitfield indicates whether the NOOVERFLOW of trace stall control is implemented.

0: Not implemented

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

0x00: Only one processor can be traced.

Bit 27 SYSTALL : System support for stall control of the processor

0: Stall control of the processor is supported.

Bit 26 STALLCTL : Stall control support

1: Trace stall control (STALLCTL register) is implemented.

Bit 25 SYNCP : Trace synchronization period support

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

Bit 24 TRCERR : Support of ETM_VICTL.TRCERR

Indicates whether ETM_VICTL.TRCERR is implemented.

1: TRCERR is implemented.

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

Bits 19:16 EXLEVEL_S[3:0] : Support of privilege levels

Privilege levels are implemented; one bit for each level.

0x9: Privilege levels thread and handler are implemented.

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

Bits 11:0 CCITMIN[11:0] : Instruction trace cycle counting minimum threshold

Minimum value that can be programmed in ETM_CCCTL.THRESHOLD

0x4: Minimum threshold is 4 instruction trace cycle

ETM ID register 4 (ETM_IDR4)

Address offset: 0x1F0

Reset value: 0x0011 8000

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

Bits 31:28 NUMVMIDC[3:0] : Number of virtual machine ID comparators implemented

0x0: None

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

0x0: None

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

0x1: One

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

0x1: Two

Bits 15:12 NUMPC[3:0] : Number of processor comparator inputs implemented in DWT

0x8: Eight

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

Bit 8 SUPPADDC : Support of data address comparisons

0: Not implemented

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

0x0: None

Bits 3:0 NUMACPAIRS[3:0] : Number of address comparator pairs implemented.

0x0: None

ETM ID register 5 (ETM_IDR5)

Address offset: 0x1F4

Reset value: 0x90C7 0084

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 : Support of reduced function counter

1: Implemented

Bits 30:28 NUMCNTR[2:0] : Number of counters implemented

0x1: One counter implemented

ETM resource selection register 2 (ETM_RSCTL2)

Address offset: 0x208

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PAIRINVINVRes.Res.GROUP[1:0]
rwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.SELECT[7:0]
rwrwrwrwrwrwrwrw

Bits 7:0 SELECT[7:0] : Resource selector from group

This bitfield selects one or more resources from the group selected in GROUP. One bit is provided per resource from the group.
If GROUP = 0x0, SELECT[3:0] select from external input 3 to 0. SELECT[7:4] are not used.
If GROUP = 0x1, SELECT[7:0] select from comparator input 7 to 0.
If GROUP = 0x2, SELECT[0] selects counter at 0. SELECT[7:1] are not used.
If GROUP = 0x3, SELECT[0] selects single-shot comparator 0. SELECT[7:1] are not used.

ETM resource selection register 3 (ETM_RSCTL3)

Address offset: 0x20C

Reset value: 0x0000 0000

3130292827262524232221201918      17      16
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.INVRes.GROUP[2:0]
rwrwrwrw

151413121110987    6    5    4    3    2    1    0
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 : Inversion of the selected resources

Bit 19 Reserved, must be kept at reset value.

Bits 18:16 GROUP[2:0] : Selects a group of resources for SELECT

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

Bits 7:0 SELECT[7:0] : Resource selector from group

Selects one or more resources from the group selected in GROUP. One bit is provided per resource from the group.
If GROUP = 0x0, SELECT[3:0] select from external input 3 to 0. SELECT[7:4] are not used.
If GROUP = 0x1, SELECT[7:0] select from comparator input 7 to 0.
If GROUP = 0x2, SELECT[0] selects counter at 0. SELECT[7:1] are not used.
If GROUP = 0x3, SELECT[0] selects single-shot comparator 0. SELECT[7:1] are not used.

ETM single-shot comparator control register 0 (ETM_SSCC0)

Address offset: 0x280

Reset value: 0x0000 0000

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

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

Bit 24 RST : Single-shot comparator resource reset enable

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

0: Disabled

1: Reset enabled; multiple matches can occur

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

ETM single-shot comparator status register 0 (ETM_SSCS0)

Address offset: 0x2A0

Reset value: 0x0000 0008

31302928272625242322212019181716
STATUSRes.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.PCDVDAINST
rrrr

Bit 31 STATUS : Single-shot status

This bit indicates whether any of the selected comparators have matched. If RST = 0 in ETM_SSCC0, this bit must be written with 0 to enable single-shot comparator control.

0: No match occurred

1: Match occurred at least once.

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

Bit 3 PC : Processor comparator

Indicates that the single-shot comparator is sensitive to processor comparator inputs.

1: Single-shot comparator is 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 (ETM_SSPIC0)

Address offset: 0x2C0

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.PC[7:0]
rwrwrwrwrwrwrwrw

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

Bits 7:0 PC[7:0] : Comparator input selector for single-shot control

This bitfield selects one or more processor comparator inputs for single-shot control. One bit is provided for each processor comparator input.

ETM power-down control register (ETM_PDC)

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.PURes.Res.Res.
r

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

Bit 3 PU : Power-up request

This bitfield requests to maintain power to the ETM, and to access to the trace registers.

0: Power not requested

1: Power requested

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

ETM power-down status register (ETM_PDS)

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
POWE
R
rr

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

Bit 1 STICKYPD : Sticky power-down state

This bit is set to 1 when power to ETM registers is removed, to indicate that programming state has been lost. It is cleared after a read of this register.

0: Trace register power uninterrupted since the last read of this register

1: Trace register power interrupted since the last read of this register

Bit 0 POWER : ETM powered up

1: ETM is powered up. All registers are accessible.

ETM claim tag set register (ETM_CLAIMSET)

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] : Set claim tag bits

Write:

0000: No effect

xxx1: Set bit 0

xx1x: Set bit 1

x1xx: Set bit 2

1xxx: Set bit 3

Read:

0xF: Indicate 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]
rwrwrwrw

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

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

Write:

0000: No effect
xxx1: Clear bit 0
xx1x: Clear bit 1
x1xx: Clear bit 2
1xxx: Clear bit 3

Read: Returns current value of claim tag.

ETM authentication status register (ETM_AUTHSTAT)

Address offset: 0xFB8

Reset value: 0x0000 00XX

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
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: Disabled
0x3: 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: Disabled
0x3: Enabled

Bits 1:0 NSID[1:0] : Security level for nonsecure invasive debug
0x0: Not implemented

ETM CoreSight device architecture register (ETM_DEVARCH)

Address offset: 0xFBC

Reset value: 0x4775 4A13

31302928272625242322212019181716
ARCHITECT[10:0]PRESENTREVISION[3:0]
rrrrrrrrrrrrrrrr
1514131211109876543210
ARCHID[15:0]
rrrrrrrrrrrrrrrr

Bits 31:21 ARCHITECT[10:0] : Component architect
0x23B: Arm

Bit 20 PRESENT : Indicates the presence of this register

1: Present

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

0x5: Rev 4.5

Bits 15:0 ARCHID[15:0] : Architecture ID

0x4A13: ETMv4.5 component

ETM CoreSight device type identity 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 subtype 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: 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 0023

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 field, field, bits [7:0]

0x23: 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]
rrrrrrrr

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

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

0xB: Arm JEDEC code

Bits 3:0 PARTNUM[11:8] : Part number field, 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]
rrrrrrrr

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

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

0x1: rev 1

Bit 3 JEDEC : JEDEC assigned value

1: Designer ID specified by JEDEC

Bits 2:0 JEP106ID[6:4] : JEP106 identity code field, 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 ID field, bits [7:0]

0x0D: Common ID value

ETM CoreSight component 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 ID field, bits [15:12] - component class

0x9: Debug component with CoreSight-compatible registers

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

0x0: Common ID 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 ID field, bits [23:16]

0x05: Common ID 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 ID field, bits [31:24]

0xB1: Common ID value

ETM register map

Table 879. ETM register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x004ETM_PRCCTLRes.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.Res.EN
Reset value0
0x008ReservedReserved
0x00CETM_STATRes.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.PMSTABLE
IDLE
Reset value0
0x010ETM_CONFIGRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.RS
TS
COND
[2:0]
Res.Res.Res.Res.CCIBBINSTP0
[1:0]
Res.
Reset value0000000000
0x014-
0x01C
ReservedReserved
0x020ETM_EVENTCTL0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.EVENT1[7:0]
Reset value000000000000000
0x024ETM_EVENTCTL1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.LP
POVERRIDE
ATB
Res.Res.Res.Res.Res.Res.Res.Res.Res.INSTEN[3:0]Res.
Reset value00000
0x02CETM_STALLCTLRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.STALLRes.Res.Res.Res.LEVEL
[1:0]
Res.Res.
Reset value000
0x030ETM_TSCTLRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.EVENT[7:0]
Reset value00000000
0x034ETM_SYNCPRes.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.PERIOD[4:0]
Reset value01010
0x038ETM_CCCTLRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.THRESHOLD[11:0]
Reset value000000000000
0x03CReservedReserved
0x040ETM_TRACEIDRes.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.TRACEID[6:0]
Reset value00000
0x044 -
0x07C
ReservedReserved
0x080ETM_VICTLRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.EXLEVEL_S3Res.EXLEVEL_S0Res.Res.Res.Res.TRCERRTRCRESETSSSTATUSRes.EVENT[7:0]
Reset value0000000000000
0x084-
0x088
ReservedReserved
0x08CETM_VIPCSSCTLRes.Res.Res.Res.Res.Res.Res.Res.STOP[3:0]Res.Res.Res.Res.Res.Res.Res.Res.START[3:0]
Reset value000000000000000

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

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x090-0x12CReservedReserved
0x120ETM_EXTINSELSEL3[7:0]SEL2[7:0]SEL1[7:0]SEL0[7:0]
Reset value00000000000000000000000000000000
0x124-0x13CReservedReserved
0x140ETM_CNTRLDVRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.VALUE[15:0]
Reset value0000000000000000
0x144-0x17CReservedReserved
0x180ETM_IDR8MAXSPEC[31:0]
Reset value00000000000000000000000000000010
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-0x1DCReservedReserved
0x1E0ETM_IDR0Res.Res.COMMOPTTSSIZE[4:0]Res.Res.Res.Res.BF[1:0]TRCEXDATAQSUPP[1:0]Res.CONDTYPE [1:0]NUMEVENT [1:0]RETSTACKRes.TRCCCITRCCONDTRCBBTRCDATA[1:0]INSTP[1:0]Res.
Reset value10100000000000111110000
0x1E4ETM_IDR1DESIGNER[7:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.TRCARCHMAJ [3:0]TRCARCHMIN [3:0]Res.Res.Res.REVISION [3:0]
Reset value01000001010001010000
0x1E8ETM_IDR2Res.Res.Res.CCSIZE[3:0]DVSIZE[4:0]DASIZE[4:0]VMIDSIZE[4:0]CIDSIZE[4:0]IASIZE[4:0]
Reset value00000000000000000000000000100
0x1ECETM_IDR3NOOVERFLOWNUMPROC[2:0]SYSSTALLSTALLCTLSYNCPRTRCERRRes.Res.Res.Res.EXLEVEL_S [3:0]Res.Res.NUMPROC [4:3]CCITMIN[11:0]
Reset value00000101100100000000000010
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 value00000000000100011000000000000

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

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x1F4ETM_IDR5REDFUNCNTRNUMCNTR[2:0]NUMSEQSTATE [2:0]Res.LPOVERRIDEATBTRIGTRACEIDSIZE[5:0]Res.Res.Res.Res.NUMEXTINSEL [2:0]NUMEXTIN[8:0]
Reset value1001000110001111000000000100
0x1F8-0x204ReservedReserved
0x208ETM_RSCTL2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PAIRINVINVRes.GROUP [2:0]Res.Res.Res.Res.Res.Res.Res.SELECT[7:0]
Reset value0000000000000
0x20CETM_RSCTL3Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.INVRes.Res.GROUP [2:0]Res.Res.Res.Res.Res.Res.Res.SELECT[7:0]
Reset value000000000000
0x210-0x27CReservedReserved
0x280ETM_SSCC0Res.Res.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.
Reset value0
0x284-0x29CReservedReserved
0x2A0ETM_SSCS0STATUSRes.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.PCDVDAINST
Reset value01000
0x2A4-0x2BCReservedReserved
0x2C0ETM_SSPIC0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PC[7:0]
Reset value00000000
0x2C4-0x30CReservedReserved
0x310ETM_PDCRes.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.PURes.Res.Res.
Reset value0
0x314ETM_PDSRes.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.STICKYPDPOWER
Reset value11
0x318-0xF9CReservedReserved
0xFA0ETM_CLAIMSETRes.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
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.Res.CLAIMCLR [3:0]
Reset value0000
0xFA8-0xFB4ReservedReserved
0xFB8ETM_AUTHSTATRes.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

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

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFBCETM_DEVARCHARCHITECT[10:0]PRESENTREVISION [3:0]ARCHID[15:0]
Reset value01000111011101010010101000010011
0xFC0-
0xFC8
ReservedReserved
0xFCCETM_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 value0000000000000000000000000010011
0xFD0ETM_PIDR4Res.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 -
0xFDC
ReservedReserved
0xFE0ETM_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 value00100011
0xFE4ETM_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
0xFE8ETM_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
0xFECETM_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
0xFF0ETM_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
0xFF4ETM_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
0xFF8ETM_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
0xFFCETM_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

78.11.13 Cross trigger interface (CTI)

See Section 78.12.4 .

78.12 Trace and debug subsystem

The trace and debug subsystem includes the following CoreSight components:

The MCU ROM table in the Cortex-M55 subsystem pointed to by the BASE register in the Cortex-M55 AHB-AP links to the trace subsystem ROM table. This secondary ROM table contains the base address pointer for the CoreSight trace components.

These components are accessible by the debugger and the Cortex-M55 processor via the system AHB-AP and its associated EPPB debug bus.

Table 880. Trace subsystem ROM table

Address in ROM tableComponent nameComponent base addressComponent address offsetSize (Kbytes)Entry
0xE008 0000Funnel0xE008 10000x0000 100040x0000 1003
0xE008 0004ETF0xE008 20000x0000 200040x0000 2003
0xE008 0008ETR0xE008 30000x0000 300040x0000 3003
0xE008 000CTPIU0xE008 40000x0000 400040x0000 4003
0xE008 0010Replicator0xE008 50000x0000 500040x0000 5003
0xE008 0014Timestamp generator0xE008 60000x0000 600040x0000 6003
0xE008 0018STM0xE008 70000x0000 700040x0000 7003
0xE008 001CCTI00xE008 80000x0000 800040x0000 8003
0xE008 0020CTI10xE008 90000x0000 900040x0000 9003
0xE008 0024SWO0xE008 A0000x0000 A00040x0000 A003
0xE008 0028Top of table---0x0000 0000
0xE008 002C to 0xE008 00C8Reserved---0x0000 0000
0xE008 0FCC to 0xE008 0FFCROM table registers----

The topology for the CoreSight components in the trace an/d debug subsystem is shown in Figure 1081 .

Figure 1081. Trace subsystem CoreSight topology

Diagram of Trace subsystem CoreSight topology showing connections between various components like BASE register, MCU ROM table, Trace subsystem ROM table, Trace FIFO (ETF), Trace funnel (CSTF), Trace router (ETR), Trace port interface (TPIU), System CTL_0, System CTL_1, Serial-wire output (SWO), Replicator, Timestamp generator, and System trace macrocell (STM).

The diagram illustrates the CoreSight trace subsystem topology. It shows the following components and their connections:

Diagram of Trace subsystem CoreSight topology showing connections between various components like BASE register, MCU ROM table, Trace subsystem ROM table, Trace FIFO (ETF), Trace funnel (CSTF), Trace router (ETR), Trace port interface (TPIU), System CTL_0, System CTL_1, Serial-wire output (SWO), Replicator, Timestamp generator, and System trace macrocell (STM).

MSv70437V1

78.12.1 Trace subsystem ROM table registers

Trace subsystem ROM memory type register (TSSROM_MEMTYPE)

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.SYSTEM
MEM
r

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

Bit 0 SYSTEM : System memory presence

1: System memory is present on this bus.

Trace subsystem ROM CoreSight peripheral identity register 4 (TSSROM_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.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: Register file occupies a single 4-Kbyte region.

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

0x0: Arm JEDEC continuation code

Trace subsystem ROM CoreSight peripheral identity register 0 (TSSROM_PIDR0)

Address offset: 0xFE0

Reset value: 0x0000 0086

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 field, bits [7:0]

0x86: STM32N6

Trace subsystem ROM CoreSight peripheral identity register 1 (TSSROM_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 field, bits [3:0]

0x0: Arm JEDEC code

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

0x4: STM32N6x5/x7xx

Trace subsystem ROM CoreSight peripheral identity register 2 (TSSROM_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 1

Bit 3 JEDEC : JEDEC assigned value

1: Designer ID specified by JEDEC

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

0x2: STMicroelectronics JEDEC code

Trace subsystem ROM CoreSight peripheral identity register 3
(TSSROM_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

Trace subsystem ROM CoreSight component identity register 0
(TSSROM_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 field, bits [7:0]

0x0D: Common ID value

Trace subsystem ROM CoreSight component identity register 1
(TSSROM_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 field, bits [15:12] - component class

0x1: ROM table component

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

0x0: Common ID value

Trace subsystem ROM CoreSight component identity register 2
(TSSROM_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 field, bits [23:16]

0x05: Common ID value

Trace subsystem ROM CoreSight component identity register 3
(TSSROM_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 field, bits [31:24]
0xB1: Common ID value

Trace subsystem ROM table register map

Table 881. Trace subsystem ROM table register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFCCTSSROM_MEMTYPERes.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.Res.SYSTEM
Reset value1
0xFD0TSSROM_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 value00000000
0xFD4-0xFDCReservedReserved
0xFE0TSSROM_PIDR0Res.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 value10000011
0xFE4TSSROM_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 value00000110
0xFE8TSSROM_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 value0001010
0xFECTSSROM_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
0xFF0TSSROM_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
0xFF4TSSROM_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 value00010000
0xFF8TSSROM_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
0xFFCTSSROM_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

78.12.2 Global timestamp generator (TSGEN)

The CoreSight TSGEN contains a 64-bit counter that provides a common timing reference for all the trace sources in the system, namely the ETM, ITM, and STM. These components insert timestamps in the trace streams that allow the trace analyzer to recover the chronological order of trace packets, which can be lost when multiple trace sources are multiplexed into one stream at the funnel.

The TSGEN registers are accessible over the EPPB, and allow the debugger or debug software to perform the following:

The TSGEN has its own clock domain ck_ker_tsgen. The timestamp is distributed to the Cortex-M55 to provide time information for the trace macrocell, and to the STM to provide time information for stamping its messages. To simplify the timestamp distribution over clock domain boundaries, the 64-bit timestamp is encoded in 7 bits, then decoded in the destination domain. The timestamp distribution is shown in Figure 1082 .

Whenever the frequency of the TSGEN or Cortex-M55 changes, the ETM of the Cortex-M55 processor receives a pulse on its tsclkchange input, to insert a marker in the trace stream as a hint that there is discontinuity in time represented by timestamps.

For more information on the CoreSight timestamp generator component, refer to the Arm CoreSight SoC-400 Technical Reference Manual [2] .

Figure 1082. CoreSight timestamp distribution

Figure 1082. CoreSight timestamp distribution diagram. The diagram shows the flow of timestamp data from the Timestamp generator (containing a Counter [63:0]) through various components. The generator is controlled by hltdbg and Debug APB (EPPB). The 64-bit counter output is encoded by a Timestamp encoder into a 7-bit signal, which is then replicated by a Timestamp replicator. One path goes to a Timestamp decoder, which outputs a 64-bit value to the STM. Another path from the replicator enters the Cortex-M55 subsystem domain, where it is decoded by another Timestamp decoder into a 64-bit value, which is then processed by a Timestamp interpolator and sent to the ETM and ITM of the Cortex-M55. The diagram is labeled MSV70438V1.
graph LR
    hltdbg --> TG[Timestamp generator]
    EPPB[Debug APB EPPB] --> TG
    subgraph TG_Box [Timestamp generator]
        Counter[Counter 63:0]
    end
    Counter -- 64 --> TE[Timestamp encoder]
    TE -- 7 --> TR[Timestamp replicator]
    TR -- 7 --> TD1[Timestamp decoder]
    TD1 -- 64 --> STM[STM]
    TR -- 7 --> TD2[Timestamp decoder]
    subgraph CM55_Domain [Cortex-M55 subsystem domain]
        TD2 -- 64 --> TI[Timestamp interpolator]
        subgraph CM55 [Cortex-M55]
            TI -- 64 --> ETM[ETM]
            TI -- 64 --> ITM[ITM]
        end
    end
  
Figure 1082. CoreSight timestamp distribution diagram. The diagram shows the flow of timestamp data from the Timestamp generator (containing a Counter [63:0]) through various components. The generator is controlled by hltdbg and Debug APB (EPPB). The 64-bit counter output is encoded by a Timestamp encoder into a 7-bit signal, which is then replicated by a Timestamp replicator. One path goes to a Timestamp decoder, which outputs a 64-bit value to the STM. Another path from the replicator enters the Cortex-M55 subsystem domain, where it is decoded by another Timestamp decoder into a 64-bit value, which is then processed by a Timestamp interpolator and sent to the ETM and ITM of the Cortex-M55. The diagram is labeled MSV70438V1.

78.12.3 TSGEN registers

The register file base address for the TSGEN is defined in Table 880: Trace subsystem ROM table .

TSGEN counter control register (TSG_CNTCR)

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.HDBGEN
rwrw

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

Bit 1 HDBG : Halt on debug

Bit 0 EN : Enable

TSGEN counter status register (TSG_CNTSR)

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.DBGHRes.
r

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

Bit 1 DBGH : Debug halted

Bit 0 Reserved, must be kept at reset value.

TSGEN current counter value lower register (TSG_CNTCVL)

Address offset: 0x008

Reset value: 0x0000 0000

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

Bits 31:0 CNTCVU_L_32[31:0] : Timestamp counter current value (least significant 32 bits)

To change the current timestamp value, write the least significant 32 bits of the new value to this register before writing the most significant 32 bits to TSG_CNTCVU. The timestamp value is not changed until the TSG_CNTCVU register is written to.

Note: EN must be cleared in TSG_CNTCR before writing to this register TSG_CNTCVL.

TSGEN current counter value upper register (TSG_CNTCVU)

Address offset: 0x00C

Reset value: 0x0000 0000

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

Bits 31:0 CNTCVU_U_32[31:0] : Timestamp counter current value (most significant 32 bits)

To change the current timestamp value, write the least significant 32 bits of the new value to TSG_CNTCVL before writing the most significant 32 bits to this register. The 64-bit timestamp value is updated with the value from both writes when this register is written to.

Note: EN must be cleared in TSG_CNTCR before writing to this register TSG_CNTCVU.

TSGEN base frequency ID register (TSG_CNTFID0)

Address offset: 0x020

Reset value: 0x0000 0000

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

Bits 31:0 FREQ[31:0] : Increment frequency of TSG counter (in Hz)

This field must be programmed with the trace generator clock frequency whenever it changes.

TSGEN CoreSight peripheral identity register 4 (TSG_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: register file occupies a single 4-Kbyte region.

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

0x4: Arm JEDEC code

TSGEN CoreSight peripheral identity register 0 (TSG_PIDR0)

Address offset: 0xFE0

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.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]

0x01: TSGEN part number

TSGEN CoreSight peripheral identity register 1 (TSG_PIDR1)

Address offset: 0xFE4

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.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]

0x1: TSGEN part number

TSGEN CoreSight peripheral identity register 2 (TSG_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]
rrrrrrrr

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 ID specified by JEDEC

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

0x3: Arm JEDEC code

TSGEN CoreSight peripheral identity register 3 (TSG_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

TSGEN CoreSight component identity register 0 (TSG_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

TSGEN CoreSight peripheral identity register 1 (TSG_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: CoreSight Soc-400 component

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

0x0: Common ID value

TSGEN CoreSight component identity register 2 (TSG_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

TSGEN CoreSight component identity register 3 (TSG_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

TSGEN register map

Table 882. TSGEN register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x000TSG_CNTCRRes.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.HDBGEN
Reset value00
0x004TSG_CNTSRRes.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.DBGHRes.
Reset value0
0x008TSG_CNTCVLCNTCVU_L_32[31:0]
Reset value00000000000000000000000000000000
0x00CTSG_CNTCVUCNTCVU_U_32[31:0]
Reset value00000000000000000000000000000000
0x020TSG_CNTFID0FREQ[31:0]
Reset value00000000000000000000000000000000
0x024-
0xFCC
ReservedReserved
0xFD0TSG_PIDR4Res.SIZE[3:0]JEP106CON
[3:0]
Reset value00000100
0xFD4-
0xFDC
ReservedReserved
0xFE0TSG_PIDR0Res.PARTNUM[7:0]
Reset value00000001
0xFE4TSG_PIDR1Res.JEP106ID
[3:0]
PARTNUM
[11:8]
Reset value10110001
0xFE8TSG_PIDR2Res.REVISION
[3:0]
JEDECJEP106ID
[6:4]
Reset value00011011
0xFECTSG_PIDR3Res.REVAND
[3:0]
CMOD[3:0]
Reset value00000000
0xFF0TSG_CIDR0Res.PREAMBLE[7:0]
Reset value00001101
0xFF4TSG_CIDR1Res.CLASS[3:0]PREAMBLE
[11:8]
Reset value11110000

Table 882. TSGEN register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFF8TSG_CIDR2Res.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 value00000101
0xFFCTSG_CIDR3Res.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 value10110001

78.12.4 Cross trigger interface (CTI) and matrix (CTM)

The CTI and CTM together form the CoreSight embedded cross trigger feature. There are three CTI components: two in the trace and debug subsystem, and one dedicated to the Cortex-M55.

The CTIs are connected to each other via the CTM. The trace and debug subsystem CTIs and the Cortex-M55 CTI are accessible on the PPB (private peripheral bus) via the Cortex-M55.

Figure 1083. Embedded cross trigger

Diagram of Embedded cross trigger architecture showing Cortex-M55 CPU, DWT, ETM, CTI, and various trace/debug subsystems (CTI_0, CTI_1) connected via CTM channels.

The diagram illustrates the embedded cross trigger architecture. On the left, the Cortex-M55 CPU, DWT, and ETM are shown. The CPU has signals HALTED, EDBGREQ, DBGRESTART, CTIIRQ0, and CTIIRQ1. The DWT has signals DWT_COMP0, DWT_COMP1, and DWT_COMP2. The ETM has signals ETMEVENTO_0, ETMEVENTO_1, ETMEVENTIN_0, ETMEVENTIN_1, ETMEVENTIN_2, and ETMEVENTIN_3. These signals are connected to the Cortex-M55 CTI. The CTI has eight trigger inputs (TRIGIN0-TRIGIN7) and eight trigger outputs (TRIGOUT0-TRIGOUT7). The CTI is connected to the Trace and debug subsystem CTI_0 and CTI_1 via CTM channels [3:0]. CTI_0 has eight trigger inputs (TRIGIN0-TRIGIN7) and eight trigger outputs (TRIGOUT0-TRIGOUT7). CTI_1 has four trigger inputs (TRIGIN0-TRIGIN3) and four trigger outputs (TRIGOUT0-TRIGOUT3). The subsystems are connected to various components: ETR, ETF, TPIU, STM, and GPU. The diagram also shows connections to PPB-M55 and MSv70439V1.

Diagram of Embedded cross trigger architecture showing Cortex-M55 CPU, DWT, ETM, CTI, and various trace/debug subsystems (CTI_0, CTI_1) connected via CTM channels.

The CTIs allow events from various sources to trigger debug and/or trace activity. For example, a transition detected on an external trigger input can start code trace.

Each CTI has up to eight trigger inputs and eight trigger outputs. Any input can be connected to any output, on the same CTI, or on another CTI via the CTM.

The trigger input and output signals for each CTI are listed in the following tables.

Table 883. Trace and debug subsystem CTI_0 inputs
-Source signalSource componentComments
0ETRFULLETRETR full flag: allows a debug event to be generated when the trace buffer is full.
1ETRACQCOMPETRETR capture finished: allows a debug event to be generated when trace acquisition is complete.
2ETFFULLETFETF full flag: allows a debug event to be generated when the trace FIFO is full.
3ETFACQCOMPETFETF capture finished: allows a debug event to be generated when the trace FIFO is empty.
4TRIGOUTSPTESTMThe STM asserts this signal for one clock cycle when a trigger event is detected on a match using the STMSPTER.
5TRIGOUTSWSTMThe STM asserts this signal for one clock cycle when a trigger event is generated on writes to a TRIG location in the extended stimulus port registers.
6TRIGOUTHETESTMThe STM asserts this signal for one clock cycle when a trigger event is detected on a match using the STMHETER.
7ASYNCOUTSTMAlignment synchronization signal. The STM asserts this signal for one clock cycle when an ASYNC-VERSION-FREQ sequence is output on the ATB interface, and the ASYNCOUT signal can be used for cross-triggering.
Table 884. Trace and debug subsystem CTI_0 outputs
-Output signalDestination componentComments
0ETRFLUSHETRETR flush trigger: causes the trace sources to be flushed into destination memory.
1ETRTRIGETRETR trigger: causes various kinds of flush, stops the TMC, and causes additional trigger insertion.
2ETFFLUSHETFETF flush trigger: causes the trace FIFO to be flushed.
3ETFTRIGETFETF enable trigger: starts filling the trace FIFO.
4TPIUFLUSHTPIUTrace port flush trigger: causes the TPIU FIFO to be flushed.
5TPIUTRIGTPIUTrace Port enable trigger: starts trace output on the external trace port.
6--Not used
7--Not used
Table 885. Trace and debug subsystem CTI_1 inputs
-Source signalSource componentComments
0DBTRIGIGPIOExternal trigger input: allows an external signal to generate a debug event.
1GPU_TRIGOUTGPUTrigger out from GPU
2--Not used
3--Not used
4--Not used

Table 885. Trace and debug subsystem CTI_1 inputs (continued)

-Source signalSource componentComments
5--Not used
6--Not used
7--Not used

Table 886. Trace and debug subsystem CTI_1 outputs

-Output signalDestination componentComments
0DBTRIGOGPIOExternal I/O trigger output: allows monitoring events on the external DBTRIGO pin.
1HWEVENTASTMSTM hardware event
2HWEVENTBSTMSTM hardware event
3GPU_TRIGINGPUTrigger in to GPU
4--Not used
5--Not used
6--Not used
7--Not used

Table 887. Cortex-M55 CTI inputs

-Source signalSource componentComments
0HALTEDM55 CPUPulsed high when the core enters in debug state
1DWTCOMP_0M55 DWTDWT comparator output
2DWTCOMP_1M55 DWTDWT comparator output
3DWTCOMP_2M55 DWTDWT comparator output
4ETMEVENTO_0M55 ETMETM event output
5ETMEVENTO_1M55 ETMETM event output
6--Not used
7--Not used

Table 888. Cortex-M55 CTI outputs

-Source signalDestination componentComments
0EDBGRQM55 CPUCPU halt request - puts CPU in debug mode
1DBGRESTARTM55 CPUCPU restart request - CPU exits debug mode
2IRQ0M55 NVICCTI interrupt
3IRQ1M55 NVICCTI interrupt

Table 888. Cortex-M55 CTI outputs (continued)

-Source signalDestination componentComments
4ETMEVENTIN_0M55 ETMETM event input
5ETMEVENTIN_1M55 ETMETM event input
6ETMEVENTIN_2M55 ETMETM event input
7ETMEVENTIN_3M55 ETMETM event input

There are four event channels in a cross trigger matrix, which allows up to four, parallel, bidirectional connections between trigger inputs and outputs on different CTIs.

To connect input number \( m \) on CTI \( x \) to output number \( n \) on CTI \( y \) , the input must be connected to an event channel \( p \) using the CTIINEN \( m \) register of CTI \( x \) . The same channel \( p \) must be connected to the output using the CTIOUTEN \( n \) register of CTI \( y \) .

Note: This applies even if the input and output belong to the same CTI.

An input can be connected to more than one channel (up to four). An input can then be routed to several outputs. Similarly, an output can be connected to several inputs. It is also possible to connect several inputs/outputs to the same channel.

Figure 1084. Mapping trigger inputs to outputs

Diagram illustrating the mapping of trigger inputs to outputs through a cross-trigger matrix (CTM).

The diagram shows the internal architecture of the Cross Trigger Interface (CTI) for mapping inputs to outputs. On the left, 'Input m' enters a block labeled 'CTI x'. Inside this block, a register labeled 'CTIINEN \( m = p \) ' is connected to a switch mechanism. This switch can connect 'Input m' to one of four channels in the central 'CTM' (Cross Trigger Matrix) block, specifically 'Channel p'. The other three channels are labeled 'Channel q', 'Channel r', and 'Channel s'. On the right, another block labeled 'CTI y' contains a register labeled 'CTIOUTEN \( n = p \) '. This register is connected to a switch mechanism that can connect 'Channel p' from the CTM to 'Output n'. The diagram illustrates that the same channel 'p' is used for both the input and output connection. A small code 'MSV70440V1' is visible in the bottom right corner of the diagram area.

Diagram illustrating the mapping of trigger inputs to outputs through a cross-trigger matrix (CTM).

For more information on the cross-trigger interface CoreSight component, refer to the Arm CoreSight SoC-400 Technical Reference Manual [2].

78.12.5 CTI registers

The register file base addresses for CTI_0 and CTI_1 in the trace and debug subsystem are defined in Table 880. The register file base address for the Cortex-M55 CTI is defined in Table 873. Registers are the same for each CTI.

CTI control register (CTI_CONTROL)

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 enable

0: Cross-triggering disabled

1: Cross-triggering enabled

CTI trigger acknowledge register (CTI_INTACK)

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 this register for each CTITRIGOUT output. When a one is written to a bit, the corresponding CTITRIGOUT output is acknowledged, causing it to be cleared.

CTI application trigger set register (CTI_APPSET)

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 set

Read:

Write:

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 clear

CTI application pulse register (CTI_APPPULSE)

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

This bitfield clears itself immediately.

xxx0: No effect

xxx1: Generate pulse on channel 0.

xx0x: No effect

xx1x: Generate pulse on channel 1.

x0xx: No effect

x1xx: Generate pulse on channel 2.

0xxx: No effect

1xxx: Generate pulse on channel 3.

CTI trigger IN x enable register (CTI_INENx)

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]

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

Bits 3:0 TRIGINEN[3:0] : Cross-trigger event enable

This bitfield enables or disables a cross-trigger event on each of the four channels when CTITRIGINx is activated (x = 0 to 7).

xxx0: Trigger n does not generate events on channel 0.

xxx1: Trigger n generates events on channel 0.

xx0x: Trigger n does not generate events on channel 1.

xx1x: Trigger n generates events on channel 1.

x0xx: Trigger n does not generate events on channel 2.

x1xx: Trigger n generates events on channel 2.

0xxx: Trigger n does not generate events on channel 3.

1xxx: Trigger n generates events on channel 3.

CTI trigger OUT x enable register (CTI_OUTENx)

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] : Enable trigger upon event

For each channel, this bitfield defines whether an event on that channel generates a trigger on CTITRIGOUTx (x = 0 to 7).

xxx0: Channel 0 events do not generate triggers on trigger output n.

xx11: Channel 0 events generate triggers on trigger output n.

xx0x: Channel 1 events do not generate triggers on trigger output n.

xx1x: Channel 1 events generate triggers on trigger output n.

x0xx: Channel 2 events do not generate triggers on trigger output n.

x1xx: Channel 2 events generate triggers on trigger output n.

0xxx: Channel 3 events generate triggers on trigger output n.

CTI trigger IN status register (CTI_TRGISTS)

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 this bitfield 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_TRGOSTS)

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 this bitfield for each CTITRIGOUT 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_CHINSTS)

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 this bitfield 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_CHOUTSTS)

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 this bitfield 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_GATE)

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, a bit defines whether an event on that channel can propagate over the CTM to other CTIs.

xxx0: Channel 0 events do not propagate.

xxx1: Channel 0 events propagate.

xx0x: Channel 1 events do not propagate.

xx1x: Channel 1 events propagate.

x0xx: Channel 2 events do not propagate.

x1xx: Channel 2 events propagate.

0xxx: Channel 3 events do not propagate.

1xxx: Channel 3 events propagate.

CTI claim tag set register (CTI_CLAIMSET)

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]

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

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

Write:

0000: No effect

xxx1: Set bit 0.

xx1x: Set bit 1.

x1xx: Set bit 2.

1xxx: Set bit 3.

Read:

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

CTI claim tag clear register (CTI_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] : Reset claim tag bits

Write:

0000: No effect

xxx1: Clear bit 0.

xx1x: Clear bit 1.

x1xx: Clear bit 2.

1xxx: Clear bit 3.

Read: Return current value of claim tag.

CTI lock access register (CTI_LAR)

Address offset: 0xFB0

Reset value: 0xFFFF XXXX

31302928272625242322212019181716
ACCESS_W[31:16]
wwwwwwwwwwwwwwww
1514131211109876543210
ACCESS_W[15:0]
wwwwwwwwwwwwwwww

Bits 31:0 ACCESS_W[31:0] : CTI register write access enable

This bitfield enables write access to some CTI registers by the processor core (debuggers do not need to unlock the component).

0xC5ACCE55: Enable write access.

Other values: Disable write access.

CTI lock status register (CTI_LSR)

Address offset: 0xFB4

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.LOCKTYPELOCKGRANTLOCKEXIST
rrr

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

Bit 2 LOCKTYPE : Size of the CTI_LAR register

0: 32 bits

Bit 1 LOCKGRANT : Current status of lock

This bit always returns 0 when read by an external debugger.

0: Write access is permitted.

1: Write access is blocked. Only read access is permitted.

Bit 0 LOCKEXIST : Existence of lock control mechanism

The bit indicates whether a lock control mechanism exists. It always returns 0 when read by an external debugger.

0: No lock control mechanism exists.

1: Lock control mechanism is implemented.

CTI authentication status register (CTI_AUTHSTAT)

Address offset: 0xFB8

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.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

0x0: Not implemented

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: Disabled

0x3: Enabled

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

0x2: Disabled

0x3: Enabled

CTI device configuration register (CTI_DEVID)

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 available

0x4: Four channels

Bits 15:8 NUMTRIG[7:0] : Number of ECT triggers available

0x8: Eight trigger inputs and eight 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: This bitfield indicates that this component is a cross-triggering component.

Bits 3:0 MAJORTYPE[3:0] : Major classification

0x4: This bitfield 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.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: 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 0006

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 field, bits [7:0]

0x06: CTI part number

CTI CoreSight peripheral identity register 1 (CTI_PIDR1)

Address offset: 0xFE4

Reset value: 0x0000 00B9

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 field, bits [3:0]

0xB: Arm JEDEC code

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

0x9: CTI part number

CTI CoreSight peripheral identity register 2 (CTI_PIDR2)

Address offset: 0xFE8

Reset value: 0x0000 005B

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

0x5: r1p0

Bit 3 JEDEC : JEDEC assigned value

1: Designer ID specified by JEDEC

Bits 2:0 JEP106ID[6:4] : JEP106 identity code field, 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 field, bits [7:0]

0x0D: Common ID value

CTI CoreSight component 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 field, bits [15:12] - component class

0x9: CoreSight component

Bits 3:0 PREAMBLE[11:8] : Component ID field, 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 field, 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 field, bits [31:24]

0xB1: Common ID value

CTI register map

Table 889. CTI register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x000CTI_CONTROLResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResGLBEN
Reset value0
0x010CTI_INTACKResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResINTACK[7:0]
Reset value000000
0x014CTI_APPSETResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResAPPSET[3:0]
Reset value00
0x018CTI_APPCLEARResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResAPPCLEAR [3:0]
Reset value00
0x01CCTI_APPPULSEResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResAPPULSE [3:0]
Reset value00
0x020 +
0x4 * x
(x=0 to 7)
Last
address:
0x03C
CTI_INENxResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResTRIGINEN [3:0]
Reset value00
0x040-
0x09C
ReservedReserved
0x0A0 +
0x4 * x
(x=0 to 7)
Last
address:
0x0BC
CTI_OUTENxResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResTRIGOUTEN [3:0]
Reset value00
0x0C0-
0x12C
ReservedReserved
0x130CTI_TRIGISTSResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResTRIGINSTATUS[7:0]
Reset value000000
0x134CTI_TRIGOSTSResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResTRIGOUTSTATUS[7:0]
Reset value000000
0x138CTI_CHINSTSResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResCHINSTATUS [3:0]
Reset value00
0x13CCTI_CHOUTSTSResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResCHOUTSTATUS [3:0]
Reset value00
0x140CTI_GATEResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResGATEEN[3:0]
Reset value11
0x144-
0xF9C
ReservedReserved

Table 889. CTI register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFA0CTI_CLAIMSETRes.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
0xFA4CTI_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.CLAIMCLR [3:0]
Reset value0000
0xFA8-0xFACReservedReserved
0xFB0CTI_LARACCESS_W[31:0]
Reset valueXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0xFB4CTI_LSRRes.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.LOCKTYPELOCKGRANTLOCKEXIST
Reset value011
0xFB8CTI_AUTHSTATRes.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 value00001010
0xFC8CTI_DEVIDRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.NUMCH[3:0]NUMTRIG[7:0]Res.Res.Res.EXMUXNUM [4:0]
Reset value01000000100000000
0xFCCCTI_DEVTYPERes.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 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.Res.SIZE[3:0]JEP106CON [3:0]
Reset value00000100
0xFD4-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.Res.PARTNUM[7:0]
Reset value00000110
0xFE4CTI_PIDR1Res.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 value10111001
0xFE8CTI_PIDR2Res.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 value01011011
0xFECCTI_PIDR3Res.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 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.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.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.Res.PREAMBLE[19:12]
Reset value00000101

Table 889. CTI register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFFCCTI_CIDR3PREAMBLE[27:20]
Reset value10110001

78.12.6 Trace funnel (CSTF)

The trace funnel is a CoreSight component that combines ATB buses from the three trace sources into one single ATB. The CSTF has three ATB slave ports and one ATB master port. An arbiter selects the slave ports according to a programmable priority.

The slave ports are connected as follows:

CSTF registers allow the slave ports to be individually enabled, and their priority settings to be configured. The priorities can be modified only when trace is disabled. The arbitration works as follows:

  1. 1. The arbiter selects the slave port with the highest assigned priority that has data valid.
  2. 2. Up to MIN_HOLD_TIME transfers are passed from the selected slave to the master port, where MIN_HOLD_TIME is programmable in CSTF_CTRL.
  3. 3. A new arbitration is then performed.

High priority must be assigned to slave ports connected to sources with a small amount of buffering, or where data loss cannot be tolerated. Low priority must be assigned to less critical sources or those with large buffers.

For more information on the ATB funnel CoreSight component, refer to the Arm CoreSight SoC-400 Technical Reference Manual [2].

78.12.7 Trace funnel registers

The register file base address for the CSTF is defined in Table 880: Trace subsystem ROM table .

CSTF control register (CSTF_CTRL)

Address offset: 0x000

Reset value: 0x0000 0300

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

15141312MIN_HOLD_TIME[3:0]76543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.ENS2ENS1ENS0
rwrwrwrwrwrwrw

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

Bits 11:8 MIN_HOLD_TIME[3:0] : Number of transactions between arbitrations

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

Bit 2 ENS2 : S2 slave port enable

Bit 1 ENS1 : S1 slave port enable

Bit 0 ENS0 : S0 slave port enable

CSTF priority register (CSTF_PRIORITY)

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.PRIPORT2[2:0]PRIPORT1[2:0]PRIPORT0[2:0]
rwrwrwrwrwrwrwrwrw

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

Bits 8:6 PRIPORT2[2:0] : S1 slave port priority

Bits 5:3 PRIPORT1[2:0] : S1 slave port priority

Bits 2:0 PRIPORT0[2:0] : S0 slave port priority

CSTF claim tag set register (CSTF_CLAIMSET)

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] : Set claim tag

Write:

0000: No effect

xxx1: Set bit 0.

xx1x: Set bit 1.

x1xx: Set bit 2.

1xxx: Set bit 3.

Read:

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

CSTF claim tag clear register (CSTF_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] : Reset claim tag

Write:

0000: No effect

xxx1: Clear bit 0.

xx1x: Clear bit 1.

x1xx: Clear bit 2.

1xxx: Clear bit 3.

Read: Return current value of claim tag.

CSTF lock access register (CSTF_LAR)

Address offset: 0xFB0

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
ACCESS_W[31:16]
wwwwwwwwwwwwwwww
1514131211109876543210
ACCESS_W[15:0]
wwwwwwwwwwwwwwww

Bits 31:0 ACCESS_W[31:0] : CSTF register write access enable

The field enables write access to some CSTF registers by the processor cores (debuggers do not need to unlock the component).

0xC5ACCE55: Enable write access.

Other values: Disable write access.

CSTF lock status register (CSTF_LSR)

Address offset: 0xFB4

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.LOCKTYPELOCKGRANTLOCKEXIST
rrr

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

Bit 2 LOCKTYPE : Size of the CSTF_LAR register

0: 32 bits

Bit 1 LOCKGRANT : Current status of lock

This bit always returns 0 when read by an external debugger.

0: Write access is permitted.

1: Write access is blocked. Only read access is permitted.

Bit 0 LOCKEXIST : Existence of lock control mechanism

The bit indicates whether a lock control mechanism exists. It always returns 0 when read by an external debugger.

0: No lock control mechanism exists.

1: Lock control mechanism is implemented.

CSTF authentication status register (CSTF_AUTHSTAT)

Address offset: 0xFB8

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.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

0x0: Not implemented

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

0x0: Not implemented

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

0x0: Not implemented

CSTF CoreSight device identity register (CSTF_DEVID)

Address offset: 0xFC8

Reset value: 0x0000 0033

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.SCHEME[3:0]PORTCNT[3:0]
rrrrrrrr

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

Bits 7:4 SCHEME[3:0] : Priority scheme

0x3: Program the slave ports to have higher or lower priority with respect to each other.

Bits 3:0 PORTCNT[3:0] : Number of input ports connected

0x3: Two input ports

CSTF CoreSight device type identity register (CSTF_DEVTYPE)

Address offset: 0xFCC

Reset value: 0x0000 0012

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.DEVTYPEID[7:0]
rrrrrrrr

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

Bits 7:0 DEVTYPEID[7:0] : Device type identifier
0x12: Trace funnel

CSTF CoreSight peripheral identity register 4 (CSTF_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: Register file occupies a single 4-Kbyte region.

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

CSTF CoreSight peripheral identity register 0 (CSTF_PIDR0)

Address offset: 0xFE0

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.PARTNUM[7:0]
rrrrrrrr

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

Bits 7:0 PARTNUM[7:0] : Part number field, bits [7:0]
0x08: CSTF part number

CSTF CoreSight peripheral identity register 1 (CSTF_PIDR1)

Address offset: 0xFE4

Reset value: 0x0000 00B9

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 field, bits [3:0]

0xB: Arm JEDEC code

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

0x9: CSTF part number

CSTF CoreSight peripheral identity register 2 (CSTF_PIDR2)

Address offset: 0xFE8

Reset value: 0x0000 003B

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

0x3: r1p1

Bit 3 JEDEC : JEDEC assigned value

1: Designer ID specified by JEDEC

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

0x3: Arm JEDEC code

CSTF CoreSight peripheral identity register 3 (CSTF_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

CSTF CoreSight component identity register 0 (CSTF_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 field, bits [7:0]

0x0D: Common ID value

CSTF CoreSight component identity register 1 (CSTF_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 field, bits [15:12] - component class

0x9: CoreSight component

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

0x0: Common ID value

CSTF CoreSight component identity register 2 (CSTF_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 field, bits [23:16]

0x05: Common ID value

CSTF CoreSight component identity register 3 (CSTF_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 field, bits [31:24]

0xB1: Common ID value

CSTF register map

Table 890. CSTF register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x000CSTF_CTRLRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.MIN_HOLD_TIME [3:0]Res.Res.Res.Res.Res.ENS2ENS1ENS0
Reset value0011000
0x004CSTF_PRIORITYRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PRIPORT2 [2:0]PRIPORT1 [2:0]PRIPORT0 [2:0]
Reset value000000000
0x008-0xF9CReservedReserved
0xFA0CSTF_CLAIMSETRes.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

Table 890. CSTF register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFA4CSTF_CLAIMCLRResResResResResResResResResResResResResResResResResResResResResResResResResResResResResCLAIMCLR [3:0]
Reset value0000
0xFA8-0xFACReservedReserved
0xFB0CSTF_LARACCESS_W[31:0]
Reset valueXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0xFB4CSTF_LSRResResResResResResResResResResResResResResResResResResResResResResResResResResResResResLOCKTYPELOCKGRANTLOCKEXIST
Reset value011
0xFB8CSTF_AUTHSTATResResResResResResResResResResResResResResResResResResResResResResResResResResResResResSNID [1:0]SID [1:0]NSNID [1:0]NSID [1:0]
Reset value0000
0xFC8CSTF_DEVIDResResResResResResResResResResResResResResResResResResResResResResResResResResResResResSCHEME[3:0]PORTCNT [3:0]
Reset value0011
0xFCCCSTF_DEVTYPEResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResDEVTYPEID[7:0]
Reset value0001
0xFD0CSTF_PIDR4ResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResSIZE[3:0]JEP106CON [3:0]
Reset value0000
0xFD4-0xFDCReservedReserved
0xFE0CSTF_PIDR0ResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResPARTNUM[7:0]
Reset value0000
0xFE4CSTF_PIDR1ResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResJEP106ID [3:0]PARTNUM [11:8]
Reset value1011
0xFE8CSTF_PIDR2ResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResREVISION [3:0]JEDEC [6:4]JEP106ID [6:4]
Reset value0011
0xFECCSTF_PIDR3ResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResREVAND[3:0]CMOD[3:0]
Reset value0000
0xFF0CSTF_CIDR0ResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResPREAMBLE[7:0]
Reset value0000
0xFF4CSTF_CIDR1ResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResCLASS[3:0]
Reset value1001
0xFF8CSTF_CIDR2ResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResPREAMBLE[19:12]
Reset value0000
0xFFCCSTF_CIDR3ResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResPREAMBLE[27:20]
Reset value1011

78.12.8 Embedded trace FIFO (ETF)

The ETF is a 4-Kbyte memory, which captures trace data from three trace sources: the ETM/ITM of the Cortex-M55, and the STM. The ETF is a configuration of the CoreSight trace memory controller component.

The ETF can be used in three modes (selected in ETF_MODE register):

The trace memory is used as a FIFO that is drained through the ATB master interface. Trace data are captured into the trace RAM, and when full, the incoming trace stream is stalled. When the trace buffer is not empty, trace data are drained out through the ATB master interface to the TPIU.

In this mode, the FIFO role is to smooth the flow of trace information arriving at the trace port. Since trace data can be very bursty in nature, the peak data rate can easily exceed the port capability, resulting in an overflow. The ETF allows a steady data rate at the trace port, which can then be sized according to the average rate rather than the peak. The trace is stored off-chip in real time by the trace port analyzer tool, and so the trace log can be very large.

The trace memory is used as a FIFO that can be read through ETF_RRD while the trace is being captured. Trace data are captured into the trace RAM, and when full, the incoming trace stream is stalled.

This mode allows the trace to be transferred by DMA into a system memory, or to a high-speed interface (such as SPI or USB), or monitored by software running on the core.

Note: Unlike the hardware-FIFO mode, this mode is invasive, since it uses system resources shared by the processors.

The trace memory is used as a circular buffer. Trace data are captured into the trace memory starting from the location pointed to by ETF_RWP. Even when the trace memory is full, incoming trace data continue to be overwritten in the trace memory until a stop condition occurs.

In this mode, the ETF stores trace data on-chip: the trace log size is limited to the ETF SRAM size (64 kbytes in this case). Being a circular buffer, if the FIFO becomes full, incoming trace data overwrite oldest stored data (which are lost). The trace buffer contents represent then the most recent activity of the processor: up to the point when the buffer was stopped, rather than all the activity since the trace was started.

There are four possible methods to read out the buffer contents once the trace has stopped:

be used to trigger an interrupt to the Cortex-M55 via the cross trigger. The software can then read ETF_CBUFLVL to find out the number of data to be read.

For more information on the trace memory controller CoreSight component, refer to the Arm CoreSight Trace Memory Controller Technical Reference Manual [3].

78.12.9 Embedded trace FIFO registers

ETF RAM size register (ETF_RSZ)

Address offset: 0x004

Reset value: 0x0000 0400

31302928272625242322212019181716
Res.RSZ[30:16]
rrrrrrrrrrrrrrr
1514131211109876543210
RSZ[15:0]
rrrrrrrrrrrrrrrr

Bit 31 Reserved, must be kept at reset value.

Bits 30:0 RSZ[30:0] : size of the RAM in 32-bit words
0x400: 4 Kbytes

ETF status register (ETF_STS)

Address offset: 0x00C

Reset value: 0x0000 001C

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.EMPTYFTEMP
TY
READYTRIGDFULL
rrrrr

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

Bit 4 EMPTY : Trace FIFO empty

This bit is valid only when TCEN is set in ETF_CTL. This EMPTY bit is read as 0 when TCEN = 0.

0: Trace FIFO contains data.

1: Trace FIFO is empty.

Note: This bit does not inform about ETF pipeline emptiness which is indicated by FTEMPY.

Bit 3 FTEMPY : Formatter empty

This bit is set when trace capture has stopped, and all internal pipelines and buffers have drained. Unlike READY, it is not affected by buffer drains. The ACQCOMP output reflects the value of this bit.

Bit 2 READY : ETF ready

This bit is set when the trace capture has stopped, and all internal pipelines and buffers have drained (stopped or disabled mode).

Bit 1 TRIGD : Triggered

This bit is set when the trace capture is in progress and the TMC has detected a trigger event. This bit is cleared when leaving disabled state.

This bit is operational only in the circular-buffer mode. In all other modes, this bit is always low.

This bit does not indicate that a trigger is embedded in formatted output trace data from the TMC. The trigger indication on the output trace stream is determined by ETF_FFCR programming.

Bit 0 FULL : Trace buffer full

In circular-buffer mode, this flag is set when the RAM write pointer wraps around the top of the buffer, and remains set until TCEN in ETF_CTL is cleared and set.

In software- and hardware-FIFO modes, this flag indicates that the current space in the trace memory is less than or equal to the value programmed in ETF_BUFWM, that is,
Fill level \( \geq \) MEM_SIZE - BUFWM.

This bit is cleared when leaving the disabled state. The FULL output reflects the value of this bit.

ETF RAM read data register (ETF_RRD)

Address offset: 0x010

Reset value: 0xXXXX XXXX

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

Bits 31:0 RRD[31:0] : RAM read data

ETF RAM read pointer register (ETF_RRP)

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.RRP[12:0]
rwrwrwrwrwrwrwrwrwrwrwrwrw

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

Bits 12:0 RRP[12:0] : RAM read pointer

This bitfield contains the value of the read pointer that is used to read entries from the trace memory over the APB interface via ETF_RRD. The pointer can be programmed with a byte address, 64-bit aligned (bits 0 to 3 must be 0). The pointer is incremented by eight each time a full 64-bit FIFO entry is written. When the pointer reaches its maximum value, it wraps around.

This register can be written only in disabled state. It can be read in disabled state, in stopped state in circular-buffer mode and software-FIFO mode, and also in running and stopping states in software-FIFO mode.

ETF RAM write pointer register (ETF_RWP)

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.RWP[12:0]
rwrwrwrwrwrwrwrwrwrwrwrwrw

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

Bits 12:0 RWP[12:0] : RAM write pointer

This bitfield contains the value of the write pointer that is used to write entries into the trace memory over the APB interface via the ETF_RWD register. The pointer can be programmed with a byte address, 64-bit aligned (meaning that bits 0 to 3 must be 0). The pointer is incremented by eight each time a full 64-bit FIFO entry is read. When the pointer reaches its maximum value, it wraps around.

This register can be written only in disabled state. It can be read in disabled state, in stopped state in circular-buffer mode and software-FIFO mode, and also in running and stopping states in software-FIFO mode.

ETF trigger counter register (ETF_TRG)

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.TRG[10:0]
rwrwrwrwrwrwrwrwrwrwrw

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

Bits 10:0 TRG[10:0] : trigger counter

In circular-buffer mode, this bitfield specifies the number of 32-bit words to capture in the trace RAM following the detection of either a rising edge on the TRIGIN input, or a trigger packet in the incoming trace stream (ATID = 0x7D). On capturing the specified number of data words, a trigger event occurs. The effect of a trigger event on the ETF behavior is controlled by ETF_FFCR register.

The number of 32-bit words written into the trace RAM following the trigger is the value stored in this register, plus one. This register is ignored when the ETF is in software- or hardware-FIFO mode. When the trigger counter starts counting, any additional triggers, either on TRIGIN or in the incoming trace stream, are ignored until the counter reaches 0. When the trigger counter has reached 0, it remains at 0 until it is reprogrammed with a write to this register.

This register is cleared when READY is set to 1, so that the state of the counter when trace capture has stopped does not affect a subsequent trace capture session. Writing to this register when not in disabled state results in unpredictable behavior.

A read access to this register is permitted at any time when in disabled state, or in circular-buffer mode. A read access returns the current value of the trigger counter.

ETF control register (ETF_CTL)

Address offset: 0x020

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.TCEN
rw

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

Bit 0 TCEN : Trace capture enable

When writing:

0: This bit disables the trace capture (moves from running, stopping, or stopped state into disabling or disabled state).

1: This bit enables the trace capture (moves from disabled state into running state).

Note: When reading, this bit is low in disabling or disabled state. It is high otherwise.

ETF RAM write data register (ETF_RWD)

Address offset: 0x024

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
RWD[31:16]
wwwwwwwwwwwwwwww
1514131211109876543210
RWD[15:0]
wwwwwwwwwwwwwwww

Bits 31:0 RWD[31:0] : RAM write data

When in disabled state, a write to this register stores data at the location pointed to by ETF_RWP. Writes to this register when not in disabled state are ignored. When a full memory width (64 bits) of data is written, data are written to the memory, and the RAM write pointer is incremented to the next memory word.

Note: This register is used for test purposes.

ETF mode register (ETF_MODE)

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.Res.Res.Res.Res.Res.Res.MODE[1:0]
rwrw

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

Bits 1:0 MODE[1:0] : operation mode

ETF latched buffer fill level register (ETF_LBUFLVL)

Address offset: 0x02C

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.LBUFLEVEL[11:0]
rrrrrrrrrrrr

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

Bits 11:0 LBUFLEVEL[11:0] : latched buffer fill level

Reading this register returns the maximum fill level of the trace memory in 32-bit words since this register was last read. Reading this register also results in its contents being updated to the current fill level.

When entering disabled state, this register retains its last value. While in disabled state, reads from this register do not affect its value. When exiting disabled state, this register is cleared.

This register is used for performance analysis of the trace system.

ETF current buffer fill level register (ETF_CBUFLVL)

Address offset: 0x030

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.CBUFLEVEL[11:0]
rrrrrrrrrrrr

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

Bits 11:0 CBUFLEVEL[11:0] : current buffer fill level

Reading this register returns the current fill level of the trace memory in 32-bit words.

This register is cleared when TCEN = 0 in ETF_CTL.

ETF buffer level watermark register (ETF_BUFWM)

Address offset: 0x034

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.BUFWM[10:0]
rwrwrwrwrwrwrwrwrwrwrw

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

Bits 10:0 BUFWM[10:0] : buffer level watermark

The value programmed in this register indicates the required threshold vacancy level in 32-bit words in the trace memory. When the space in the FIFO is less than or equal to this value (Fill level \( \geq \) MEM_SIZE - BUFWM), the FULL output is pulled high, and the FULL bit is set in ETF_STS.

This register is used only in software- and hardware-FIFO modes. In circular-buffer mode, this functionality can be obtained by programming ETF_RWP to the required vacancy trigger level, so that when the pointer wraps around, the FULL bit is set indicating that the vacancy level has fallen below the required level.

The maximum value that can be written into this register is MEM_SIZE - 1; in this case, the FULL output is asserted after the first 32-bit word is written to trace memory.

Writing to this register other than when in disabled state results in unpredictable behavior.

ETF formatter and flush status register (ETF_FFSR)

Address offset: 0x300

Reset value: 0x0000 0002

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.FTSTO
PPED
FLINP
ROG
rwrw

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

Bit 1 FTSTOPPED : formatter stopped

This bit behaves in the same way as FTEMPTY in the ETF_STS register.

Bit 0 FLINPROG : flush in progress

This bit indicates whether a flush on the ATB slave port is in progress. It reflects the status of the AFVALIDS output. A flush can be initiated by the flush control bits in ETF_FFCR, or requested by the ATB master port.

0: No flush in progress

1: Flush in progress

ETF formatter and flush control register (ETF_FFCR)

Address offset: 0x304

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.DRAIN
BUF
STPON
TRGEV
STOPO
NFL
Res.TRIGO
NFL
TRGO
NTRGE
V
TRGO
NTRGI
N
Res.FLUSH
MAN
FONTR
GEV
FONFL
IN
Res.Res.ENTIENFT
rwrwrwrwrwrwrwrwrwrwrw

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

Bit 14 DRAINBUF : Drain buffer

This bit is used to enable draining of the trace data through the ATB master interface after the formatter has stopped. This is useful in circular-buffer mode to capture trace data in the trace memory, and then to drain the captured trace through the ATB master interface.

Writing a one to this bit when in stopped state starts the drain of the contents of the trace buffer through the ATB master interface. This bit always reads as 0. READY in ETF_STS goes low while the drain is in progress.

This bit is functional only when the ETF is in circular-buffer mode and formatting is enabled (if ENFT = 1 in ETF_FFCR). Setting this bit when the ETF is in any other mode, or when not in stopped state, results in unpredictable behavior.

When trace capture is complete in circular-buffer mode, all of the captured trace must be retrieved from the trace memory through the same mechanism, either read trace data out through ETF_RRD reads, or drain trace data by setting the DRAINBUF bit.

Setting DRAINBUF after some of the captured trace has been read out through ETF_RRD results in an unpredictable behavior.

Bit 13 STPONTRGEV : Stop on trigger event

0: No effect

1: Stop trace capture when a trigger event occurs.

Note: Enabling the ETF in software- or hardware-FIFO mode with this bit set, results in an unpredictable behavior.

Bit 12 STOPONFL : Stop on flush

0: No effect

1: Stop trace capture when the flush is complete.

If a flush is initiated by the ATB master interface, its completion does not lead to a formatter stop, regardless of the value programmed in this bit.

Bit 11 Reserved, must be kept at reset value.

Bit 10 TRIGONFL : Trigger on flush

0: No effect

1: Indicate a trigger in the trace stream when the flush is complete.

If ENFT and ENTI are both cleared in ETF_FFCR, this bit is ignored and no trigger is inserted into the trace stream.

If a flush is initiated by the ATB master interface, its completion does not lead to a trigger indication regardless of the value programmed in this bit.

Bit 9 TRGONTRGEV : Trigger on trigger event

0: No effect

1: Indicate a trigger in the trace stream when trigger event occurs.

If ENFT and ENTI are both cleared in ETF_FFCR, this bit is ignored and no trigger is inserted into the trace stream.

Note: This bit is not supported in software- or hardware-FIFO mode.

Bit 8 TRGONTRGIN : Trigger on trigger in

0: No effect

1: Indicate a trigger in the trace stream when a rising edge is detected on the TRIGIN input.

If ENFT and ENTI are both cleared in ETF_FFCR, this bit is ignored and no trigger is inserted into the trace stream.

Bit 7 Reserved, must be kept at reset value.

Bit 6 FLUSHMAN : Manual flush

0: No effect

1: Flush the trace FIFO and pipeline.

This bit is cleared automatically when the flush completes. If TCEN = 0 in ETF_CTL, writes to this bit are ignored.

Bit 5 FONTRGEV : flush on trigger event

0: no effect

1: Flushes the trace FIFO and pipeline if a trigger event occurs.

Note: This bit is not supported in software- or hardware-FIFO mode. If STPONTRGEV is set in this register, this bit is ignored.

Bit 4 FONFLIN : Flush on flush in

0: No effect

1: Flush the trace FIFO and pipeline when a rising edge is detected on FLUSHIN input.

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

Bit 1 ENTI : Enable trigger insertion

Setting this bit enables the insertion of triggers in the formatted trace stream. A trigger is indicated by inserting one byte of data 0x00 with ATID = 0x7D in the trace stream. Trigger indication on the trace stream is additionally controlled by TRIGONFL, TRGONTRGEV, and TRGONTRGIN in ETF_FFCR. This bit can only be changed when READY = 1, and TCEN = 0. This bit takes effect only when ENFT = 1 in this register. If ENTI bit is set to high when ENFT = 0, it results in formatting being enabled.

Bit 0 ENFT : Enable formatting

0: Formatting is disabled. Incoming trace data are assumed to be from a single trace source.

1: Formatting is enabled.

If multiple ATIDs are received by the ETF when the trace capture is enabled and the formatter is disabled, trace data are interleaved. Disabling of formatting is supported only in circular-buffer mode. If the ETF is enabled in a mode other than circular-buffer mode with ENFT = 0, the formatting is enabled. If the ENTI bit is set to high when ENFT = 0, the formatting is enabled.

Note: This bit is ignored when in disabled state.

ETF periodic synchronization counter register (ETF_PSCR)

Address offset: 0x308

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.PSCOUNT[4:0]
rwrwrwrwrw

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

Bits 4:0 PSCOUNT[4:0] : Synchronization counter reload value

This bitfield determines the reload value of the synchronization counter. The reload value takes effect the next time the counter reaches 0. Reads from this register return the reload value programmed into this register. This register is set to 0xA on reset, corresponding to a synchronization period of 1024 bytes.

0x0: Synchronization disabled

0x7-0x1B: Synchronization period is \( 2^{\text{PSCOUNT}} \) bytes.

Others: Reserved

ETF claim tag set register (ETF_CLAIMSET)

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 bit set

Write:

0000: No effect

xxx1: Set bit 0.

xx1x: Set bit 1.

x1xx: Set bit 2.

1xxx: Set bit 3.

Read:

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

ETF claim tag clear register (ETF_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] : Claim tag bit reset

Write:

0000: No effect

xxx1: Clear bit 0.

xx1x: Clear bit 1.

x1xx: Clear bit 2.

1xxx: Clear bit 3.

Read: Return current value of claim tag.

ETF lock access register (ETF_LAR)

Address offset: 0xFB0

Reset value: 0xFFFF XXXX

31302928272625242322212019181716
ACCESS_W[31:16]
wwwwwwwwwwwwwwww
1514131211109876543210
ACCESS_W[15:0]
wwwwwwwwwwwwwwww

Bits 31:0 ACCESS_W[31:0] : ETF register write access enable

This bitfield enables write access to some ETF registers by the processor core (debuggers do not need to unlock the component).

0xC5ACCE55: Enable write access.

Other values: Disable write access.

ETF lock status register (ETF_LSR)

Address offset: 0xFB4

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.LOCKTYPELOCKGRANTLOCKEXIST
rrr

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

Bit 2 LOCKTYPE : ETF_LAR register size

This bit indicates the ETF_LAR size.

0: 32-bit

Bit 1 LOCKGRANT : Current lock status

This bit is always read as 0 by an external debugger.

0: Write access is permitted.

1: Write access is blocked. Only reads are permitted.

Bit 0 LOCKEXIST : Lock control existence

This bit indicates whether a lock control mechanism exists. This bit is always read as 0 by an external debugger.

0: No lock-control mechanism exists.

1: A lock-control mechanism is implemented.

ETF authentication status register (ETF_AUTHSTAT)

Address offset: 0xFB8

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.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

0x0: Not implemented

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

0x0: Not implemented

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

0x0: Not implemented

ETF device configuration register (ETF_DEVID)

Address offset: 0xFC8

Reset value: 0x0000 0380

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.MEMWIDTH[2:0]CONFIGTYP[1:0]CLKSC
HEM
ATBINPORTCNT[4:0]
rrrrrrrrrrr

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

Bits 10:8 MEMWIDTH[2:0] : Memory interface data bus width

0x3: 64 bits (corresponds to 32-bit ATB data)

Bits 7:6 CONFIGTYP[1:0] : Configuration type of component (ETB, ETR, or ETF)

0x2: ETF

Bit 5 CLKSCHEM : RAM clocking scheme (synchronous or asynchronous)
0x0: Synchronous

Bits 4:0 ATBINPORTCNT[4:0] : Number/type of ATB input port multiplexing
0x0: None

ETF device type identifier register (ETF_DEVTYPE)

Address offset: 0xFCC

Reset value: 0x0000 0032

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
0x3: Capture trace data from the ATB slave interface into the RAM that can be drained through the ATB master interface.

Bits 3:0 MAJORTYPE[3:0] : Major classification
0x2: Component is a trace link because it has an ATB master interface through which trace data can be drained out in hardware-FIFO mode.

ETF CoreSight peripheral identity register 4 (ETF_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: Register file occupies a single 4-Kbyte region.

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

ETF CoreSight peripheral identity register 0 (ETF_PIDR0)

Address offset: 0xFE0

Reset value: 0x0000 0061

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]

0x61: ETF part number

ETF CoreSight peripheral identity register 1 (ETF_PIDR1)

Address offset: 0xFE4

Reset value: 0x0000 00B9

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]

0x9: ETF part number

ETF CoreSight peripheral identity register 2 (ETF_PIDR2)

Address offset: 0xFE8

Reset value: 0x0000 001F

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

0x1: r0p1

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

ETF CoreSight peripheral identity register 3 (ETF_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

ETF CoreSight component identity register 0 (ETF_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

ETF CoreSight peripheral identity register 1 (ETF_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

ETF CoreSight component identity register 2 (ETF_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

ETF CoreSight component identity register 3 (ETF_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

ETF register map

Table 891. ETF register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x004ETF_RSZRes.RSZ[30:0]
Reset value0000000000000000000010000000000
0x00CETF_STSRes.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.EMPTYFTEMPTYREADYTRIGDFULL
Reset value11100
0x010ETF_RRDRRD[31:0]
Reset valueXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0x014ETF_RRPRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.RRP[12:0]
Reset value0000000000000
0x018ETF_RWPRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.RWP[12:0]
Reset value0000000000000
0x01CETF_TRGRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TRG[10:0]
Reset value00000000000
0x020ETF_CTLRes.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.TCEN
Reset value0
0x024ETF_RWDRWD[31:0]
Reset valueXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0x028ETF_MODERes.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.MODE [1:0]
Reset value00
0x02CETF_LBUFLVLRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.LBUFLEVEL[11:0]
Reset value000000000000
0x030ETF_CBUFLVLRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CBUFLEVEL[11:0]
Reset value000000000000
0x034ETF_BUFWMRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.BUFWM[10:0]
Reset value00000000000
0x300ETF_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.Res.Res.FTSTOPPEDFLINPROG
Reset value10

Table 891. ETF register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x304ETF_FFCRRes.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.Res.Res.
Reset value00000000000000
0x308ETF_PSCRRes.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.Res.
Reset value0101
0x30C-0xF9CReservedReserved
0xFA0ETF_CLAIMSETRes.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.Res.
Reset value1111
0xFA4ETF_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.Res.Res.Res.
Reset value0000
0xFB0ETF_LARACCESS_W[31:0]
Reset valueXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0xFB4ETF_LSRRes.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.Res.
Reset value0111
0xFB8ETF_AUTHSTATRes.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.Res.
Reset value0000
0xFC8ETF_DEVIDRes.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.Res.
Reset value0111000000
0xFD0ETF_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.Res.Res.Res.Res.Res.
Reset value0011
0xFD0ETF_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.Res.Res.Res.Res.Res.
Reset value0000
0xFD4-0xFDCReservedReserved

Table 891. ETF register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFE0ETF_PIDR0Res.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 value011000001
0xFE4ETF_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 value101111001
0xFE8ETF_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 value000011101
0xFECETF_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 value000000000
0xFF0ETF_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 value000001101
0xFF4ETF_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 value100010000
0xFF8ETF_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 value000000101
0xFFCETF_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 value101110001

78.12.10 Embedded trace router (ETR)

The ETR allows trace data from the Arm trace bus to be sent to external memory, using a DMA scatter/gather interface over an AXI bus.

The ETR also supports programmable burst options for an optimum efficiency of the system interconnect and memory controller. Trace capture can be intrusive to system performance, because less memory is available to the rest of the system, and because the bandwidth must be shared between the ETR and regular system functions. However, the depth of trace capture available is likely to be much larger than available when storing in the ETF and a trace port is not required. Reading of the AXI based trace buffer can either be done directly over the AXI from a normal bus master or through the ETR as if it is an ETB.

The ETR is configured at design time, but some registers accessible through its programming interface allow a few parameters to be modified. In particular, the following:

From a security perspective, the ETR is associated with a RIMU that controls its master access to the interconnect. Refer to Section 6: Resource isolation framework security controller (RIFSC) for more details on the RIMU.

The ETR is a configuration of the CoreSight trace memory controller (TMC) component. It allows trace generated by the Cortex-Mxx core to be stored in a buffer in the on-chip system RAM. The ETR implements a 64-bit AXI bus master together with read and write pointers to manage the buffer.

The ETR supports programmable burst options for an optimum efficiency of the system interconnect and memory controller. Trace capture can be intrusive to system performance, because less memory is available to the rest of the system, and because the bandwidth must be shared between the ETR and regular system functions. However, the depth of trace capture available is likely to be much larger than available when storing in the ETF and a trace port is not required. Reading of the AXI based trace buffer can either be done directly over the AXI from a normal bus master or through the ETR as if it is an ETB.

The ETR is configured at design time, but some registers accessible through its programming interface allow a few parameters to be modified. In particular, the following:

From a security perspective, the ETR is associated with a RIMU that controls its master access to the interconnect. Refer to the Resource isolation framework chapter for more details on the RIMU.

The following subsections give an overview of the TMC configured as an ETR. For more information on the TMC, refer to the Arm CoreSight Trace Memory Controller Technical Reference Manual [3] .

ETR mode

Two types of buffer are supported (selected in ETR_MODE):

The debugger or the processor can read the buffer via ETF_RRD that is accessible over the system APB-D.

Reading via ETR_RRD maintains the read and write pointers, allowing the ETR to keep track of the unread data remaining in the buffer, and manage the FULL/EMPTY flags correctly. The write bandwidth is greater than the read bandwidth, so filtering may be applied to the trace generation to avoid losing trace packets.

The buffer can be read directly from the SRAM. This does not affect the read and write pointers, so must be done when trace has stopped. After reading the contents of the buffer, it must be disabled to reset the pointers to the initial (empty) state.

ETR state machine

The ETR can be moved to any one of these states:

The state transition diagram is shown in the figure below.

Figure 1085. ETR state transition diagram

ETR state transition diagram showing five states: Disabled (READY = 1), Running (READY = 0), Disabling (READY = 0), Stopping (READY = 0), and Stopped (READY = 1). Transitions are controlled by TCEN and Stop events.
stateDiagram-v2
    [*] --> Disabled
    Disabled --> Running : TCEN = 1
    Running --> Disabling : TCEN = 0
    Running --> Stopping : Stop event
    Disabling --> Disabled
    Disabling --> Stopping : TCEN = 0
    Stopping --> Stopped
    Stopped --> Disabled : TCEN = 0

The diagram illustrates the state transitions of the ETR state machine. It consists of five states represented by ovals: Disabled (READY = 1), Running (READY = 0), Disabling (READY = 0), Stopping (READY = 0), and Stopped (READY = 1). Transitions are as follows: an arrow from the initial state to Disabled ; a solid arrow from Disabled to Running labeled TCEN = 1 ; a solid arrow from Running to Disabling labeled TCEN = 0 ; a solid arrow from Running to Stopping labeled Stop event ; a solid arrow from Disabling to Disabled ; a dashed arrow from Disabling to Stopping labeled TCEN = 0 ; a solid arrow from Stopping to Stopped ; and a large curved solid arrow from Stopped to Disabled labeled TCEN = 0 . The text MSV70444V1 is in the bottom right corner.

ETR state transition diagram showing five states: Disabled (READY = 1), Running (READY = 0), Disabling (READY = 0), Stopping (READY = 0), and Stopped (READY = 1). Transitions are controlled by TCEN and Stop events.

Scatter-gather operation

The trace buffer can be implemented as one continuous memory with a single base address (ETR_AXICTL.SGMODE = 0), or as multiple 4-Kbyte sections of RAM, in scatter-gather mode (ETR_AXICTL.SGMODE = 1). In the latter case, a linked list of page tables defines the base address of each section. The ETR_DBALO register is programmed with the base address of the buffer, in normal mode. In scatter-gather mode it contains the address of the first entry in the first page table.

The size of page tables is up to 4 Kbytes. Each 32-bit entry has the following format:

Table 892. ETR scatter-gather page format

Bit rangeContentDescription
Bits 31:4Address[39:12]Base address of a 4-Kbyte section of RAM
Bits 3:200Not used
Bits 1:000Reserved
01Entry points to the last 4-Kbyte section of the trace buffer
10Entry points to a 4-Kbyte section of the trace buffer
11Entry points to another page table

Note: Trace-buffer addresses are 40-bit wide. However, only 32-bit addressing is used, and the 8 most significant bits are ignored.

The figure below illustrates a scatter-gather operation.

Figure 1086. Scatter-gather operation

Diagram illustrating the scatter-gather operation. It shows the ETR_DBALO register pointing to the base address of Page table PT0. Page table PT0 contains entries for PT0 section 0, 1, and X base addresses, and a link entry pointing to Page table PT1. Page table PT1 contains entries for PT1 section 0 and Y base addresses, with the last entry pointing to the final 4-Kbyte section. The diagram shows the mapping of these sections into the address space.

The diagram illustrates the scatter-gather operation. The ETR_DBALO register contains the PT0 base address, which points to Page table PT0. Page table PT0 contains entries for PT0 section 0 base address, PT0 section 1 base address, PT0 section X base address, and a link entry pointing to Page table PT1. Page table PT1 contains entries for PT1 section 0 base address and PT1 section Y base address, with the last entry pointing to the final 4-Kbyte section. The diagram shows the mapping of these sections into the address space.

Page TableEntryADDRESS[39:12]Entry typeAddress space
Page table PT0PT0 section 0 base addressb31...b40 0 104-Kbyte section
PT0 section 1 base addressb31...b40 0 104-Kbyte section
PT0 section X base addressb31...b40 0 104-Kbyte section
Link (PT1 base address)b31...b40 0 11
Page table PT1PT1 section 0 base addressb31...b40 0 104-Kbyte section
PT1 section Y base addressb31...b40 0 014-Kbyte section
Last entryb31...b40 0 014-Kbyte section

MSv70445V1

Diagram illustrating the scatter-gather operation. It shows the ETR_DBALO register pointing to the base address of Page table PT0. Page table PT0 contains entries for PT0 section 0, 1, and X base addresses, and a link entry pointing to Page table PT1. Page table PT1 contains entries for PT1 section 0 and Y base addresses, with the last entry pointing to the final 4-Kbyte section. The diagram shows the mapping of these sections into the address space.

Trigger and flush events

Two input signals (trigin and flushin) come from the CTI and can be asserted by software or by a cross trigger coming from another CoreSight component via the cross trigger matrix.

When trigin is asserted, or when a trigger packet is detected on the ATB interface (ATID = 0x7D), a counter is loaded with the value in ETR_TRG, and starts decrementing by one each time a trace word is written into the trace buffer. When the counter reaches 0, a trigger event is generated (in circular-buffer mode only). The trigger event can be programmed in ETR_FFCR:

A trigger packet can also be inserted in the trace stream at the moment a rising edge is detected on trigin.

When flushin is asserted, or when the FLUSHMAN = 1 in ETR_FFCR, the same actions can be programmed to occur as for the trigger event.

Authentication

The ETR behaviour is affected by the authentication signals dbgen and spiden.

If dbgen is low, no AXI accesses are possible. Any attempted AXI access behaves as if an immediate error response had been returned, and sets MEMERR in ETR_STS. No transactions are issued on the AXI master port.

If spiden is low, no secure AXI accesses are possible. Any attempted AXI access while PROTCTRLBIT[1] is cleared in ETR_AXICTL behaves as if an immediate error response has been returned, and sets MEMERR in ETR_STS. No transactions are issued on the AXI master port.

78.12.11 ETR registers

The register file base address for the ETR is defined in Table 880 .

ETR RAM size register (ETR_RSZ)

Address offset: 0x004

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.RSZ[30:16]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
RSZ[15:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bit 31 Reserved, must be kept at reset value.

Bits 30:0 RSZ[30:0] : RAM size.

The number of 32-bit words of RAM allocated to the buffer. If scatter gather operation is programmed, this register is ignored.

The maximum size is 4 Gbytes, the minimum size is 512 bytes in software-FIFO mode or 4 bytes in circular-buffer mode.

ETR status register (ETR_STS)

Address offset: 0x00C

Reset value: 0x0000 001C

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.MEME
RR
EMPTYFTEMP
TY
READYTRIGDFULL
rrrrrr

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

Bit 5 MEMERR : AXI bus error

This bit indicates that an error has occurred on the AXI master interface. The error may be because of an error response from an AXI slave or because of the status of the authentication interface inputs prevents a transaction from taking place.

0: No error

1: Error

Bit 4 EMPTY : Trace buffer empty

This bit is valid only when TCEN in ETR_CTL is high. This bit reads as 0 when TCEN is low.

0: Trace buffer contains data.

1: Trace buffer is empty.

Note: Empty trace buffer does not mean that the ETR pipeline is empty. The latter is indicated by FTEMPY.

Bit 3 FTEMPY : Formatter empty

This bit is set when a trace capture has stopped, and all internal pipelines and buffers have been drained. The acqcomp output reflects the value of this bit.

Bit 2 READY : ETR ready

This bit is set when a trace capture has stopped, and all internal pipelines and buffers have been drained (stopped or disabled state), and the AXI interface is not busy.

Bit 1 TRIGD : Triggered

This bit is set when a trace capture is in progress, and the TMC has detected a trigger event. This bit is cleared when leaving disabled state. This bit is operational only in circular-buffer mode. In all other modes, this bit is always low.

Bit 0 FULL : Trace buffer full

In circular-buffer mode, this flag is set when the RAM write pointer wraps around the top of the buffer, and remains set until TCEN of ETR_CTL is cleared and set.

In software-FIFO mode, this flag indicates that the current space in the trace memory is less than or equal to the value programmed in ETR_BUFWM (CBUFLVL \( \geq \) RSZ - BUFWM).

If the TMC is programmed for scatter-gather operation, this bit indicates whether the trace memory is currently full regardless of the value programmed in ETR_BUFWM.

This bit is cleared when leaving disabled state. The FULL output reflects the value of this bit.

ETR RAM read data register (ETR_RRD)

Address offset: 0x010

Reset value: 0xXXXX XXXX

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

Bits 31:0 RRD[31:0] : RAM read data

Circular-buffer mode:

When in stopped state and the buffer is not empty, reading this register returns the next word of data from the trace buffer (two reads are required to retrieve one 64-bit word of data).

When the whole trace buffer has been read, EMPTY is set in ETR_STS, and subsequent reads return 0xFFFFFFFF. Reading this register when not in stopped state returns 0xFFFFFFFF.

Software-FIFO mode:

Reading this register returns data from the FIFO. If this register is read when the FIFO is empty, 0xFFFFFFFF is returned.

If MEMERR is set in ETR_STS, reading this register returns an error response on the APB bus.

ETR RAM read pointer register (ETR_RRP)

Address offset: 0x014

Reset value: 0x0000 0000

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

Bits 31:0 RRP[31:0] : RAM read pointer

This register contains the value of the read pointer that is used to read entries from the trace memory over the APB interface via the ETR_RRD register. The pointer can be programmed with a byte address, 64-bit aligned (bits 0 to 2 must be 0). The pointer is incremented by eight each time a 64-bit buffer entry has been written. When the pointer reaches its maximum value, it wraps around.

This register can be written to only while in disabled state, to set the value of the trace memory address from which data are fetched on a subsequent RRD read. It can be read in disabled state, in stopped state in circular-buffer and software-FIFO modes, and also in running and stopping states in software-FIFO mode.

ETR RAM write pointer register (ETR_RWP)

Address offset: 0x018

Reset value: 0x0000 0000

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

Bits 31:0 RWP[31:0] : RAM write pointer

This register contains the value of the write pointer that is used to write entries into the trace memory. The pointer can be programmed with a byte address, 64-bit aligned (that is, bits 0 to 2 should be 0). The pointer is incremented by 8 each time a new entry is written. When the pointer reaches its maximum value, it wraps around.

This register can be written to only while in Disabled state. It can be read in Disabled state, in Stopped state in circular-buffer and software-FIFO modes, and also in Running and Stopping states in software-FIFO mode.

ETR trigger counter register (ETR_TRG)

Address offset: 0x01C

Reset value: 0x0000 0000

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

Bits 31:0 TRG[31:0] : Trigger counter

In circular-buffer mode, this field specifies the number of 32-bit words to capture in the trace buffer following the detection of either a rising edge on the TRIGIN input or a trigger packet in the incoming trace stream, ATID = 0x7D. On capturing the specified number of data words, a trigger event occurs. The effect of a trigger event on the ETR behavior is controlled by the ETR_FFCR register.

The number of 32-bit words written into the trace buffer following the trigger is the value stored in this register, plus one. This register is ignored when the ETR is in software-FIFO mode. When the trigger counter starts counting, any additional triggers, either on TRIGIN or in the incoming trace stream, are ignored until the counter reaches 0. When the trigger counter has reached 0, it remains at 0 until it is reprogrammed with a write to this register.

This register is cleared when READY goes high, so that the state of the counter when trace capture has stopped does not affect a subsequent trace capture session. Writing to this register when not in disabled state results in unpredictable behavior.

A read access to this register is permitted at any time when in disabled state, or in circular-buffer mode. A read access returns the current value of the trigger counter.

ETR control register (ETR_CTL)

Address offset: 0x020

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.TCEN
rw

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

Bit 0 TCEN : Trace capture enable

When writing:

0: Disables trace capture (moves from running, stopping or stopped state into disabling or disabled state).
1: Enables trace capture (moves from disabled state to running state).

When reading, this bit is low when in disabling or disabled states, and high otherwise.

ETR RAM write data register (ETR_RWD)

Address offset: 0x024

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
RWD[31:16]
wwwwwwwwwwwwwwww
1514131211109876543210
RWD[15:0]
wwwwwwwwwwwwwwww
Bits 31:0 RWD[31:0] : RAM write data

When in disabled state, a write to this register stores data at the location pointed to by the ETR_RWP. Writes to this register when not in disabled state are ignored. When a full memory width (64 bits) of data is written, data are written to memory and the RAM write pointer is incremented to the next memory word.

This register is used for test purposes.

ETR mode register (ETR_MODE)

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.Res.Res.Res.Res.Res.Res.MODE[1:0]
rwrw

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

Bits 1:0 MODE[1:0] : Operation mode

0x0: Circular-buffer mode

In this mode, trace data are captured in the trace buffer memory starting from the location pointed to by the write pointer register. Even when the trace buffer is full, incoming trace data continue to be overwritten into the trace memory until a stop condition has occurred.

0x1: Software-FIFO mode

In this mode, the trace buffer is a FIFO that can be read through ETR_RRD while a trace is being captured. Trace data are captured in the trace buffer memory and when full, the incoming trace stream is stalled.

Others: Reserved

ETR latched buffer fill level register (ETR_LBUFLVL)

Address offset: 0x02C

Reset value: 0x0000 0000

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

Bits 31:0 LBUFLEVEL[31:0] : Latched buffer fill level

Reading this register returns the maximum fill level of the trace buffer in 32-bit words since this register was last read. Reading this register also results in its contents being updated to the current fill level.

When entering disabled state, this register retains its last value. While in disabled state, reads from this register do not affect its value. When exiting disabled state, this register is cleared.

This register does not apply when the ETR is programmed for scatter/gather operation.

In this case, reading this register returns 0x00000000.

This register is used for performance analysis of the trace system.

ETR current buffer fill level register (ETR_CBUFLVL)

Address offset: 0x030

Reset value: 0x0000 0000

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

Bits 31:0 CBUFLEVEL[31:0] : Current buffer fill level

Reading this register returns the current fill level of the trace buffer in 32-bit words.

This register does not apply when the ETR is programmed for scatter/gather operation.

In this case, reading this register returns 0x00000000.

This register is cleared when TCEN is low.

ETR buffer level watermark register (ETR_BUFWM)

Address offset: 0x034

Reset value: 0x0000 0000

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

Bits 31:0 BUFWM[31:0] : Buffer level watermark

The value programmed in this register indicates the required threshold vacancy level of the trace memory in 32-bit words. When the space in the FIFO is less than or equal to this value ( \( CBUFLEVEL \geq RSZ - BUFWM \) ), the full output is pulled high and FULL is set in ETR_STS.

This register is used only in software-FIFO mode. In circular-buffer mode, this functionality can be obtained by programming ETR_RWP to the required vacancy trigger level, so that when the pointer wraps around, the FULL bit is set indicating that the vacancy level has fallen below the required level.

The maximum value that can be written into this register is RAM size (RSZ) - 1. In this case, the full output is asserted after the first 32-bit word is written to the buffer.

Writing to this register other than when in disabled state results in unpredictable behavior.

ETR AXI control register (ETR_AXICTL)

Address offset: 0x110

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.WRBURSTLEN[3:0]SGMO
DE
Res.CACHCTRLBIT[3:0]PROTCTRLBIT[1:0]
rwrwrwrwrwrwrwrwrwrwrw

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

Bits 11:8 WRBURSTLEN[3:0] : Write burst length

This field indicates the maximum number of data transfers that can occur within each burst initiated by the ETR on the AXI master interface. The write burst initiated on the AXI can be of a smaller length that the programmed value in the case when the formatter has stopped because of a stop condition occurred. Programming this field to a burst length value greater than the write buffer depth, results in a burst length that is equal to the write buffer depth.

The burst length programmed must be compatible with the trace buffer size and the AXI data width: the total number of bytes of data transferred in a burst is not greater than the trace buffer size or, if scatter-gather operation is enabled, is not greater than 4 Kbytes.

Programming an incompatible burst length results in an unpredictable behavior.

It is recommended that this value is set to no more than half the write buffer depth. It is also recommended that this value is set to enable an AXI burst of at least one frame of trace data.

0x0: one data transfer per burst (default)

0x1-0xF: maximum of (WRBURSTLEN + 1) data transfers per burst

Bit 7 SGMODE : Scatter-gather mode

This bit indicates whether trace memory is accessed as a single buffer in system memory or as a linked-list based scatter-gather memory. This bit is ignored when in disabled state.

0: Trace memory is a single contiguous block of system memory.

1: Trace memory is spread over multiple blocks of system memory based on a linked-list mechanism.

Bit 6 Reserved, must be kept at reset value.

Bits 5:2 CACHECTRLBIT[3:0] : Cache control

These bits control the value driven on ARCACHEM[3:0] or AWCACHEM[3:0] signals on the AXI master interface when performing AXI transfers.

xxx0: Non-bufferable

xxx1: Bufferable

000x: Non-cacheable

001x: Cacheable, no allocate on read, no allocate on write

011x: Cacheable, allocate on read, no allocate on write

101x: Cacheable, no allocate on read, allocate on write

111x: Cacheable, allocate on read, allocate on write

Others: Reserved

Bits 1:0 PROTCTRLBIT[1:0] : Protection control bits.

These bits control the value driven on ARPROTM[3:0] or AWPROTM[3:0] signals on the AXI master interface when performing AXI transfers.

x0: Normal access

x1: Privileged access

0x: Secure access

1x: Nonsecure access

ETR data buffer address low register (ETR_DBALO)

Address offset: 0x118

Reset value: 0x0000 0000

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

Bits 31:0 BUFADDRLO[31:0] : Buffer address low

If SGMODE = 0 in ETR_AXICTL, the content of this register is the base address of the trace buffer in system memory.

If SGMODE = 1, the content of this register is the address of first page table entry in the linked list.

This register can only be programmed in disabled state.

ETR formatter and flush status register (ETR_FFSR)

Address offset: 0x300

Reset value: 0x0000 0002

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.FTSTO
PPED
r
FLINP
ROG
r

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

Bit 1 FTSTOPPED : Formatter stopped

This bit behaves in the same way as FTEMPTY in ETR_STS.

Bit 0 FLINPROG : Flush in progress

This bit indicates whether a flush on the ATB slave port is in progress. It reflects the status of the AFVALIDS output. A flush can be initiated by the flush control bits in ETR_FFCR.

0: No flush in progress

1: Flush in progress

ETR formatter and flush control register (ETR_FFCR)

Address offset: 0x304

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.STPON
TRGEV
STOP0
NFL
Res.TRIGO
NFL
TRGO
NTRGE
V
TRGO
NTRGI
N
Res.FLUSH
MAN
FONTR
GEV
FONFL
IN
Res.Res.ENTIENFT
rwrwrwrwrwrwrwrwrwrw

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

Bit 13 STPONTRGEV : Stop on trigger event

0: No effect

1: Stops trace capture when a trigger event occurs.

Enabling the ETR in software-FIFO mode with this bit set results in unpredictable behavior.

Bit 12 STOPONFL : Stop on flush

0: No effect

1: Stops trace capture when flush is completed.

Bit 11 Reserved, must be kept at reset value.

Bit 10 TRIGONFL : Trigger on flush

0: No effect

1: Indicates a trigger in the trace stream when flush is completed.

If ENFT and ENTI are clear, this bit is ignored and no trigger is inserted into the trace stream.

Bit 9 TRGONTRGEV : Trigger on trigger event

0: No effect

1: Indicates a trigger in the trace stream when a trigger event occurs.

If ENFT and ENTI are both clear, this bit is ignored and no trigger is inserted into the trace stream. This bit is not supported in software-FIFO mode.

Bit 8 TRGONTRGIN : Trigger on trigger in

0: No effect

1: Indicates a trigger in the trace stream when a rising edge is detected on the TRIGIN input.

If ENFT and ENTI are clear, this bit is ignored and no trigger is inserted into the trace stream.

Bit 7 Reserved, must be kept at reset value.

Bit 6 FLUSHMAN : Manual flush

0: No effect

1: Flushes the trace FIFO and pipeline.

This bit is cleared automatically when the flush is complete. If TCEN = 0 in ETR_CTL, writes to this bit are ignored.

Bit 5 FONTTRGEV : Flush on trigger event

0: No effect

1: Flushes the trace FIFO and pipeline if a trigger event occurs.

This bit is not supported in software-FIFO mode. If STPONTRGEV is set, this bit is ignored.

Bit 4 FONFLIN : Flush on flush in

0: No effect

1: Flushes the trace FIFO and pipeline when a rising edge is detected on the FLUSHIN input.

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

Bit 1 ENTI : Enable trigger insertion

Setting this bit enables the insertion of triggers in the formatted trace stream. A trigger is indicated by inserting one byte of data 0x00 with ATID = 0x7D in the trace stream. Trigger indication on the trace stream is further controlled by TRIGONFL, TRGONTRGEV, and TRGONTRGIN in FFCR. This bit can be changed only when READY is high and TCEN is low. It takes effect only when ENFT in this register is set. If ENTI is set high when ENFT is low, it results in formatting being enabled.

Bit 0 ENFT : Enable formatting

0: Formatting is disabled. Incoming trace data are assumed to be from a single trace source.

1: Formatting is enabled.

If multiple ATIDs are received by the ETR when trace capture is enabled and the formatter is disabled, an interleaving of trace data occurs. Disabling of formatting is supported only in circular-buffer mode. If the ETR is enabled in a mode other than circular-buffer mode with ENFT low, then formatting is enabled. If ENTI bit is set to high when ENFT is low, formatting is enabled.

This bit is ignored when in disabled state.

ETR periodic synchronization counter register (ETR_PSCR)

Address offset: 0x308

Reset value: 0x0000 000A

31302928272625242322212019181716
ResResResResResResResResResResResResResResResRes
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PSCOUNT[4:0]
rwrwrwrwrw

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

Bits 4:0 PSCOUNT[4:0] : Synchronization counter reload value

Determines the reload value of the synchronization counter. The reload value takes effect the next time the counter reaches 0. Reads from this register return the reload value programmed in this register. This register is set to 0xA on reset, corresponding to a synchronization period of 1024 bytes.

0x0: Synchronization disabled

0x7-0x1B: Synchronization period is \( 2^{\text{PSCOUNT}} \) bytes

Others: Reserved

ETR claim tag set register (ETR_CLAIMSET)

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] : Set claim tag bits

Write:

0000: No effect

xxx1: Set bit 0.

xx1x: Set bit 1.

x1xx: Set bit 2.

1xxx: Set bit 3.

Read:

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

ETR claim tag clear register (ETR_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] : Reset claim tag bits

Write:

0000: No effect

xxx1: Clear bit 0.

xx1x: Clear bit 1.

x1xx: Clear bit 2.

1xxx: Clear bit 3.

Read: Returns current value of claim tag.

ETR lock access register (ETR_LAR)

Address offset: 0xFB0

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
ACCESS_W[31:16]
wwwwwwwwwwwwwwww
1514131211109876543210
ACCESS_W[15:0]
wwwwwwwwwwwwwwww

Bits 31:0 ACCESS_W[31:0] : ETR register access enable

Enables write access to all ETR registers by the processor core (debuggers do not need to unlock the component)

0xC5ACCE55: Enable write access.

Other values: Disable write access.

ETR lock status register (ETR_LSR)

Address offset: 0xFB4

Reset value: 0x0000 0003

31302928272625242322212019181716
[Reserved]
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
[Reserved]
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.LOCKTYPELOCKGRANTLOCKEXIST
rrr

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

Bit 2 LOCKTYPE : Size of ETR_LAR register

0: 32 bits

Bit 1 LOCKGRANT : Current status of lock

This bit always returns 0 when read by an external debugger.

0: Write access is permitted.

1: Write access is blocked to all registers except ETR_LAR. Only read access is permitted.

Bit 0 LOCKEXIST : Existence of lock control mechanism

The bit indicates whether a lock control mechanism exists. It always returns 0 when read by an external debugger.

0: No lock control mechanism exists.

1: Lock control mechanism is implemented.

ETR authentication status register (ETR_AUTHSTAT)

Address offset: 0xFB8

Reset value: 0x0000 00XX

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

0x0: Not implemented

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

0x2: Functionality disabled. This return value occurs when spiden = 0 or dbgen = 0.

0x3: Functionality enabled. This return value occurs when spiden = 1 and dbgen = 1.

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

0x0: Not implemented

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

0x2: Functionality disabled. This return value occurs when dbgen = 0.

0x3: Functionality enabled. This return value occurs when dbgen = 1.

ETR device configuration register (ETR_DEVID)

Address offset: 0xFC8

Reset value: 0x0000 2B40

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.WBUF_DEPTH[2:0]MEMWIDTH[2:0]CONFIGTYP[1:0]CLKSC
HEM
ATBINPORTCNT[4:0]
rrrrrrrrrrrrrr

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

Bits 13:11 WBUF_DEPTH[2:0] : Write buffer depth

Indicates, in powers of two, the number of entries in the ETR internal write buffer. Each entry is 32 bits.

0x5: 32 entries

Bits 10:8 MEMWIDTH[2:0] : Memory interface data bus width

0x3: 64 bits

Bits 7:6 CONFIGTYP[1:0] : Configuration type of component (ETB, ETR or ETF)

0x1: ETR

Bit 5 CLKSCHEM : RAM clocking scheme (synchronous or asynchronous)

0: Synchronous

Bits 4:0 ATBINPORTCNT[4:0] : Number/type of ATB input port multiplexing

0x0: None

ETR device type identifier register (ETR_DEVTYPE)

Address offset: 0xFCC

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.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

0x2: Captures the ATB slave interface trace data in RAM which can then be read through an APB interface.

Bits 3:0 MAJORTYPE[3:0] : Major classification

0x1: The component is a trace sink.

ETR CoreSight peripheral identity register 4 (ETR_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: Register file occupies a single 4-Kbyte region.

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

0x4: Arm JEDEC code

ETR CoreSight peripheral identity register 0 (ETR_PIDR0)

Address offset: 0xFE0

Reset value: 0x0000 0061

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 field, bits [7:0]

0x61: ETR part number

ETR CoreSight peripheral identity register 1 (ETR_PIDR1)

Address offset: 0xFE4

Reset value: 0x0000 00B9

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 field, bits [3:0]

0xB: Arm JEDEC code

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

0x9: ETR part number

ETR CoreSight peripheral identity register 2 (ETR_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]
rrrrrrrr

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

1: Designer ID specified by JEDEC

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

0x3: Arm JEDEC code

ETR CoreSight peripheral identity register 3 (ETR_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]

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

ETR CoreSight component identity register 0 (ETR_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]

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

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

0x0D: Common ID value

ETR CoreSight component identity register 1 (ETR_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 field, bits [15:12] - component class

0x9: CoreSight component

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

0x0: Common ID value

ETR CoreSight component identity register 2 (ETR_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 field, bits [23:16]

0x05: Common ID value

ETR CoreSight component identity register 3 (ETR_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 field, bits [31:24]

0xB1: Common ID value

ETR register map

Table 893. ETR register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x004ETR_RSZRSZ[30:0]
Reset value0000000000000000000000000000000
0x008ReservedReserved
0x00CETR_STSRes.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.Res.
Reset value01
0x010ETR_RRDRRD[31:0]
Reset valueXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0x014ETR_RRPRRP[31:0]
Reset value00000000000000000000000000000000
0x018ETR_RWPRWP[31:0]
Reset value00000000000000000000000000000000
0x01CETR_TRGTRG[31:0]
Reset value00000000000000000000000000000000
0x020ETR_CTLRes.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.TCEN
Reset value0
0x024ETR_RWDRWD[31:0]
Reset valueXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0x028ETR_MODERes.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.MODE [1:0]
Reset value0
0x02CETR_LBUFLVLLBUFLVL[31:0]
Reset value00000000000000000000000000000000
0x030ETR_CBUFLVLCBUFLVL[31:0]
Reset value00000000000000000000000000000000
0x034ETR_BUFWMBUFWM[31:0]
Reset value00000000000000000000000000000000
0x038-0x10CReservedReserved

Table 893. ETR register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x110ETR_AXICTLRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.WRBURSTLEN
[3:0]
Res.Res.SGMODERes.Res.CACHECTRLBIT
[3:0]
Res.Res.Res.PROTCOLBIT
[1:0]
Reset value00000000000
0x114ReservedReserved
0x118ETR_DBALOBUFADDRLO[31:0]
Reset value00000000000000000000000000000000
0x11C-
0x2FC
ReservedReserved
0x300ETR_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.Res.Res.Res.FTSTOPPED
FLINPROG
Reset value1 0
0x304ETR_FFCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.STPONTRGEVSTOPONFLRes.TRGONFLTRGONRGEVTRGONTRGINRes.FLUSHMANFONTRGEVFONFLINRes.Res.ENTIENFT
Reset value0000000000
0x308ETR_PSCRRes.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.PSCOUNT[4:0]
Reset value0101 0
0x30C-
0xF9C
ReservedReserved
0xFA0ETR_CLAIMSETRes.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.CLAIMSET
[3:0]
Reset value1 1 1 1
0xFA4ETR_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.Res.Res.CLAIMCLR
[3:0]
Reset value0 0 0 0
0xFA8-
0xFAC
ReservedReserved
0xFB0ETR_LARACCESS_W[31:0]
Reset valueXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0xFB4ETR_LSRRes.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.LOCKTYPE
LOCKGRANT
LOCKEXIST
Reset value0 1 1
0xFB8ETR_AUTHSTATRes.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]Res.Res.SID[1:0]Res.Res.NSNID[1:0]NSID[1:0]
Reset valueXXXXXXXX
0xFBC-
0xFC4
ReservedReserved

Table 893. ETR register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFC8ETR_DEVIDRes.WBUF_DEPTH [2:0]MEMWDTH [2:0]CONFIGTYPE1[1:0]CLKSCHEMATBINPORTCNT [4:0]
Reset value10101101000000
0xFC8ETR_DEVTYPERes.SUBTYPE [3:0]MAJORTYPE [3:0]
Reset value0010000000001
0xFD0ETR_PIDR4Res.SIZE[3:0]JEP106CON [3:0]
Reset value0000010000100
0xFD4-0xFDCReservedReserved
0xFE0ETR_PIDR0Res.PARTNUM[7:0]
Reset value011000001
0xFE4ETR_PIDR1Res.JEP106ID [3:0]PARTNUM [11:8]
Reset value101110001
0xFE8ETR_PIDR2Res.REVISION [3:0]JEDECJEP106ID [6:4]
Reset value00011011
0xFECETR_PIDR3Res.REVAND[3:0]CMOD[3:0]
Reset value0000000000000
0xFF0ETR_CIDR0Res.PREAMBLE[7:0]
Reset value00001101
0xFF4ETR_CIDR1Res.CLASS[3:0]PREAMBLE [11:8]
Reset value1001000000000
0xFF8ETR_CIDR2Res.PREAMBLE[19:12]
Reset value00000101
0xFFCETR_CIDR3Res.PREAMBLE[27:20]
Reset value101100001

78.12.12 Trace port interface unit (TPIU)

The TPIU CoreSight component formats the trace stream and outputs it on the external trace port signals. The TPIU has a single ATB slave port for incoming trace data. The trace port is a synchronous parallel port, comprising a clock output, TRACECLK, and four data outputs, TRACED[3:0]. The trace port width is programmable in the 1 to 4 range. Using a smaller port width reduces the number of test points/connector pins needed, and frees up I/Os for other purposes. This restricts the bandwidth of the trace port, and hence quantity of trace information that can be output in real time. The trace clock must be enabled by setting TRACECLKEN in DBGMCU_CR before a trace is sent to the TPIU.

Trace data are output on TRACED[15:0] synchronously with the rising and falling edges of TRACECLK. TRACECLK is synchronous with tracecklin, at half the frequency.

This means that TRACECLK is asynchronous with respect to the ATB clock.

The asynchronism is handled by a FIFO in the TPIU, which also regulates the flow of data from the ETF. If the trace port bandwidth is not sufficient to handle the amount of trace data, the ETF buffer can overflow, and trace data can be missed. In this case, the tracecklin frequency can be increased, or the port size increased, up to a maximum of four pins, depending on the device package. Alternatively, the ETM can be programmed to filter unnecessary information.

For more information on the trace port interface CoreSight component, refer to the Arm CoreSight SoC-400 Technical Reference Manual [2].

78.12.13 TPIU registers

The register file base address for the TPIU is defined in Table 880: Trace subsystem ROM table .

TPIU supported port size register (TPIU_SUPPSIZE)

Address offset: 0x000

Reset value: 0x0000 0003

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

Bits 31:0 PORTSIZE[31:0] : Trace port size

This bitfield indicates supported trace port sizes, from 1 to 32 pins. Bit n-1 when set indicates that port size n is supported.

0x0000 0003: Port sizes 1 to 4 supported.

TPIU current port size register (TPIU_CURPSIZE)

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

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

TPIU supported trigger modes register (TPIU_SUPTRGM)

Address offset: 0x100

Reset value: 0x0000 011F

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TRGRUNTRIGD
rr
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.TCOUNT8Res.Res.Res.MULT64KMULT256MULT16MULT4MULT2
rrrrrr

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

Bit 17 TRGRUN : Trigger running

0: Trigger has not occurred, or counter is at 0.

1: Trigger has occurred, and counter is not at 0.

Bit 16 TRIGD : Triggered

0: Trigger has not occurred.

1: Trigger has occurred, and counter has reached 0.

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

Bit 8 TCOUNT8 : 8-bit counter register

1: Implemented

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

Bit 4 MULT64K : Multiplying the trigger counter by 65536

1: Supported

Bit 3 MULT256 : Multiplying the trigger counter by 256

1: Supported

Bit 2 MULT16 : Multiplying the trigger counter by 16

1: Supported

Bit 1 MULT4 : Multiplying the trigger counter by 4

1: Supported

Bit 0 MULT2 : Multiplying the trigger counter by 2

1: Supported

TPIU trigger counter value register (TPIU_TRGCNT)

Address offset: 0x104

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.TRIGCOUNT[7:0]
rwrwrwrwrwrwrwrw

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

Bits 7:0 TRIGCOUNT[7:0] : Enable trigger delay indication

This bitfield is used to delay the indication of triggers to any externally connected trace capture or storage devices. This counter is only 8-bit wide, and is intended to be used only with the counter multipliers in the trigger multiplier register (0x108). When a trigger is started, this value, in conjunction with the multiplier, specifies the number of words before the trigger is indicated. When the trigger counter reaches 0, the value written here is reloaded. Writing to this register causes the trigger counter value to reset but does not reset any value on the multiplier. Reading this register returns the preset value, not the current count.

TPIU trigger multiplier register (TPIU_TRGMULT)

Address offset: 0x108

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.MULT6
4K
MULT2
56
MULT1
6
MULT4MULT2
rwrwrwrwrw

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

Bit 4 MULT64K : Multiply the trigger counter by 65536

0: Disabled

1: Enabled

Bit 3 MULT256 : Multiply the trigger counter by 256

0: Disabled

1: Enabled

Bit 2 MULT16 : Multiply the trigger counter by 16

0: Disabled

1: Enabled

Bit 1 MULT4 : Multiply the trigger counter by 4

0: Disabled

1: Enabled

Bit 0 MULT2 : Multiply the trigger counter by 2

0: Disabled

1: Enabled

TPIU supported test patterns/modes register (TPIU_SUPTPM)

Address offset: 0x200

Reset value: 0x0003 000F

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PCONT
EN
PTIME
EN
rr
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PATF0PATA5PATW0PATW1
rrrr

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

Bit 17 PCONTEN : Continuous mode

1: Supported

Bit 16 PTIMEEN : Timed mode

1: Supported

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

Bit 3 PATF0 : FF/00 pattern

This bit indicates whether the FF/00 pattern is supported as output over the trace port.

1: Supported

Bit 2 PATA5 : AA/55 pattern

This bit indicates whether the AA/55 pattern is supported as output over the trace port.

1: Supported

Bit 1 PATW0 : Walking 0 pattern

This bit indicates whether the walking 0 pattern is supported as output over the trace port.

1: Supported

Bit 0 PATW1 : Walking one pattern

This bit indicates whether the walking one pattern is supported as output over the trace port.

1: Supported

TPIU current test pattern/mode register (TPIU_CURTPM)

Address offset: 0x204

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PCONT
EN
PTIME
EN
rwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PATF0PATA5PATW0PATW1
rwrwrwrw

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

Bit 17 PCONTEN : Continuous mode enable

0: Disabled
1: Enabled

Bit 16 PTIMEEN : Timed mode enable

0: Disabled
1: Enabled

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

Bit 3 PATF0 : FF/00 pattern enable

This bit indicates whether the FF/00 pattern is enabled as output over the trace port.
0: Disabled
1: Enabled

Bit 2 PATA5 : AA/55 pattern is enable

This bit indicates whether the AA/55 pattern is enabled as output over the trace port.
0: Disabled
1: Enabled

Bit 1 PATW0 : Walking 0 pattern enable

This bit indicates whether the walking 0 pattern is enabled as output over the trace port.
0: Disabled
1: Enabled

Bit 0 PATW1 : Walking one pattern enable

Indicates whether the walking one pattern is enabled as output over the trace port.
0: Disabled
1: Enabled

TPIU test pattern repeat counter register (TPIU_TPRCR)

Address offset: 0x208

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.PATTCOUNT[7:0]
rwrwrwrwrwrwrwrw

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

Bits 7:0 PATTCOUNT[7:0] : Number of traceclk cycles

The field provides an 8-bit counter value to indicate the number of traceclk cycles for which a pattern runs before it switches to the next pattern.

TPIU formatter and flush status register (TPIU_FFSR)

Address offset: 0x300

Reset value: 0x0000 0002

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.TCPRESENTFTSTOPPEDFLINPROG
rrr

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

Bit 2 TCPPRESENT : TRACECTL output pin availability

This bit indicates whether the optional TRACECTL output pin is available.

0: TRACECTL pin is not present in this device.

Bit 1 FTSTOPPED : Formatter stopped

The formatter has received a stop request signal. Trace data and post-ambles are sent.

Any additional trace data on the ATB interface are ignored.

0: Formatter has not stopped.

1: Formatter has stopped.

Bit 0 FLINPROG : Flush in progress

This bit indicates whether a flush on the ATB slave port is in progress. This bit reflects the status of the AFVALIDS output. A flush can be initiated by the flush control bits in TPIU_FFCR.

0: No flush in progress

1: Flush in progress

TPIU formatter and flush control register (TPIU_FFCR)

Address offset: 0x304

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.STOPTRIGSTOPFLRes.TRIGFLTRIGVTTRIGINRes.FONMANFONTRIGFONFLINRes.Res.ENFCOINTENFTC
rwrwrwrwrwrwrwrwrwrw

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

Bit 13 STOPTRIG : Stop on trigger event

0: No effect

1: Stop formatter when a trigger event occurs.

Bit 12 STOPFL : Stop on flush

0: No effect

1: Stop formatter when flush is completed.

Bit 11 Reserved, must be kept at reset value.

Bit 10 TRIGFL : Trigger on flush

0: No effect

1: Indicate a trigger in the trace stream when flush is completed.

Bit 9 TRIGEV : Trigger on trigger event

0: No effect

1: Indicate a trigger in the trace stream when trigger event occurs.

Bit 8 TRIGIN : Trigger on trigger in

0: No effect

1: Indicate a trigger in the trace stream when the TRIGIN input from the system CTI is asserted.

Bit 7 Reserved, must be kept at reset value.

Bit 6 FONMAN : Manual flush

0: No effect

1: Flush the trace.

Note: This bit is automatically cleared when the flush completes.

Bit 5 FONTRIG : Flush on trigger event

A trigger event occurs when the trigger counter reaches 0, or, if the trigger counter is 0, when the TRIGIN input from the system CTI is high.

0: No effect

1: Flush the trace if a trigger event occurs.

Bit 4 FONFLIN : Flush on flush in

0: No effect

1: Flush the trace if the FLUSHIN input from the system CTI is asserted.

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

Bit 1 ENFCONT : Continuous formatting enable

0: Disabled

1: Enabled

Bit 0 ENFTC : Embedding of triggers in formatted trace

0: Formatting is disabled.

1: Formatting is enabled.

TPIU formatter synchronization counter register (TPIU_FSCR)

Address offset: 0x400

Reset value: 0x0000 0040

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

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

Bits 11:0 CYCCOUNT[11:0] : Effective use of TPAs

This bitfield enables the effective use of different-sized TPAs without wasting large amounts of 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 a synchronization every 65536 bytes (4096 packets x 16 bytes per packet). The default is set up for a synchronization packet every 1024 bytes (every 64 formatter frames). If the formatter is configured for continuous mode, full, and half-word sync frames are inserted during normal operation. The count value is then the maximum number of complete frames between full synchronization packets.

TPIU claim tag set register (TPIU_CLAIMSET)

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] : Set claim tag bits

Write:
0000: No effect
xxx1: Set bit 0.
xx1x: Set bit 1.
x1xx: Set bit 2.
1xxx: Set bit 3.
Read:
0xF: Indicate there are four bits in claim tag.

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] : Reset claim tag bits

Write:

0000: No effect

xxx1: Clear bit 0.

xx1x: Clear bit 1.

x1xx: Clear bit 2.

1xxx: Clear bit 3.

Read: Return current value of claim tag.

TPIU lock access register (TPIU_LAR)

Address offset: 0xFB0

Reset value: 0xFFFF XXXX

31302928272625242322212019181716
ACCESS_W[31:16]
wwwwwwwwwwwwwwww
1514131211109876543210
ACCESS_W[15:0]
wwwwwwwwwwwwwwww

Bits 31:0 ACCESS_W[31:0] : TPIU register access enable

This bitfield enables write access to some TPIU registers by the processor cores (debuggers do not need to unlock the component).

0xC5ACCE55: Enable write access.

Other values: Disable write access.

TPIU lock status register (TPIU_LSR)

Address offset: 0xFB4

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.LOCKTYPELOCKGRANTLOCKEXIST
rrr

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

Bit 2 LOCKTYPE : Size of the TPIU_LAR register

0: 32-bit

Bit 1 LOCKGRANT : Current status of lock

This bit always returns 0 when read by an external debugger.

0: Write access is permitted.

1: Write access is blocked. Only read access is permitted.

Bit 0 LOCKEXIST : Implementation of a lock control mechanism

The bit indicates whether a lock control mechanism is implemented. It always returns 0 when read by an external debugger.

0: No lock control mechanism is available.

1: Lock control mechanism is implemented.

TPIU authentication status register (TPIU_AUTHSTAT)

Address offset: 0xFB8

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.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
0x0: Not implemented

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
0x0: Not implemented

Bits 1:0 NSID[1:0] : Security level for nonsecure invasive debug
0x0: Not implemented

TPIU device configuration register (TPIU_DEVID)

Address offset: 0xFC8

Reset value: 0x0000 00A0

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]CLKRETLATMAXNUM[4:0]
rrrrrrrrrrrr

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

Bit 11 SWOUARTNRZ : SWO UART or NRZ support
0: Not supported

Bit 10 SWOMAN : SWO Manchester format support
0: Not supported

Bit 9 TCLKDATA : Trace clock plus data support

0: Not supported

Bits 8:6 FIFOSIZE[2:0] : FIFO size in powers of two

0x2: FIFO size = 4 (16 bytes)

Bit 5 CLKRELAT : ATB clock and tracecklin relation

This bit indicates the relationship between the ATB clock and tracecklin (synchronous or asynchronous)

1: Asynchronous

Bits 4:0 MAXNUM[4:0] : Number/type of ATB input port multiplexing

0x0: None

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

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.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: Register file occupies a single 4-Kbyte region.

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

0x4: Arm JEDEC code

TPIU CoreSight peripheral identity register 0 (TPIU_PIDR0)

Address offset: 0xFE0

Reset value: 0x0000 0012

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 field, bits [7:0]

0x12: TPIU part number

TPIU CoreSight peripheral identity register 1 (TPIU_PIDR1)

Address offset: 0xFE4

Reset value: 0x0000 00B9

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 field, bits [3:0]

0xB: Arm JEDEC code

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

0x9: TPIU part number

TPIU CoreSight peripheral identity register 2 (TPIU_PIDR2)

Address offset: 0xFE8

Reset value: 0x0000 005B

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

0x5: r1p0

Bit 3 JEDEC : JEDEC assigned value

1: Designer ID specified by JEDEC

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

0x3: Arm JEDEC code

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

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 field, bits [7:0]

0x0D: Common ID value

TPIU CoreSight component 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 field, bits [15:12] - component class

0x9: CoreSight component

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

0x0: Common ID value

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 field, bits [23:16]

0x05: Common ID value

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 field, bits [31:24]

0xB1: Common ID value

TPIU register map

Table 894. TPIU register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x000TPIU_SUPPSIZEPORTSIZE[31:0]
Reset value000000000000000000000000000000011
0x004TPIU_CURPSIZEPORTSIZE[31:0]
Reset value00000000000000000000000000000001
0x008-0x0FCReservedReserved
0x100TPIU_SUPTRGMRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TRGRUNTRIGDRes.Res.Res.Res.Res.Res.Res.TCOUNT8Res.Res.Res.MULT64KMULT256MULT16MULT4MULT2
Reset value00111111
0x104TPIU_TRGCNTRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TRIGCOUNT[7:0]
Reset value000000000
0x108TPIU_TRGMULTRes.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.MULT64KMULT256MULT16MULT4MULT2
Reset value00000
0x10C-0x1FCReservedReserved
0x200TPIU_SUPTPMRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PCONTENPTIMEENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PATF0PATA5PATW0PATW1
Reset value111111
0x204TPIU_CURTPMRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PCONTENPTIMEENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PATF0PATA5PATW0PATW1
Reset value000000
0x208TPIU_TPRCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PATTCOUNT[7:0]
Reset value000000000
0x20C-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.Res.TCPRESENTFTSTOPPEDFLINPROG
Reset value010
0x304TPIU_FFCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.STOPTRIGSTOPFLRes.TRIGFLTRIGEVTTRIGINRes.Res.FONMANFONTRIGFONFLINRes.ENFCONTENFTC
Reset value0000000000
0x308-0x30CReservedReserved
0x400TPIU_FSCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CYCCOUNT[11:0]
Reset value00000100000
0x404-0xF9CReservedReserved

Table 894. TPIU register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFA0TPIU_CLAIMSETRes.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.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.Res.CLAIMCLR [3:0]
Reset value0000
0xFA8-0xFACReservedReserved
0xFB0TPIU_LARACCESS_W[31:0]
Reset valueXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0xFB4TPIU_LSRRes.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.LOCKTYPELOCKGRANTLOCKEXIST
Reset value011
0xFB8TPIU_AUTHSTATRes.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]Res.Res.Res.Res.Res.NSNID[1:0]NSID[1:0]
Reset value00000000
0xFBC-0xFC4ReservedReserved
0xFC8TPIU_DEVIDRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SWOURTNRZSWOMANRes.Res.Res.Res.Res.Res.Res.MAXNUM[4:0]
Reset value00001010000
0xFCCTPIU_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.Res.SUBTYPE [3:0]MAJORTYP [3:0]
Reset value0001
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.Res.Res.Res.Res.SIZE[3:0]JEP106CON [3:0]
Reset value0000
0xFD4-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.Res.Res.Res.Res.Res.Res.PARTNUM[7:0]
Reset value0001
0xFE4TPIU_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.Res.JEP106ID [3:0]PARTNUM [11:8]
Reset value1011
0xFE8TPIU_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.Res.REVISION [3:0]JEP106ID [6:4]
Reset value0101
0xFECTPIU_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.Res.REVAND[3:0]CMOD[3:0]
Reset value0000
0xFF0TPIU_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.Res.Res.Res.PREAMBLE[7:0]
Reset value0001

Table 894. TPIU register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFF4TPIU_CIDR1ResResResResResResResResResResResResResResResResResResResResResResResResResCLASS[3:0]PREAMBLE [11:8]
Reset value10010000
0xFF8TPIU_CIDR2ResResResResResResResResResResResResResResResResResResResResResResResResPREAMBLE[19:12]
Reset value00000101
0xFFCTPIU_CIDR3ResResResResResResResResResResResResResResResResResResResResResResResResPREAMBLE[27:20]
Reset value10110001

78.12.14 Trace replicator (REP)

The trace replicator CoreSight component splits the ATB bus into two branches: trace data can be routed to two different sinks. The replicator has two ATB master ports, and one ATB slave port. The trace packets received on the slave port are duplicated and output on the master ports.

There are two replicators in the trace and debug subsystem:

Table 895. ETR replicator allocation

ATB portTrace sink
#0ETR
#1TPIU

As data are received from the trace source, it is passed on to all trace sinks at the same time. By default, the replicator does not accept more data from the trace source until all trace sinks have accepted data. This has the impact of reducing the throughput of the replicator to match that of the slowest trace sink. The ETR replicator has an APB bus interface and a register set that allows filtering of the trace forwarded to each branch.

The trace packets output on each master port can be filtered according to the source ID, by programming REP_IDFILTER[1:0] registers.

For more information on the ATB replicator CoreSight component, refer to the Arm CoreSight SoC-400 Technical Reference Manual [2].

78.12.15 Trace replicator registers

The register file base address for the replicator is defined in Table 880.

Replicator ID filter register 0 (REP_IDFILTER0)

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.ID0_70
_7F
ID0_60
_6F
ID0_50
_5F
ID0_40
_4F
ID0_30
_3F
ID0_20
_2F
ID0_10
_1F
ID0_0_
F
rwrwrwrwrwrwrwrw

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

Bit 7 ID0_70_7F : Enable or disable ID filtering for IDs 0x70-0x7F

0: Transactions with these IDs are passed on to ATB master port 0.

1: Transactions with these IDs are discarded on master port 0.

Bit 6 ID0_60_6F : Enable or disable ID filtering for IDs 0x60-0x6F

0: Transactions with these IDs are passed on to ATB master port 0.

1: Transactions with these IDs are discarded on master port 0.

Bit 5 ID0_50_5F : Enable or disable ID filtering for IDs 0x50-0x5F

0: Transactions with these IDs are passed on to ATB master port 0.

1: Transactions with these IDs are discarded on master port 0.

Bit 4 ID0_40_4F : Enable or disable ID filtering for IDs 0x40-0x4F

0: Transactions with these IDs are passed on to ATB master port 0.

1: Transactions with these IDs are discarded on master port 0.

Bit 3 ID0_30_3F : Enable or disable ID filtering for IDs 0x30-0x3F

0: Transactions with these IDs are passed on to ATB master port 0.

1: Transactions with these IDs are discarded on master port 0.

Bit 2 ID0_20_2F : Enable or disable ID filtering for IDs 0x20-0x2F

0: Transactions with these IDs are passed on to ATB master port 0.

1: Transactions with these IDs are discarded on master port 0.

Bit 1 ID0_10_1F : Enable or disable ID filtering for IDs 0x10-0x1F

0: Transactions with these IDs are passed on to ATB master port 0.

1: Transactions with these IDs are discarded on master port 0.

Bit 0 ID0_0_F : Enable or disable ID filtering for IDs 0x0-0xF

0: Transactions with these IDs are passed on to ATB master port 0.

1: Transactions with these IDs are discarded on master port 0.

Replicator ID filter register 1 (REP_IDFILTER1)

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.ID1_70_7FID1_60_6FID1_50_5FID1_40_4FID1_30_3FID1_20_2FID1_10_1FID1_0_F
rwrwrwrwrwrwrwrw

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

Bit 7 ID1_70_7F : Enable or disable ID filtering for IDs 0x70-0x7F

0: Transactions with these IDs are passed on to ATB master port 1.

1: Transactions with these IDs are discarded on master port 1.

Bit 6 ID1_60_6F : Enable or disable ID filtering for IDs 0x60-0x6F

0: Transactions with these IDs are passed on to ATB master port 1.

1: Transactions with these IDs are discarded on master port 1.

Bit 5 ID1_50_5F : Enable or disable ID filtering for IDs 0x50-0x5F

0: Transactions with these IDs are passed on to ATB master port 1.

1: Transactions with these IDs are discarded on master port 1.

Bit 4 ID1_40_4F : Enable or disable ID filtering for IDs 0x40-0x4F

0: Transactions with these IDs are passed on to ATB master port 1.

1: Transactions with these IDs are discarded on master port 1.

Bit 3 ID1_30_3F : Enable or disable ID filtering for IDs 0x30-0x3F

0: Transactions with these IDs are passed on to ATB master port 1.

1: Transactions with these IDs are discarded on master port 1.

Bit 2 ID1_20_2F : Enable or disable ID filtering for IDs 0x20-0x2F

0: Transactions with these IDs are passed on to ATB master port 1.

1: Transactions with these IDs are discarded on master port 1.

Bit 1 ID1_10_1F : Enable or disable ID filtering for IDs 0x10-0x1F

0: Transactions with these IDs are passed on to ATB master port 1.

1: Transactions with these IDs are discarded on master port 1.

Bit 0 ID1_0_F : Enable or disable ID filtering for IDs 0x0-0xF

0: Transactions with these IDs are passed on to ATB master port 1.

1: Transactions with these IDs are discarded on master port 1.

Replicator claim tag set register (REP_CLAIMSET)

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] : Set claim tag bits

Write:

Read:

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

Replicator claim tag clear register (REP_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] : Reset claim tag bits

Write:

Read: Returns current value of claim tag.

Replicator lock access register (REP_LAR)

Address offset: 0xFB0

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
ACCESS_W[31:16]
wwwwwwwwwwwwwwww
1514131211109876543210
ACCESS_W[15:0]
wwwwwwwwwwwwwwww

Bits 31:0 ACCESS_W[31:0] : CSTF register write access enable

The field enables write access to some CSTF registers by the processor cores (debuggers do not need to unlock the component).

0xC5ACCE55: Enable write access.

Other values: Disable write access.

Replicator lock status register (REP_LSR)

Address offset: 0xFB4

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.LOCKTYPELOCKGRANTLOCKEXIST
rrr

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

Bit 2 LOCKTYPE : Size of the CSTF_LAR register

0: 32 bits

Bit 1 LOCKGRANT : Current status of lock

This bit always returns 0 when read by an external debugger.

0: Write access is permitted.

1: Write access is blocked. Only read access is permitted.

Bit 0 LOCKEXIST : Existence of lock control mechanism

The bit indicates whether a lock control mechanism exists. It always returns 0 when read by an external debugger.

0: No lock control mechanism exists.

1: Lock control mechanism is implemented.

Replicator authentication status register (REP_AUTHSTAT)

Address offset: 0xFB8

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.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

0x0: Not implemented

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
0x0: Not implemented

Bits 1:0 NSID[1:0] : Security level for nonsecure invasive debug
0x0: Not implemented

Replicator CoreSight device identity register (REP_DEVID)

Address offset: 0xFC8

Reset value: 0x0000 0002

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.PORTNUM[3:0]
rrrr

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

Bits 3:0 PORTNUM[3:0] : Number of master ports implemented
0x2: Two master ports

Replicator CoreSight device type identity register (REP_DEVTYPE)

Address offset: 0xFCC

Reset value: 0x0000 0022

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.DEVTYPEID[7:0]
rrrrrrrr

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

Bits 7:0 DEVTYPEID[7:0] : Device type identifier
0x22: Trace replicator

Replicator CoreSight peripheral identity register 4 (REP_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: Register file occupies a single 4-Kbyte region.

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

0x4: Arm JEDEC code

Replicator CoreSight peripheral identity register 0 (REP_PIDR0)

Address offset: 0xFE0

Reset value: 0x0000 0009

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 field, bits [7:0]

0x09: Replicator part number

Replicator CoreSight peripheral identity register 1 (REP_PIDR1)

Address offset: 0xFE4

Reset value: 0x0000 00B9

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 field, bits [3:0]

0xB: Arm JEDEC code

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

0x9: REP part number

Replicator CoreSight peripheral identity register 2 (REP_PIDR2)

Address offset: 0xFE8

Reset value: 0x0000 002B

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

0x2: r0p1

Bit 3 JEDEC : JEDEC assigned value

1: Designer ID specified by JEDEC

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

0x3: Arm JEDEC code

Replicator CoreSight peripheral identity register 3 (REP_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

Replicator CoreSight component identity register 0 (REP_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 field, bits [7:0]

0x0D: Common ID value

Replicator CoreSight component identity register 1 (REP_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 field, bits [15:12] - component class

0x9: CoreSight component

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

0x0: Common ID value

Replicator CoreSight component identity register 2 (REP_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 field, bits [23:16]

0x05: Common ID value

Replicator CoreSight component identity register 3 (REP_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 field, bits [31:24]

0xB1: Common ID value

Trace replicator register map

Table 896. Replicator register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x000REP_IDFILTER0Res.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.ID0_70_7FID0_60_6FID0_50_5FID0_40_4FID0_30_3FID0_20_2FID0_10_1FID0_0_F
Reset value00000000
0x004REP_IDFILTER1Res.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.ID1_70_7FID1_60_6FID1_50_5FID1_40_4FID1_30_3FID1_20_2FID1_10_1FID1_0_F
Reset value00000000
0x008 - 0xF9CReservedReserved
0xFA0REP_CLAIMSETRes.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.CLAIMSET [3:0]
Reset value1111
0xFA4REP_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.Res.Res.CLAIMCLR [3:0]
Reset value0000
0xFA8 - 0xFACReservedReserved
0xFB0REP_LARACCESS_W[31:0]
Reset valueXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0xFB4REP_LSRRes.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.LOCTYPELOCKGRANTLOCKEXIST
Reset value011

Table 896. Replicator register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFB8REP_AUTHSTATRes.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]
Reset value000000000
0xFC8REP_DEVIDRes.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.PORTNUM [3:0]
Reset value0010
0xFCCREP_DEVTYPERes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DEVTYPEID[7:0]
Reset value00100010
0xFD0REP_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-
0xFDC
ReservedReserved
0xFE0REP_PIDR0Res.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 value00001101
0xFE4REP_PIDR1Res.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 value10111001
0xFE8REP_PIDR2Res.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 value0011011
0xFECREP_PIDR3Res.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 value00000000
0xFF0REP_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
0xFF4REP_CIDR1Res.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 value10010000
0xFF8REP_CIDR2Res.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 value00000101
0xFFCREP_CIDR3Res.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 value10111001

78.12.16 Serial-wire output (SWO)

The SWO is a CoreSight component that formats the trace stream from the Cortex-M55 processor ITM and outputs it on the single wire TRACESWO output.

Compared to the TPIU, the SWO contains:

The SWO output supports Manchester encoded and UART NRZ formats.

For more information about the serial-wire output CoreSight component, refer to the Arm CoreSight components Technical Reference Manual [8].

78.12.17 SWO registers

The register file base address for the SWO is defined in Table 880: Trace subsystem ROM table .

SWO current output divisor register (SWO_CODR)

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] : SWO baud rate scaling

The baud rate is the trace clock frequency divided by (PRESCALER - 1). The baud rate changes instantly, so it is recommended to stop the trace source and wait until the port is idle before writing to this register.

SWO selected pin protocol register (SWO_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.PPROT[1:0]
rwrw

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

Bits 1:0 PPROT[1:0] : Pin protocol

0x1: Manchester

0x2: NRZ

Others: Reserved

SWO formatter and flush status register (SWO_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
TCPPRE
SENT
FTSTO
PPED
FLINP
ROG
rrrr

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

Bit 3 FTNONSTOP : Change of settings without stopping formatter

1: Change of settings is allowed with formatter running.

Bit 2 TCPPRESENT : TRACECTL pin present on SWO

0: TRACECTL pin not present

Bit 1 FTSTOPPED : Formatter stopped

0: Formatter running

The bit always returns 0 as the SWO formatter cannot be stopped in this device.

Bit 0 FLINPROG : Flush in progress

0: Flush is not in progress

The bit always returns 0 as SWO flushing is not supported in this device.

SWO claim tag set register (SWO_CLAIMSET)

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] : Set claim tag bits

Write:

0000: No effect

xxx1: Set bit 0.

xx1x: Set bit 1.

x1xx: Set bit 2.

1xxx: Set bit 3.

Read:

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

SWO claim tag clear register (SWO_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] : Reset claim tag bits

Write:

0000: No effect

xxx1: Clear bit 0.

xx1x: Clear bit 1.

x1xx: Clear bit 2.

1xxx: Clear bit 3.

Read: Returns current value of claim tag.

SWO lock access register (SWO_LAR)

Address offset: 0xFB0

Reset value: 0xXXXX XXXX

31302928272625242322212019181716
ACCESS_W[31:16]
wwwwwwwwwwwwwwww
1514131211109876543210
ACCESS_W[15:0]
wwwwwwwwwwwwwwww

Bits 31:0 ACCESS_W[31:0] : SWO register write access enable

Enables write access to some SWO registers by the processor cores (debuggers do not need to unlock the component)

0xC5ACCE55: Enable write access.

Other values: Disable write access.

SWO lock status register (SWO_LSR)

Address offset: 0xFB4

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.LOCKTYPELOCKGRANTLOCKEXIST
rrr

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

Bit 2 LOCKTYPE : Size of the SWO_LAR register

0: 32 bits

Bit 1 LOCKGRANT : Current status of lock

This bit always returns 0 when read by an external debugger.

0: Write access is permitted.

1: Write access is blocked. Only read access is permitted.

Bit 0 LOCKEXIST : Implementation of a lock control mechanism

The bit indicates whether a lock control mechanism is implemented. It always returns 0 when read by an external debugger.

0: No lock control mechanism available

1: Lock control mechanism is implemented.

SWO authentication status register (SWO_AUTHSTAT)

Address offset: 0xFB8

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.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

0x0: Not implemented

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

0x0: Not implemented

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

0x0: Not implemented

SWO device configuration register (SWO_DEVID)

Address offset: 0xFC8

Reset value: 0x0000 0EA0

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]CLKRELATMUXNUM[4:0]
rrrrrrrrrrrr

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

Bit 11 SWOUARTNRZ : SWO UART or NRZ

1: Supported

Bit 10 SWOMAN : SWO Manchester format

1: Supported

Bit 9 TCLKDATA : Trace clock plus data

1: Supported

Bits 8:6 FIFOSIZE[2:0] : FIFO size in powers of two

0x2: FIFO size = 4 (16 bytes)

Bit 5 CLKRELAT : ATB clock to traceckin relation

This bit indicates the relationship between the ATB clock and traceckin (synchronous or asynchronous).

1: Asynchronous

Bits 4:0 MUXNUM[4:0] : Number/type of ATB input port multiplexing

0x0: None

SWO device type identifier register (SWO_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] : Subclassification

0x1: Trace port component

Bits 3:0 MAJORTYPE[3:0] : Major classification

0x1: Trace sink component

SWO CoreSight peripheral identity register 4 (SWO_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: Register file occupies a single 4-Kbyte region.

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

0x4: Arm JEDEC code

SWO CoreSight peripheral identity register 0 (SWO_PIDR0)

Address offset: 0xFE0

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.PARTNUM[7:0]
rrrrrrrr

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

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

0x14: SWO part number

SWO CoreSight peripheral identity register 1 (SWO_PIDR1)

Address offset: 0xFE4

Reset value: 0x0000 00B9

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 field, bits [3:0]

0xB: Arm JEDEC code

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

0x9: SWO part number

SWO CoreSight peripheral identity register 2 (SWO_PIDR2)

Address offset: 0xFE8

Reset value: 0x0000 002B

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

0x2: r0p2

Bit 3 JEDEC : JEDEC assigned value

1: Designer ID specified by JEDEC

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

0x3: Arm JEDEC code

SWO CoreSight peripheral identity register 3 (SWO_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

SWO CoreSight component identity register 0 (SWO_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 field, bits [7:0]

0x0D: Common ID value

SWO CoreSight component identity register 1 (SWO_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 field, bits [15:12] - component class

0x9: CoreSight component

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

0x0: Common ID value

SWO CoreSight component identity register 2 (SWO_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 field, bits [23:16]
0x05: Common ID value

SWO CoreSight component identity register 3 (SWO_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 field, bits [31:24]
0xB1: Common ID value

SWO register map

Table 897. SWO register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x010SWO_CODRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PRESCALER[12:0]
Reset value00000000000000
0x014-0x0ECReservedReserved
0x0F0SWO_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.PPROT[1:0]
Reset value01
0x0F4-0x2FCReservedReserved
0x300SWO_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.Res.Res.FTNONSTOPTCPPRESENTFTSTOPPEDFLINPROG
Reset value1000
0x304-0xF9CReservedReserved
0xFA0SWO_CLAIMSETRes.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.CLAIMSET [3:0]
Reset value1111
0xFA4SWO_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.Res.CLAIMCLR [3:0]
Reset value0000
0xFA8 to 0xFACReservedReserved

Table 897. SWO register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFB0SWO_LARACCESS_W[31:0]
Reset valueXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0xFB4SWO_LSRRes.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.LOCKTYPELOCKGRANTLOCKEXIST
Reset value011
0xFB8SWO_AUTHSTATRes.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]Res.Res.Res.Res.NSNID[1:0]Res.NSID[1:0]
Reset value00000000
0xFBC-
0xFC4
ReservedReserved
0xFC8SWO_DEVIDRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SWOUARTNRZSWOMANRes.Res.FIFOSIZE
[2:0]
Res.CLKRELATMAXNUM[4:0]
Reset value0000000000000000000011101010000
0xFCCSWO_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.SUBTYPE
[3:0]
MAJORTYPE
[3:0]
Reset value0000000000000000000000000001001
0xFD0SWO_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.SIZE[3:0]JEP106CON
[3:0]
Reset value0000000000000000000000000000010
0xFD4-
0xFDC
ReservedReserved
0xFE0SWO_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.PARTNUM[7:0]
Reset value00010
0xFE4SWO_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
0xFE8SWO_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 value00101
0xFECSWO_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
0xFF0SWO_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 value00011
0xFF4SWO_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
0xFF8SWO_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
0xFFCSWO_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 value10111

78.12.18 System trace macrocell (STM)

The system trace macrocell is a CoreSight component which allows instrumentation data generated by software to be incorporated in the trace output. The software writes instrumentation data to the STM via a memory-mapped port on the AXI system interconnect. Data are formatted and time-stamped for output on the ATB trace bus, where they are merged with the trace coming from other sources (ETM, ITM).

Figure 1087. System trace macrocell

Block diagram of the System Trace Macrocell (STM).
    graph LR
    HE[Hardware events] --> Arbiter
    AXI[AXI] --> Arbiter
    TS[Timestamps] --> PG[Packet generation]
    APB[APB] --> Reg[Registers]
    Auth[Authentication] --> Reg
    Arbiter --> PG
    Reg --> PG
    PG --> FIFO
    FIFO --> ATB
  

Detailed description: The diagram shows the internal architecture of the STM. On the left, input signals include 'Hardware events', 'AXI', 'Timestamps', 'APB', and 'Authentication'. 'Hardware events' and 'AXI' feed into an 'Arbiter' block. The 'Arbiter' output goes to a 'Packet generation' block. 'Timestamps' also feed directly into 'Packet generation'. 'APB' and 'Authentication' feed into a 'Registers' block, which in turn provides control/data to the 'Packet generation' block. The 'Packet generation' block outputs to a 'FIFO', which finally outputs to the 'ATB' bus on the right. The entire logic is enclosed in a boundary box labeled MSv70441V1.

Block diagram of the System Trace Macrocell (STM).

The STM is configured with the following values to minimize the footprint in gates count:

The various AXI masters can generate trace by writing to the extended stimulus ports of the STM via its AXI slave port, mapped in a 1-Mbyte window of address space (see Section 2.3: Memory organization ). A 256-byte extended stimulus port comprises 16 x 64-bit locations or registers. Writes to different locations generate different types of trace packets, as shown in the table below.

The base address for stimulus port n is the STM base address + n × 256. A master can use any number of the 4096 available stimulus ports mapped in the 1-Mbyte window.

Table 898. STM extended stimulus port memory map

Address offsetNameDescription
0x00G_DMTSData, marked with timestamp, guaranteed
0x08G_DMData, marked, guaranteed
0x10G_DTSData, with timestamp, guaranteed
0x18G_DData, guaranteed
0x20-0x58-Reserved
0x60G_FLAGTSFlag with timestamp, guaranteed
0x68G_FLAGFlag, guaranteed
Table 898. STM extended stimulus port memory map (continued)
Address offsetNameDescription
0x70G_TRIGTSTrigger with timestamp, guaranteed
0x78G_TRIGTrigger, guaranteed
0x80I_DMTSData, marked with timestamp, invariant timing
0x88I_DMData, marked, invariant timing
0x90I_DTSData, with timestamp, invariant timing
0x98I_DData, invariant timing
0xA0-0xD8-Reserved
0xE0I_FLAGTSFlag with timestamp, invariant timing
0xE8I_FLAGFlag, invariant timing
0xF0I_TRIGTSTrigger with timestamp, invariant timing
0xF8I_TRIGTrigger, invariant timing

The trace packets contain the 8-bit identity of the master that triggered them. This identity is decoded from the nonsecure master ID carried on the AWID wires of the AXI interconnect. The ID also includes the security status of the master at the time.

The ID is mapped as follows:

A list of valid IDs and how they map to the originating master is given in the table below.

Table 899. STM trace packet ID mapping to AXI masters
MasterSecure access IDNonsecure access ID
Cortex-M550x000x40
HPDMA10x010x41
AXI-AP0x020x42

The STM can also generate trace packets or triggers when certain hardware events are detected. Events can be selected from one of two banks, each bank containing up to 32 events. The bank is selected in the STM_HEBSR register, and the 32 events can be individually enabled in STM_HETER register. All events are edge sensitive.

The events for each banks are shown in Table 900 .

Table 900. Hardware event mapping

BankEventEXTMUX(7:0) = 0-BankEventEXTMUX(7:0) = 0
HEBS = 00HWEVENTA ↑-HEBS = 10HPDMA0_ch0_irq
1HWEVENTA ↓-1HPDMA0_ch1_irq
2HWEVENTB ↑-2HPDMA0_ch2_irq
3HWEVENTB ↓-3HPDMA0_ch3_irq
4--4HPDMA0_ch4_irq
5NPU_DBG[0]-5HPDMA0_ch5_irq
6NPU_DBG[1]-6HPDMA0_ch6_irq
7NPU_DBG[2]-7HPDMA0_ch7_irq
8NPU_DBG[3]-8HPDMA0_ch8_irq
9NPU_DBG[4]-9HPDMA0_ch9_irq
10NPU_DBG[5]-10HPDMA0_ch10_irq
11NPU_DBG[6]-11HPDMA0_ch11_irq
12NPU_DBG[7]-12HPDMA0_ch12_irq
13--13HPDMA0_ch13_irq
14GPU_irq-14HPDMA0_ch14_irq
15--15HPDMA0_ch15_irq
16EXTI0_irq-16GPDMA0_ch0_irq
17EXTI1_irq-17GPDMA0_ch1_irq
18EXTI2_irq-18GPDMA0_ch2_irq
19EXTI3_irq-19GPDMA0_ch3_irq
20EXTI4_irq-20GPDMA0_ch4_irq
21EXTI5_irq-21GPDMA0_ch5_irq
22EXTI6_irq-22GPDMA0_ch6_irq
23EXTI7_irq-23GPDMA0_ch7_irq
24EXTI8_irq-24GPDMA0_ch8_irq
25EXTI9_irq-25GPDMA0_ch9_irq
26EXTI10_irq-26GPDMA0_ch10_irq
27EXTI11_irq-27GPDMA0_ch11_irq
28EXTI12_irq-28GPDMA0_ch12_irq
29EXTI13_irq-29GPDMA0_ch13_irq
30EXTI14_irq-30GPDMA0_ch14_irq
31EXTI15_irq-31GPDMA0_ch15_irq

For more information on the system trace macrocell, refer to the Arm CoreSight STM-500 System Trace Macrocell Technical Reference Manual [6].

78.12.19 STM registers

The register file base address for the STM is defined in Table 880 .

STM hardware event enable register (STM_HEER)

Address offset: 0xD00

Reset value: 0x0000 0000

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

Bits 31:0 HEE[31:0] : Hardware event enable

HEE is used to enable hardware events to generate trace. The register defines one bit per hardware event.

0: Hardware event disabled

1: Hardware event enabled

STM hardware event trigger enable register (STM_HETER)

Address offset: 0xD20

Reset value: 0x0000 0000

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

Bits 31:0 HETE[31:0] : Trigger generation enable

HETE is a bit mask used to enable trigger generation on hardware events. This bitfield defines one bit per hardware event.

0: Disabled

1: Enabled

STM hardware event bank select register (STM_HEBSR)

Address offset: 0xD60

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.HEBS
rw

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

Bit 0 HEBS : Hardware event bank selector

HEBS is used to select the bank of 32 hardware events to control (see Table 900 ).

0: Bank 0

1: Bank 1

STM hardware event main control register (STM_HEMCR)

Address offset: 0xD64

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.ATBTRIGENTRIGCLEARTRIGSTATUSTRIGCTLRes.ERRDETECTCOMPENEN
rwrwrrwrrwrw

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

Bit 7 ATBTRIGEN : ATB trace trigger enable

When set, this bit enables the STM to use the ATID value of 0x7D when a trigger event on match using STMHETER occurs.

0: Do not output ATB trace triggers.

1: Use ATB trace triggers.

Bit 6 TRIGCLEAR : Clear trigger status

When TRIGCTL indicates single-shot mode, this bit is used to clear TRIGSTATUS.

Writing a 1 to this bit when in multi-shot mode is unpredictable.

0: No effect

1: Clear TRIGSTATUS (if equal to 1).

Bit 5 TRIGSTATUS : trigger status

When TRIGCTL indicates single-shot mode, this indicates whether the single trigger has occurred.

0: Trigger has not occurred.

1: Trigger has occurred.

Bit 4 TRIGCTL : Trigger control

0: Triggers are multi-shot.

1: Triggers are single-shot.

Bit 3 Reserved, must be kept at reset value.

Bit 2 ERRDETECT : Error detection

This bit enables error detection on the hardware event tracing.

0: Disabled

1: Enabled

Bit 1 COMPEN : Compression enable

This bit enables leading 0 suppression of hardware event data values in the trace stream.

0: Disabled

1: Enabled

Bit 0 EN : Hardware event tracing enable

0: Disabled

1: Enabled

STM hardware event external multiplex control register (STM_HEEXTMUXR)

Address offset: 0xD68

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.EXTMUX[7:0]
rwrwrwrwrwrwrwrw

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

Bits 7:0 EXTMUX[7:0] : Signals for events selector

This bitfield selects the signals to be mapped onto the 64 hardware events that can be traced by the STM (refer to Table 900 ).

STM hardware event master number register (STM_HEMASTR)

Address offset: 0xDF4

Reset value: 0x0000 0080

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
MASTER[15:0]
rrrrrrrrrrrrrrrr

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

Bits 15:0 MASTER[15:0] : STPv2 master number

This bitfield indicates the STPv2 master number of hardware event trace. This number is the master number presented in STPv2.

0x80: Hardware events are associated with master 0x80.

Others: reserved

STM hardware event features 1 register (STM_HEFEAT1R)

Address offset: 0xDF8

Reset value: 0x3020 0035

31302928272625242322212019181716
Res.HEEXTMUXSIZE[2:0]Res.Res.Res.Res.NUMHE[8:1]
rrrrrrrrrrr
1514131211109876543210
NUMHE[0]Res.Res.Res.Res.Res.Res.Res.Res.Res.HECOMP[1:0]HEMASTRHEERRRes.HETER
rrrrrr

Bit 31 Reserved, must be kept at reset value.

Bits 30:28 HEEXTMUXSIZE[2:0] : EXTMUX bitfield size

This bitfield indicates the size of EXTMUX bitfield in STM_HEEXTMUXR.
0x3: 8-bit wide (up to 256 multiplexers)
Others: Reserved

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

Bits 23:15 NUMHE[8:0] : Number of hardware events supported by the STM

0x40: 64 hardware events

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

Bits 5:4 HECOMP[1:0] : Data compression on hardware event tracing support

0x3: Data compression support is programmable. COMPEN in STM_HEMCR is implemented.

Bit 3 HEMASTR : STMHEMASTR support

0: STMHEMASTR is read-only.

Bit 2 HEERR : Hardware event error detection support

1: Hardware event error detection implemented. ERRDETECT in STM_HEMCR is implemented.

Bit 1 Reserved, must be kept at reset value.

Bit 0 HETER : STM_HETER support

1: Implemented

STM hardware event features ID register (STM_HEIDR)

Address offset: 0xDFC

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.VENDSPEC[3:0]CLASSREV[3:0]CLASS[3:0]
rrrrrrrrrrrr

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

Bits 11:8 VENDSPEC[3:0] : Vendor specific

This bitfield identifies any vendor specific modifications or mappings.
0: Vendor specific information
Others: Reserved

Bits 7:4 CLASSREV[3:0] : Programmer model revision

1: Revision
Others: Reserved

Bits 3:0 CLASS[3:0] : Programmer model

1: Hardware event control
Others: Reserved

STM stimulus port enable register (STM_SPER)

Address offset: 0xE00

Reset value: 0x0000 0000

This register is used to enable the stimulus registers to generate the trace.

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

Bits 31:0 SPE[31:0] : Stimulus port enable

This register is used to enable STM registers to generate the trace. It defines one bit per stimulus register. Writing one enables the appropriate stimulus port. Writing 0 disables the appropriate stimulus port. This register is used in conjunction with STM_SPSCR.
0: Disabled
1: Enabled

STM stimulus port trigger enable register (STM_SPTER)

Address offset: 0xE20

Reset value: 0x0000 0000

This register is used to enable trigger generation on writes to enabled stimulus port registers.

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

Bits 31:0 SPTE[31:0] : Trigger generation bit mask

This register is a bit mask used to enable the trigger generation on writes to enabled stimulus port registers. It defines one bit per stimulus port register.

0: Disabled

1: Enabled

STM stimulus port select configuration register (STM_SPSCR)

Address offset: 0xE60

Reset value: 0x0000 0000

This register allows a debugger to program which stimulus ports the STM_SPER and STM_SPTER registers apply to.

31302928272625242322212019181716
Res.Res.Res.Res.PORTSEL[7:0]Res.Res.Res.Res.
rwrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PORTCTL[1:0]
rwrw

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

Bits 27:20 PORTSEL[7:0] : Stimulus port selector

This bitfield defines which group of 32 stimulus ports, the STM_SPTER and/or STM_SPER registers apply to.

0000000: Reserved

nnnn nnn1: Select 1 group, 0bnnn nnnn.

nnnn nn10: Select 2 groups, 0bnnn nnn0 to 0bnnn nnn1.

nnnn n100: Select 4 groups, 0bnnn nn00 to 0bnnn nn11.

..

n100 0000: Select 64 groups, 0bn00 0000 to 0bn11 1111.

1000 0000: Select all 128 groups.

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

Bits 1:0 PORTCTL[1:0] : Port selection control mode

This bitfield defines how the port selection programmed in PORTSEL[7:0] is applied.

0x0: Port selection not used. STM_PER and STM_PTER apply to all groups.

0x1: Port selection applies only to STM_SPTER. STM_PER applies to all groups

0x2: Reserved

0x3: Port selection applies to both STM_SPER and STM_SPTER registers.

STM stimulus port master select configuration register (STM_SPMSCR)

Address offset: 0xE64

Reset value: 0x0000 0000

This register allows a debugger to program which masters the STM_SPSCR register applies to.

31302928272625242322212019181716
ResResResResResResResResResMASTSEL[7:1]
rwrwrwrwrwrwrw
1514131211109876543210
MASTSEL[0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.MASTCTL
rwrw

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

Bits 22:15 MASTSEL[7:0] : Master selection

This bitfield defines which masters the STM_SPSCR register applies to. Six masters are supported (see Table 899 for the master ID mapping).

0000 0001: Select master 0x00.

0000 0011: Select master 0x01.

0000 0101: Select master 0x02.

0000 0010: Select master 0x00 and master 0x01.

0000 0100: Select master 0x00, master 0x01 and master 0x02.

1000 0001: Select master 0x40.

1000 0011: Select master 0x41.

1000 0101: Select master 0x42.

1000 0010: Select master 0x40 and master 0x41.

1000 0100: Select master 0x40, master 0x41 and master 0x42.

1000 0000: Select all masters.

Others: Reserved

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

Bit 0 MASTCTL : Master control mode

This bitfield defines how the master is applied.

0: Master selection not used. STM_SPSCR applies to all masters.

1: Master selection applies to STM_SPSCR.

STM stimulus port override control register (STM_SPOVERRIDER)

Address offset: 0xE68

Reset value: 0x0000 0000

This register allows a debugger to override various features of the STM.

31302928272625242322212019181716
ResResResResPORTSEL[12:1]
rwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
PORTSEL[0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.OVERTSOVERCTL[1:0]
rwrwrwrw

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

Bits 27:15 PORTSEL[12:0] : Port override select

This bitfield defines which stimulus ports the override controls apply to.

0000 0000 0000 0: Reserved

nnnn nnnn nnnn 1: Select port 0bnnnn nnnn nnnn.

nnnn nnnn nnn1 0: Select ports 0bnnnn nnnn nnn0 to 0bnnnn nnnn nnn1.

nnnn nnnn nn10 0: Select ports 0bnnnn nnnn nn00 to 0bnnnn nnnn nn11.

..

n100 0000 0000: Select ports 0bn000 0000 0000 to 0bn111 1111 1111.

1000 0000 0000: Select all 4096 ports.

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

Bit 2 OVERTS : Override timestamp request

This override requests all stimulus port writes that cause trace to be traced with a timestamp (when possible). As with normal operation, this does not ensure that all packets are generated with timestamps. This bitfield is independent from OVERCTL and PORTSEL.

0: Override disabled

1: Override enabled

Bits 1:0 OVERCTL[1:0] : Override control mode

This bitfield defines how the port selection is applied.

0x0: Override controls disabled

0x1: Ports selected by PORTSEL always behave as guaranteed transactions.

0x2: Ports selected by PORTSEL always behave as invariant timing transactions

0x3: Reserved

STM stimulus port master override control register (STM_SPMOVERRIDER)

Address offset: 0xE6C

Reset value: 0x0000 0000

This register allows a debugger to select which masters STM_SPOVERRIDER applies to.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.MASTSEL[7:1]
rwrwrwrwrwrwrw
1514131211109876543210
MASTS
EL[0]
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.MASTC
TL
rwrw

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

Bits 22:15 MASTSEL[7:0] : Master port override selection

This bitfield defines which master ports the override controls apply to. Six masters are supported (see Table 899 for the master ID mapping).

0000 0001: Select master 0x00.

0000 0011: Select master 0x01.

0000 0101: Select master 0x02.

0000 0010: Select master 0x00 and master 0x01.

0000 0100: Select master 0x00, master 0x01 and master 0x02.

1000 0001: Select master 0x40.

1000 0011: Select master 0x41.

1000 0101: Select master 0x42.

1000 0010: Select master 0x40 and master 0x41.

1000 0100: Select master 0x40, master 0x41 and master 0x42.

1000 0000: Select all masters.

Others: Reserved

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

Bit 0 MASTCTL : Master selection control mode

This bitfield defines how the master selection is applied.

0: Override controls disabled. STM_SPOVERRIDER applies equally to all masters.

1: Master selection enabled. STM_SPOVERRIDER applies to the masters selected by MASTSEL[7:0].

STM stimulus port trigger control and status register (STM_SPTRIGCSR)

Address offset: 0xE70

Reset value: 0x0000 0000

This register is used to control the STM triggers induced by STM_SPTER.

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.ATBTRIGEN_D
IR
ATBTRIGEN_T
E
TRIGC
LEAR
TRIGS
TATUS
TRIGC
TL
rwrwwrrw

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

Bit 4 ATBTRIGEN_DIR : ATB trace on write to TRIG

When set, this bit enables the STM to use the ATID value of 0x7D when a trigger event on writes to TRIG location occurs.

0: Does not output ATB trace triggers on write to TRIG location.

1: Outputs ATB trace trigger for trigger on write to TRIG location.

Bit 3 ATBTRIGEN_TE : ATB trace-trigger output

When set, this bit enables the STM to use the ATID value of 0x7D when a trigger event on match using STM_SPTER occurs.

0: Does not output ATB trace trigger for trigger on match using STM_SPTER.

1: Outputs ATB trace trigger for trigger on match using STM_SPTER.

Bit 2 TRIGCLEAR : trigger status clear

When TRIGCTL indicates single-shot mode, this TRIGCLEAR bit is used to clear TRIGSTATUS. Writing a one to this bit when in multi-shot mode leads to an unpredictable behavior.

0: No effect

1: Clear TRIGSTATUS if TRIGSTATUS = 1.

Bit 1 TRIGSTATUS : Trigger status

When TRIGCTL indicates single-shot mode, this TRIGSTATUS bit indicates whether the single trigger has occurred.

0: Trigger has not occurred.

1: Trigger has occurred.

Bit 0 TRIGCTL : Trigger control

0: Triggers are multi-shot.

1: Triggers are single-shot.

STM trace control and status register (STM_TCSR)

Address offset: 0xE80

Reset value: 0x0000 0004

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.BUSYTRACEID[6:0]
rrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.COMP ENRes.Res.SYNCE NTSENEN
rwrrwrw

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

Bit 23 BUSY : STM busy

This bit indicates if the STM is busy (for example because STM trace FIFO is not empty).

0: STM is not busy.

1: STM is busy.

Bits 22:16 TRACEID[6:0] : ATB Trace ID

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

Bit 5 COMPEN : Compression enable for stimulus ports

0: Compression disabled. Data transfers are transmitted at the size of the transaction.

1: Compression enabled. Data transfers are compressed to save bandwidth.

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

Bit 2 SYNCEN : STM_SYNCR implementation

1: Implemented

Bit 1 TSEN : Timestamp requests enable

This bit controls if timestamp requests are ignored or taken into account.

0: Timestamping disabled. Requests for timestamp generation are ignored, and stimulus port writes selecting timestamping are treated as if it were not selected.

1: Timestamping enabled. If stimulus writes select timestamping, a timestamp is output according to STPv2.

Bit 0 EN : Global STM enable

0: STM disabled

1: STM enabled

STM timestamp stimulus register (STM_TSSTIMR)

Address offset: 0xE84

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.FORCE
TS
w

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

Bit 0 FORCETS : Force timestamp stimulus

Write a one to this bit requests the next stimulus port write which causes trace to be upgraded to have a timestamp. Writes this bit as 0 are ignored.

1: Force timestamp stimulus

STM timestamp frequency register (STM_TSFREQR)

Address offset: 0xE8C

Reset value: 0x0000 0000

This register is used to indicate the frequency of the timestamp counter. The unit of measurement is increments per second. When the STPv2 protocol is used, this register contains the value output in FREQ and FREQ_TS packets. The timestamp frequency is output in the STPv2 protocol at every synchronization point when TSEN = 1 in STM_TCSR.

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

Bits 31:0 FREQ[31:0] : Timestamp frequency

This bitfield indicates the frequency of the timestamp counter (in Hz).

STM synchronization control register (STM_SYNCN)

Address offset: 0xE90

Reset value: 0x0000 0000

This register controls the interval between synchronization packets as a function of the number of bytes of trace generated. It provides a hint of the desired synchronization

frequency since implementations are permitted to be inaccurate. Writing 0x0000 0000 to this register disables the synchronization counter. However any other implementation defined synchronization mechanism continues to operate independently (refer to the next register STM_AUXCR).

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.MODECOUNT[8:0]Res.Res.Res.
rwrwrwrwrwrwrwrwrwrw

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

Bit 12 MODE : Mode control

0: COUNT[8:0] defines a value N. Synchronization period is 8 x N bytes.

1: COUNT[8:4] defines a value N. Synchronization period is 2 N bytes. N must be in the range of 12 to 27 inclusive. Other values lead to unpredictable results.

Bits 11:3 COUNT[8:0] : Number of bytes between synchronization packets

This bitfield indicates the counter value for the number of bytes between synchronization packets.

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

STM auxiliary control register (STM_AUXCR)

Address offset: 0xE94

Reset value: 0x0000 0000

This register is used for implementation defined STM controls.

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.QHWE
VOVER
RIDE
Res.Res.Res.Res.PRIORI
NVDIS
ASYNC
PE
FIFOA
F
rwrwrwrw

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

Bit 7 QHWEVOVERRIDE : Override control for the Q-Channels

0: No override. Q-Channel is able to accept a quiescence request when hardware event tracing is enabled.

1: Override. Q-Channel denies a quiescence request when hardware event tracing is enabled.

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

Bit 2 PRIORINVDIS : AXI versus hardware flush arbitration

This bit controls the arbitration between AXI and hardware during flush.

0: Priority inversion. When AXI flush is finished, the hardware gets priority until hardware flush is done.

1: Priority inversion disabled. AXI always has priority over hardware.

Bit 1 ASYNCPE : ASYNC priority

0: ASYNC priority is always lower than trace.

1: ASYNC priority increases on second synchronization request.

Bit 0 FIFOAF : Auto-flush

0: Disabled

1: Enabled

STM features 1 register (STM_FEAT1R)

Address offset: 0xEA0

Reset value: 0x0065 87D1

This register indicates the features of the STM in conjunction with STM_FEAT2R and STM_FEAT3R.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.SWOEN[1:0]SYNCEN[1:0]HWTEN[1:0]TSPRESCALE[1:0]
rrrrrrrr
1514131211109876543210
TRIGCTL[1:0]TRACEBUS[3:0]SYNC[1:0]FORCE
TS
TSFRE
Q
TS[1:0]PROT[3:0]
rrrrrrrrrrrrrrrr

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

Bits 23:22 SWOEN[1:0] : SWOEN support

Support of SWOEN in STM_TCSR.

0x1: SWOEN in STM_TCSR is not implemented.

Bits 21:20 SYNCEN[1:0] : SYNCEN support

Support of SYNCEN in STM_TCSR.

0x2: SYNCEN in STM_TCSR is implemented but always reads as 1.

Bits 19:18 HWTEN[1:0] : HWTEN support

Support of HWTEN in STM_TCSR.

0x1: HWTEN in STM_TCSR is not implemented.

Bits 17:16 TSPRESCALE[1:0] : Timestamp prescale support

0x1: Not implemented.

Bits 15:14 TRIGCTL[1:0] : Trigger control support

0x2: Multi-shot and single-shot triggers supported. STM_TRIGCSR is implemented.

Bits 13:10 TRACEBUS[3:0] : Trace bus support

0x1: CoreSight ATB plus ATB trigger support implemented. TRACEID in STM_TCSR, and ATBTRIGEN_DIR and ATBTRIGEN_TE in STM_SPTRIGCSR, are implemented.

  1. Bits 9:8 SYNC[1:0] : STM_SYNCR support
    0x3: STM_SYNCR implemented with MODE control
  2. Bit 7 FORCETS : STM_TSSTIMR support
    1: FORCETS in STM_TSSTIMR is implemented.
  3. Bit 6 TSFREQ : Timestamp frequency indication configuration
    1: STM_TSFREQR is read-write.
  4. Bits 5:4 TS[1:0] : Timestamp support
    0x1: Absolute timestamps implemented
  5. Bits 3:0 PROT[3:0] : Protocol
    0x1: STPv2 protocol

STM features 2 register (STM_FEAT2R)

Address offset: 0xEA4

Reset value: 0x0001 14F2

This register indicates the features of the STM in conjunction with STM_FEAT1R and STM_FEAT3R.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SPTYPE[1:0]
rr
1514131211109876543210
DSIZE[3:0]Res.SPTRTYPE[1:0]PRIVMASK[1:0]SPOVERRIDESPCOMP[1:0]Res.SPERSPTER[1:0]
rrrrrrrrrrrrrr
  1. Bits 31:18 Reserved, must be kept at reset value.
  2. Bits 17:16 SPTYPE[1:0] : Stimulus port type support
    0x1: Only extended stimulus ports implemented
  3. Bits 15:12 DSIZE[3:0] : Fundamental data size
    0x1: 64-bit data
  4. Bit 11 Reserved, must be kept at reset value.
  5. Bits 10:9 SPTRTYPE[1:0] : Stimulus port transaction type support
    0x2: Both invariant timing and guaranteed transactions are supported.
  6. Bits 8:7 PRIVMASK[1:0] : STM_PRIVMASKR support
    0x1: STM_PRIVMASKR is not implemented.
  7. Bit 6 SPOVERRIDE : STM_OVERRIDER support
    1: STM_SPOVERRIDER and STM_SPMOVERRIDER are implemented.
  8. Bits 5:4 SPCOMP[1:0] : Data compression on stimulus ports support
    0x3: Data compression support is programmable. COMPEN in STM_TCSR is implemented.
  9. Bit 3 Reserved, must be kept at reset value.
  10. Bit 2 SPER : STM_SPER presence
    0: STM_SPER is implemented.

Bits 1:0 SPTER[1:0] : STM_SPTER support
0x2: STM_SPTER is implemented.

STM features 3 register (STM_FEAT3R)

Address offset: 0xEA8

Reset value: 0x0000 007F

This register indicates the features of the STM in conjunction with STM_FEAT1R and STM_FEAT2R.

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.NUMMAST[6:0]
rrrrrrr

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

Bits 6:0 NUMMAST[6:0] : Number of stimulus ports masters implemented, minus 1
0x7F: 128 masters are implemented (only three masters are connected).

STM claim tag set register (STM_CLAIMSET)

Address offset: 0xFA0

Reset value: 0x0000 000F

This register is used in conjunction with STM_CLAIMCLR. It forms one half of the claim tag value. This location allows individual bits to be set (write), and returns the number of bits that can be set (read).

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.SET[3:0]
rwrwrwrw

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

Bits 3:0 SET[3:0] : Claim tag bit implementation
0xF: Claim tag bits are present within the claim tag field.

STM claim tag clear register (STM_CLAIMCLR)

Address offset: 0xFA4

Reset value: 0x0000 0000

This register is used in conjunction with STM_CLAIMSET. It forms one half of the claim tag value. This location enables individual bits to be cleared (write), and returns the current claim tag value (read).

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.CLR[3:0]
rwrwrwrw

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

Bits 3:0 CLR[3:0] : Claim tag current setting

STM lock access register (STM_LAR)

Address offset: 0xFB0

Reset value: 0x0000 0000

31302928272625242322212019181716
KEY[31:16]
wwwwwwwwwwwwwwww
1514131211109876543210
KEY[15:0]
wwwwwwwwwwwwwwww

Bits 31:0 KEY[31:0] : Device register write-access enable

A write of 0xC5ACCE55 enables further write access to the device. An invalid write removes write access.

0xC5ACCE55: Unlocks the protection register to enable write access.

STM lock status register (STM_LSR)

Address offset: 0xFB4

Reset value: 0x0000 0003

This register indicates the status of the lock control mechanism that prevents accidental writes by the code under debug. The lock mechanism does not impact accesses to the extended stimulus port registers. This register is needed even in the absence of any lock access control mechanism. Where this register is present and locked, the lock mechanism blocks the write accesses to any register but the STM_LAR. The lock mechanism is only present for accesses with PADDRDBG31 signal low.

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.NTTSLKSLI
rrr

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

Bit 2 NTT : STM_LAR size indicator

This bit indicates if the STM implements the STM_LAR as 8 or 32 bits.

0: 32 bits

Bit 1 SLK : Lock current status

0: Enable write access to the STM. For read accesses to STM_LSR when the PADDRDBG31 signal is high, this bit is always 0.

1: Block write access to the STM. The STM ignores all write accesses to the registers when the PADDRDBG31 signal is low. Reads are permitted.

Bit 0 SLI : lock control mechanism existence

Indicates that a lock control mechanism exists for this device.

0: No lock control mechanism exists. The STM ignores writes to the STM_LAR. For read accesses to STM_LSR when the PADDRDBG31 signal is high, this bit is always 0.

1: Lock control mechanism is present. For read accesses to STM_LSR when the PADDRDBG31 signal is low, this bit is always 1.

STM authentication status register (STM_AUTHSTATUS)

Address offset: 0xFB8

Reset value: 0x0000 00AA

This register reports the required security level and current status of the authentication interface.

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: Disabled

0x3: Enabled

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

0x2: Disabled

0x3: Enabled

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

0x2: Disabled

0x3: Enabled

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

0x2: Disabled

0x3: Enabled

STM device architecture register (STM_DEVARCH)

Address offset: 0xFBC

Reset value: 0x4771 0A63

This register indicates the architect and architecture of the STM.

31302928272625242322212019181716
ARCHITECT[10:0]PRESENTREVISION[3:0]
rrrrrrrrrrrrrrrr
1514131211109876543210
Res.ARCHID[14:0]
rrrrrrrrrrrrrrr

Bits 31:21 ARCHITECT[10:0] : component architect

This bitfield defines the architect of the component. Bits[31:28] indicate the DEP106 continuation code of the architect. Bits[27:21] indicate the JEP106 identification code of the architect. Refer to the Standard Manufacturers Identification Code for information about JEP106.

0x23B: the architect of the STM-500 is Arm.

Bit 20 PRESENT : STM_DEVARCH register presence

1: The STM_DEVARCH register is present.

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

This bitfield returns the revision of the architecture that ARCHID specifies.

0x1: STMv1.1 architecture (for the STM-500)

Bit 15 Reserved, must be kept at reset value.

Bits 14:0 ARCHID[14:0] : Architecture ID

This bitfield returns a value that identifies the architecture of the component.

0x0A63: STMv1 architecture (for the STM-500)

STM device configuration register (STM_DEVID)

Address offset: 0xFC8

Reset value: 0x0001 0000

This register indicates the capabilities of the CoreSight STM.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.NUMSP[16:0]
r
1514131211109876543210
NUMSP[15:0]
rrrrrrrrrrrrrrrr

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

Bits 16:0 NUMSP[16:0] : Number of stimulus ports implemented

0x10000: 65 536 stimulus ports are implemented (however only 4096 are accessible).

STM device type identifier register (STM_DEVTYPE)

Address offset: 0xFCC

Reset value: 0x0000 0063

This register provides a debugger with component information when the part number is not recognized. The debugger can then report this information.

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-classification within the major category

0x6: CoreSight STM. The component generates trace based on software and hardware stimulus.

Bits 3:0 MAJOR[3:0] : Major classification for debug or trace component

0x3: The component is a trace source.

STM peripheral ID4 register (STM_PIDR4)

Address offset: 0xFD0

Reset value: 0x0000 0004

This register belongs to the set of peripheral identification registers. It contains part of the designer identity and the memory footprint indicator.

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]DES_2[3:0]
rrrrrrrr

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

Bits 7:4 SIZE[3:0] : Component memory-size indicator

This bitfield indicates the total contiguous size of the memory window used by the component, in powers of two from the standard 4 Kbytes. If a component only requires the standard 4 Kbytes, this bitfield must be read as 0x0.

For 8 Kbytes, it is set to 0x1. For 16 Kbytes, it set to 0x2. For 32 Kbytes, it is set to 0x3, and similarly for larger memory windows.

0x0: The device only occupies 4 Kbytes of the memory.

Bits 3:0 DES_2[3:0] : JEDEC continuation code

This bitfield indicates the designer of the component, together with the identity code.

0x4: Indicate that Arm JEDEC identity code is on the 5 th bank.

STM peripheral ID0 register (STM_PIDR0)

Address offset: 0xFE0

Reset value: 0x0000 0063

This register belongs to the set of peripheral identification registers. It contains part of the designer specific part number.

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.PART_0[7:0]
rrrrrrrr

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

Bits 7:0 PART_0[7:0] : bits [7:0] of the component part number

This bitfield is specified by the designer of the component.

0x63: CoreSight STM part number[7:0]. Eight least significant bits of the part number (0x963).

STM peripheral ID1 register (STM_PIDR1)

Address offset: 0xFE4

Reset value: 0x0000 00B9

This register belongs to the set of peripheral identification registers. It contains part of the designer specific part number and part of the designer identity.

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.DES_0[3:0]PART_1[3:0]
rrrrrrrr

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

Bits 7:4 DES_0[3:0] : bits [3:0] of the JEDEC identity code

This bitfield indicates the designer of the component, together with the continuation code.

0xB: least significant four bits of the JEP106 identity code

Bits 3:0 PART_1[3:0] : bits [11:8] of the component part number

Specified by the designer of the component.

0x9: CoreSight STM part number[11:8]. Most significant four bits of the part number (0x963).

STM peripheral ID2 register (STM_PIDR2)

Address offset: 0xFE8

Reset value: 0x0000 001B

This register belongs to the set of peripheral identification registers. It contains part of the designer identity and the product revision.

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]JEDECDES_1[2:0]
rrrrrrrr

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

Bits 7:4 REVISION[3:0] : Incremental component design version

An incremental value starting from 0x0 for the first design of this component. The value increases by one at both major and minor revisions, and is used as a look-up to establish the exact major and minor revisions.

0x1: This device is at r0p1.

Bit 3 JEDEC : JEDEC assigned value usage

This bit indicates the use of a JEDEC assigned value. This bit is always set.

1: The designer ID is specified by JEDEC (refer to http://www.jedec.org ).

Bits 2:0 DES_1[2:0] : bits [6:4] of the JEDEC identity code

This bitfield indicates the designer of the component, together with the continuation code.

0x3: Most significant three bits of the JEP106 identity code

STM peripheral ID3 register (STM_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] : Minor fix indicator

This bitfield indicates minor errata fixes specific to the design, for example metal fixes after implementation. In most cases, this field is 0x0. Arm recommends that the component designers ensure that this bitfield can be changed by a metal fix if required (for example by driving this bitfield from registers that reset to 0).

0x0: No metal fix in the component

Bits 3:0 CMOD[3:0] : Customer modification indicator

When the component is a reusable peripheral, this value indicates if the customer has modified the behavior of the component. In most cases this field is 0x0.

0x0: No modification made

STM component ID0 register (STM_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.PRMBL_0[7:0]
rrrrrrrr

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

Bits 7:0 PRMBL_0[7:0] : bits [31:24] of component identification

This bitfield indicates that the identification registers are present.

0x0D: Identification value

STM component ID1 register (STM_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]PRMBL_1[3:0]
rrrrrrrr

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

Bits 7:4 CLASS[3:0] : Component class

This bitfield indicates the component class (for example, ROM table or CoreSight).

0x9: CoreSight component

Bits 3:0 PRMBL_1[3:0] : bits [19:16] of component identification

This bitfield indicates that the identification registers are present.

0x0: Identification value

STM component ID2 register (STM_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.PRMBL_2[7:0]
rrrrrrrr

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

Bits 7:0 PRMBL_2[7:0] : bits [15:8] of component identification

This bitfield indicates that the identification registers are present.

0x05: Identification value

STM component ID3 register (STM_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.PRMBL_3[7:0]
rrrrrrrr

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

Bits 7:0 PRMBL_3[7:0] : bits [7:0] of component identification

This bitfield indicates that the identification registers are present.

0xB1: Identification value

STM register map

Table 901. STM register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xD00STM_HEERHEE[31:0]
Reset value00000000000000000000000000000000
0xD04-0xD1CReservedReserved
0xD20STM_HETERHETE[31:0]
Reset value00000000000000000000000000000000
0xD24-0xD5CReservedReserved
0xD60STM_HEBSRRes.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.HEBS
Reset value0
0xD64STM_HEMCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.ATBTRIGENTRIGCLEARTRIGSTATUSTRIGCTLRes.ERRDETECTCOMPENEN
Reset value0000000
0xD68STM_HEEXTMUXRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.EXTMUX[7:0]
Reset value00000000

Table 901. STM register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xD6C-0xDF0ReservedReserved
0xDF4STM_HEMASTRResResResResResResResResResResResResResResResResMASTER[15:0]
Reset value000000000010000
0xDF8STM_HEFEAT1RResHEEXTMUXSIZE [2:0]ResResResResNUMHE[8:0]ResResResResResResResResResHECOMP[1:0]HEMASTRHEERRResHETER
Reset value01100100000011011
0xDFCSTM_HEIDRResResResResResResResResResResResResResResResResResResResResVENDSPEC [3:0]CLASSREV [3:0]CLASS[3:0]
Reset value000000010001
0xE00STM_SPERSPE[31:0]
Reset value00000000000000000000000000000000
0xE04-0xE1CReservedReserved
0xE20STM_SPTERSPTE[31:0]
Reset value00000000000000000000000000000000
0xE24-0xE5CReservedReserved
0xE60STM_SPCRResResResResPORTSEL[7:0]ResResResResResResResResResResResResResResResResResResResPORTCTL [1:0]
Reset value00000000
0xE64STM_SPMSRResResResResResResResResMASTSEL[7:0]ResResResResResResResResResResResResResResMASTCTL
Reset value000000000
0xE68STM_SPOVERRIDERResResResResPORTSEL[12:0]ResResResResResResResResResResResResOVERTSOVERCTL[1:0]
Reset value00000000000000
0xE6CSTM_SPMOVERRIDERResResResResResResResResMASTSEL[7:0]ResResResResResResResResResResResResResResMASTCTL
Reset value000000000
0xE70STM_SPTRIGCSRResResResResResResResResResResResResResResResResResResResResResResResResResResResATBTRIGEN DIRATBTRIGEN TETRIGCLEARTRIGSTATUSTRIGCTL
Reset value00000
Table 901. STM register map and reset values (continued)
OffsetRegister name313029282726252423222120191817161514131211109876543210
0xE74-0xE7CReservedReserved
0xE80STM_TCSRRes.Res.Res.Res.Res.Res.Res.Res.BUSYTRACEID[6:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.COMPENRes.Res.SYNCENTSENEN
Reset value000000000100
0xE84STM_TSSTIMRRes.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.FORCETS
Reset value0
0xE88ReservedReserved
0xE8CSTM_TSFREQRFREQ[31:0]
Reset value00000000000000000000000000000000
0xE90STM_SYNCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.MODECOUNT[8:0]Res.Res.Res.Res.
Reset value0000000000
0xE94STM_AUXCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.QHWEVOVERRIDERes.Res.Res.Res.PRIORNVDISASYNCPEFIFOAF
Reset value0000
0xE98-0xE9CReservedReserved
0xEA0STM_FEAT1RRes.Res.Res.Res.Res.Res.Res.Res.SWOEN[1:0]SYNCEN[1:0]HWTEN[1:0]TSPRESCALE [1:0]TRIGCTL[1:0]TRACEBUS [3:0]SYNC[1:0]FORCETSTSFREQTS [1:0]PROT[3:0]
Reset value011001011000011111010001
0xEA4STM_FEAT2RRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SPTYPE[1:0]DSIZE[3:0]Res.SPTRTYPE [1:0]PRIVMASK [1:0]SPOVERRIDESPCOMP[1:0]Res.SPERSPTER[1:0]
Reset value0100011001111010
0xEA8STM_FEAT3RRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.NUMMAST[6:0]
Reset value1111111
0xEAC-0xF9CReservedReserved
0xFA0STM_CLAIMSETRes.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.SET[3:0]
Reset value1111
0xFA4STM_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.CLR[3:0]
Reset value0000

Table 901. STM register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFA8-0xFACReservedReserved
0xFB0STM_LARKEY[31:0]
Reset value00000000000000000000000000000000
0xFB4STM_LSRRes.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.NTTSLKSLI
Reset value011
0xFB8STM_AUTHSTATUSRes.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.SNID [1:0]SID [1:0]NSID [1:0]NSID [1:0]
Reset value101010
0xFBCSTM_DEVARCHARCHITECT[10:0]PRESENTREVISION [3:0]Res.ARCHID[14:0]
Reset value0100011101110001000101001100011
0xFC0-0xFC4ReservedReserved
0xFC8STM_DEVIDRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.NUMSP[16:0]
Reset value10000000000000000
0xFCCSTM_DEVTYPERes.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:0]
Reset value01100011
0xFD0STM_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]DES_2[3:0]
Reset value00000100
0xFD4-0xFDCReservedReserved
0xFE0STM_PIDR0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PART_0[7:0]
Reset value01100011
0xFE4STM_PIDR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DES_0[3:0]PART_1 [3:0]
Reset value10111001
0xFE8STM_PIDR2Res.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]JEDECDES_1 [2:0]
Reset value00011011
0xFECSTM_PIDR3Res.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 value00000000
0xFF0STM_CIDR0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PRMBL_0[7:0]
Reset value00001101
0xFF4STM_CIDR1Res.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]PRMBL_1 [3:0]
Reset value10010000

Table 901. STM register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFF8STM_CIDR2ResResResResResResResResResResResResResResResResResResResResResResResResPRMBL_2[7:0]
Reset value00000101
0xFFCSTM_CIDR3ResResResResResResResResResResResResResResResResResResResResResResResResPRMBL_3[7:0]
Reset value10110001

78.12.20 Microcontroller debug unit (DBGMCU)

The DBGMCU is a component containing a number of registers which control the power and clock behavior in debug mode. Specifically it allows the debugger, or debug software:

Legacy DBGMCU features (dbg/trace_en, dbg_sleep/stop/stby, dbg_freeze) are disabled when debug is closed. Only registers required for authentication procedure are accessible.

Low-power mode emulation in debug

When entering a low-power state (Sleep, Stop, Standby), the clock to the processor, the system clock or, in the case of Standby, the core power supply can be switched off. This prevents any debug accesses to the unclocked domains.

To simplify debugging of applications which use these power saving features, the clock and power can be maintained or not, according to the setting of DBG_STANDBY, DBG_STOP, and DBG_SLEEP bits in DBGMCU_CR.

There are no restrictions from a security perspective to access these control bits, as the overall system behavior is not modified, except that the power and clocks remain on.

If the system enters one of the power saving modes, and the corresponding register bit is set, the system state in the EXTI is not affected: the system enters and exits the low-power state as normal. However the clock and power remain active, allowing the debugger full access.

Note: If the TPIU is used, loss of trace data can occur if the system goes into Standby mode, and switches off the core power before the TPIU FIFO is empty. The software can check the FIFO state to avoid this. If the DBG_STANDBY bit is set while using the trace port, the trace continues to flush during Standby mode, and no specific software action is required.

Peripheral clock “freeze” in debug

When the processor is halted in debug state, by default the peripherals continue to operate. The system state, at the moment the breakpoint was taken, is overwritten and cannot be recovered. Furthermore, certain peripherals require software intervention on a regular basis, or they can time out, and generate a reset (watchdogs, for example).

By setting the corresponding bits in the DBGMCU peripheral freeze registers, certain peripherals clocks can be stopped automatically as soon as processor enters debug state. The clocks remain stopped until the processor is restarted.

The following peripherals support this feature:

The peripheral accesses can be controlled from a RISUP for peripherals (see Section 6: Resource isolation framework security controller (RIFSC) for more details).

DBGMCU freeze register bits inherit the security level of the peripheral from the RISUP, or from the peripheral itself if it is TrustZone-aware (such as DMA) as follows:

78.12.21 DBGMCU registers

The register file base address for the DBGMCU is defined in Table 870 .

The DBGMCU registers are reset only by a power-on-reset.

DBGMCU identity code register (DBGMCU_IDCODE)

Address offset: 0x000

Reset value: 0xXXXX 6XXX

31302928272625242322212019181716
REV_ID[15:0]
rrrrrrrrrrrrrrrr
1514131211109876543210
Res.Res.Res.Res.DEV_ID[11:0]
rrrrrrrrrrrr

Bits 31:16 REV_ID[15:0] : Revision

0x1000: revision A

0x2000: revision B

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

Bits 11:0 DEV_ID[11:0] : Device ID

0x486: STM32N6x5/x7xx

DBGMCU configuration register (DBGMCU_CR)

Address offset: 0x004

Reset value: 0x8000 0000

31302928272625242322212019181716
HLT_TS
GEN_EN
Res.Res.DBTR
GOEN
Res.Res.Res.Res.Res.Res.TRACE
CLKEN
DBGCL
KEN
Res.Res.Res.Res.
rwrwrwrw

1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DBG_ST
ANDBY
DBG_S
TOP
DBG_S
LEEP
rwrwrw

Bit 31 HLT_TSGEN_EN : TSGEN halt enable

1: TSGEN stops counting when processor is in halt.

0: TSGEN keeps on counting when processor is in halt.

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

Bit 28 DBTRGOEN : DBTRGIO connection control

0: DBTRGIO connected to DBTRGIN

1: DBTRGIO connected to DBTRGOUT

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

Bit 21 TRACECLKEN : TPIU export clock enable through software

0: TPIU clock is off.

1: TPIU clock is on.

Bit 20 DBGCLKEN : Debug clock enable through software

0: Debug clock is off.

1: Debug clock is on.

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

Bit 2 DBG_STANDBY : Debug in Standby mode

0: Normal operation. All clocks are disabled. The V DD domain is automatically powered down in Standby mode.

1: Automatic clock stop/power down disabled. All active clocks and oscillators continue to run during Standby mode. The V DD domain supply is maintained, allowing full debug capability.

Note: On exit from Standby mode, a system reset is performed.

Bit 1 DBG_STOP : Debug in Stop mode

0: Normal operation. All clocks are disabled automatically in Stop mode.

1: Automatic clock stop disabled. All active clocks and oscillators continue to run during Stop mode, allowing full debug capability.

Note: On exit from Stop mode, the clock settings is set to the Stop mode exit state.

Bit 0 DBG_SLEEP : Debug in Sleep mode

0: Normal operation. Peripheral clocks are automatically stopped in Sleep mode.

1: Automatic clock stop disabled. Peripheral clocks continue to run, allowing full debug capability.

DBGMCU APB1L peripheral freeze register (DBGMCU_APB1LFZR)

Address offset: 0x010

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.DBG_I3C2_STOPDBG_I3C1_STOPDBG_I2C3_STOPDBG_I2C2_STOPDBG_I2C1_STOPRes.Res.Res.Res.Res.
rwrwrwrwrw

1514131211109876543210
Res.Res.DBG_TIM11_STOPDBG_TIM10_STOPDBG_WDG1_STOPRes.DBG_LPTIM1_STOPDBG_TIM14_STOPDBG_TIM13_STOPDBG_TIM12_STOPDBG_TIM7_STOPDBG_TIM6_STOPDBG_TIM5_STOPDBG_TIM4_STOPDBG_TIM3_STOPDBG_TIM2_STOP
rwrwrwrwrwrwrwrwrwrwrwrwrw

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

Bit 25 DBG_I3C2_STOP : I3C2 SMBUS timeout stop in debug

0: Normal operation. I3C2 SMBUS timeout continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. I3C2 SMBUS timeout is frozen while Cortex-M55 is in debug mode.

Bit 24 DBG_I3C1_STOP : I3C1 SMBUS timeout stop in debug

0: Normal operation. I3C1 SMBUS timeout continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. I3C1 SMBUS timeout is frozen while Cortex-M55 is in debug mode.

Bit 23 DBG_I2C3_STOP : I2C3 SMBUS timeout stop in debug

0: Normal operation. I2C3 SMBUS timeout continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. I2C3 SMBUS timeout is frozen while Cortex-M55 is in debug mode.

Bit 22 DBG_I2C2_STOP : I2C2 SMBUS timeout stop in debug

0: Normal operation. I2C2 SMBUS timeout continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. I2C2 SMBUS timeout is frozen while Cortex-M55 is in debug mode.

Bit 21 DBG_I2C1_STOP : I2C1 SMBUS timeout stop in debug

0: Normal operation. I2C1 SMBUS timeout continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. I2C1 SMBUS timeout is frozen while Cortex-M55 is in debug mode.

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

Bit 13 DBG_TIM11_STOP : TIM11 stop in debug

0: Normal operation. TIM11 continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. TIM11 is frozen while Cortex-M55 is in debug mode.

Bit 12 DBG_TIM10_STOP : TIM10 stop in debug

0: Normal operation. TIM10 continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. TIM10 is frozen while Cortex-M55 is in debug mode.

Bit 11 DBG_WWDG1_STOP : WWDG1 stop in debug

0: Normal operation. WWDG1 continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. WWDG1 is frozen while Cortex-M55 is in debug mode.

Bit 10 Reserved, must be kept at reset value.

Bit 9 DBG_LPTIM1_STOP : LPTIM1 stop in debug

0: Normal operation. LPTIM1 continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. LPTIM1 is frozen while Cortex-M55 is in debug mode.

Bit 8 DBG_TIM14_STOP : TIM14 stop in debug

0: Normal operation. TIM14 continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. TIM14 is frozen while Cortex-M55 is in debug mode.

Bit 7 DBG_TIM13_STOP : TIM13 stop in debug

0: Normal operation. TIM13 continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. TIM13 is frozen while Cortex-M55 is in debug mode.

Bit 6 DBG_TIM12_STOP : TIM12 stop in debug

0: Normal operation. TIM12 continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. TIM12 is frozen while Cortex-M55 is in debug mode.

Bit 5 DBG_TIM7_STOP : TIM7 stop in debug

0: Normal operation. TIM7 continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. TIM7 is frozen while Cortex-M55 is in debug mode.

Bit 4 DBG_TIM6_STOP : TIM6 stop in debug

0: Normal operation. TIM6 continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. TIM6 is frozen while Cortex-M55 is in debug mode.

Bit 3 DBG_TIM5_STOP : TIM5 stop in debug

0: Normal operation. TIM5 continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. TIM5 is frozen while Cortex-M55 is in debug mode.

Bit 2 DBG_TIM4_STOP : TIM4 stop in debug

0: Normal operation. TIM4 continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. TIM4 is frozen while Cortex-M55 is in debug mode.

Bit 1 DBG_TIM3_STOP : TIM3 stop in debug

0: Normal operation. TIM3 continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. TIM3 is frozen while Cortex-M55 is in debug mode.

Bit 0 DBG_TIM2_STOP : TIM2 stop in debug

0: Normal operation. TIM2 continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. TIM2 is frozen while Cortex-M55 is in debug mode.

DBGMCU_APB1H peripheral freeze register (DBGMCU_APB1HFZR)

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.DBG_FDCAN_STOPRes.Res.Res.Res.Res.Res.Res.Res.
rw

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

Bit 8 DBG_FDCAN_STOP : FDCAN stop in debug

0: Normal operation. FDCAN continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. FDCAN is frozen while Cortex-M55 is in debug mode.

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

DBGMCU APB2 peripheral freeze register (DBGMCU_APB2FZR)

Address offset: 0x018

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DBG_TIM9_STOPDBG_TIM17_STOPDBG_TIM16_STOPDBG_TIM15_STOP
rwrwrwrw
1514131211109876543210
DBG_TIM18_STOPRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DBG_TIM8_STOPDBG_TIM1_STOP
rwrwrw

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

Bit 19 DBG_TIM9_STOP : TIM9 stop in debug

0: Normal operation. TIM9 continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. TIM9 is frozen while Cortex-M55 is in debug mode.

Bit 18 DBG_TIM17_STOP : TIM17 stop in debug

0: Normal operation. TIM17 continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. TIM17 is frozen while Cortex-M55 is in debug mode.

Bit 17 DBG_TIM16_STOP : TIM16 stop in debug

0: Normal operation. TIM16 continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. TIM16 is frozen while Cortex-M55 is in debug mode.

Bit 16 DBG_TIM15_STOP : TIM15 stop in debug

0: Normal operation. TIM15 continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. TIM15 is frozen while Cortex-M55 is in debug mode.

Bit 15 DBG_TIM18_STOP : TIM18 stop in debug

0: Normal operation. TIM18 continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. TIM18 is frozen while Cortex-M55 is in debug mode.

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

Bit 1 DBG_TIM8_STOP : TIM8 stop in debug

0: Normal operation. TIM8 continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. TIM8 is frozen while Cortex-M55 is in debug mode.

Bit 0 DBG_TIM1_STOP : TIM1 stop in debug

0: Normal operation. TIM1 continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. TIM1 is frozen while Cortex-M55 is in debug mode.

DBGMCU APB4 peripheral freeze register (DBGMCU_APB4FZR)

Address offset: 0x01C

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DBG_I
WDG_
STOP
Res.DBG_R
TC_ST
OP
rwrw
1514131211109876543210
Res.Res.Res.DBG_L
PTIM5_
STOP
DBG_L
PTIM4_
STOP
DBG_L
PTIM3_
STOP
DBG_L
PTIM2_
STOP
DBG_I
2C4_S
TOP
Res.Res.Res.Res.Res.Res.Res.Res.
rwrwrwrwrw

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

Bit 18 DBG_IWDG_STOP : WWDG stop in debug

0: Normal operation. IWDG continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. IWDG is frozen while Cortex-M55 is in debug mode.

Bit 17 Reserved, must be kept at reset value.

Bit 16 DBG_RTC_STOP : RTC clock is suspended in debug

0: Normal operation. RTC clock continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. RTC clock is suspended while Cortex-M55 is in debug mode.

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

Bit 12 DBG_LPTIM5_STOP : LPTIM5 stop in debug

0: Normal operation. LPTIM5 continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. LPTIM5 is frozen while Cortex-M55 is in debug mode.

Bit 11 DBG_LPTIM4_STOP : LPTIM4 stop in debug

0: Normal operation. LPTIM4 continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. LPTIM4 is frozen while Cortex-M55 is in debug mode.

Bit 10 DBG_LPTIM3_STOP : LPTIM3 stop in debug

0: Normal operation. LPTIM3 continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. LPTIM3 is frozen while Cortex-M55 is in debug mode.

Bit 9 DBG_LPTIM2_STOP : LPTIM2 stop in debug

0: Normal operation. LPTIM2 continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. LPTIM2 is frozen while Cortex-M55 is in debug mode.

Bit 8 DBG_I2C4_STOP : I2C4 stop in debug

0: Normal operation. I2C4 continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. I2C4 is frozen while Cortex-M55 is in debug mode.

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

DBGMCU_APB5 peripheral freeze register (DBGMCU_APB5FZR)

Address offset: 0x020

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.DBG_G
FXTIM
_STOP
Res.Res.Res.Res.
rw

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

Bit 4 DBG_GFXTIM_STOP : GFXTIM stop in debug

0: Normal operation. GFXTIM continues counting while Cortex-M55 is in debug mode.

1: Stop in debug. GFXTIM is frozen while Cortex-M55 is in debug mode.

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

DBGMCU AHB1 peripheral freeze register (DBGMCU_AHB1FZR)

Address offset: 0x024

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
DBG_G
PDMA1
_CH15
_STOP
DBG_G
PDMA1
_CH14
_STOP
DBG_G
PDMA1
_CH13
_STOP
DBG_G
PDMA1
_CH12
_STOP
DBG_G
PDMA1
_CH11
_STOP
DBG_G
PDMA1
_CH10
_STOP
DBG_G
PDMA1
_CH9
_STOP
DBG_G
PDMA1
_CH8
_STOP
DBG_G
PDMA1
_CH7
_STOP
DBG_G
PDMA1
_CH6
_STOP
DBG_G
PDMA1
_CH5
_STOP
DBG_G
PDMA1
_CH4
_STOP
DBG_G
PDMA1
_CH3
_STOP
DBG_G
PDMA1
_CH2
_STOP
DBG_G
PDMA1
_CH1
_STOP
DBG_G
PDMA1
_CH0
_STOP
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

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

Bits 15:0 DBG_GPDMA1_CHn_STOP : GPDMA1_CHn suspend in debug (n = 15 to 0)

0: Normal operation. GPDMA1_CHn continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. GPDMA1_CHn is suspended while Cortex-M55 is in debug mode.

DBGMCU AHB5 peripheral freeze register (DBGMCU_AHB5FZR)

Address offset: 0x028

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DBG_N
PU_ST
OP
rw
1514131211109876543210
DBG_H
PDMA1
_CH15
_STOP
DBG_H
PDMA1
_CH14
_STOP
DBG_H
PDMA1
_CH13
_STOP
DBG_H
PDMA1
_CH12
_STOP
DBG_H
PDMA1
_CH11
_STOP
DBG_H
PDMA1
_CH10
_STOP
DBG_H
PDMA1
_CH9
_STOP
DBG_H
PDMA1
_CH8
_STOP
DBG_H
PDMA1
_CH7
_STOP
DBG_H
PDMA1
_CH6
_STOP
DBG_H
PDMA1
_CH5
_STOP
DBG_H
PDMA1
_CH4
_STOP
DBG_H
PDMA1
_CH3
_STOP
DBG_H
PDMA1
_CH2
_STOP
DBG_H
PDMA1
_CH1
_STOP
DBG_H
PDMA1
_CH0
_STOP
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

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

Bit 16 DBG_NPU_STOP : NPU stop in debug mode

0: Normal operation. The NPU continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. NPU is suspended while Cortex-M55 is in debug mode.

Bits 15:0 DBG_HPDMA1_CHn_STOP : HPDMA3_CHn suspend in debug (n = 15 to 0)

0: Normal operation. HPDMA3_CHn continues to operate while Cortex-M55 is in debug mode.

1: Stop in debug. HPDMA3_CHn is suspended while Cortex-M55 is in debug mode.

DBGMCU status register (DBGMCU_SR)

Address offset: 0x0FC

Reset value: 0x0001 0003

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.AP1_ENABLEAP0_ENABLE
rr
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.AP1_PRESENTAP0_PRESENT
rr

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

Bit 17 AP1_ENABLE : Access point 1 enable

0: AP disabled (debug access locked)

1: AP enabled (debug access open)

Bit 16 AP0_ENABLE : Access point 0 enable

1: Always enable

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

Bit 1 AP1_PRESENT : Access point 1 presence

1: AP present

Bit 0 AP0_PRESENT : Access point 0 presence

1: AP present

DBGMCU host authentication register (DBGMCU_DBG_AUTH_HOST)

Address offset: 0x100

Reset value: 0x0000 0000

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

Bits 31:0 MESSAGE[31:0] : Mailbox between debugger and processor
Read/write from debugger; read only from processor

DBGMCU device authentication register (DBGMCU_DBG_AUTH_DEV)

Address offset: 0x104

Reset value: 0x0000 0000

31302928272625242322212019181716
MESSAGE[31:16]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
MESSAGE[15:0]
rwrwrwrwrwrwrwrsrwrwrwrwrwrwrwrs

Bits 31:0 MESSAGE[31:0] : Mailbox between debugger and processor
Read/write from processor, read only from debugger

DBGMCU message read acknowledge authentication register (DBGMCU_DBG_AUTH_ACK)

Address offset: 0x108

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.DEVICE_ACKHOST_ACK
rr

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

Bit 1 DEVICE_ACK : Access status to DBG_AUTH_DEV register
1: Processor has written DBG_AUTH_DEV
0: Debugger has read DBG_AUTH_DEV

Bit 0 HOST_ACK : Access status to DBG_AUTH_HOST register
1: Debugger has written DBG_AUTH_HOST
0: Processor has read DBG_AUTH_HOST

DBGMCU register map

Table 902. DBGMCU register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x000DBGMCU_IDCODEREV_ID[15:0]DEV_ID[11:0]
Reset valueXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Table 902. DBGMCU register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x004DBGMCU_CRHLT_TSGEN_ENRes.Res.DBTRGOENRes.Res.Res.Res.Res.TRACECLKENDBGCLKENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DBG_STANDBYDBG_STOPDBG_SLEEP
Reset value1000000
0x008-
0x00C
ReservedReserved
0x010DBGMCU_
APB1LFZR
Res.Res.Res.Res.Res.Res.DBG_I3C2_STOPDBG_I3C1_STOPDBG_I2C3_STOPDBG_I2C2_STOPDBG_I2C1_STOPRes.Res.Res.Res.Res.Res.Res.DBG_TIM11_STOPDBG_TIM10_STOPDBG_WWDG1_STOPRes.DBG_LPTIM1_STOPDBG_TIM14_STOPDBG_TIM13_STOPDBG_TIM12_STOPDBG_TIM7_STOPDBG_TIM6_STOPDBG_TIM5_STOPDBG_TIM4_STOPDBG_TIM3_STOPDBG_TIM2_STOP
Reset value000000000000000000
0x014DBGMCU_
APB1HFZR
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DBG_FDCAN_STOPRes.Res.Res.Res.Res.Res.Res.Res.
Reset value0
0x018DBGMCU_
APB2FZR
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DBG_TIM9_STOPDBG_TIM17_STOPDBG_TIM16_STOPDBG_TIM15_STOPDBG_TIM18_STOPRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DBG_TIM8_STOPDBG_TIM1_STOP
Reset value0000000
0x01CDBGMCU_
APB4FZR
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DBG_IWDG_STOPRes.DBG_RTC_STOPRes.Res.Res.DBG_LPTIM5_STOPDBG_LPTIM4_STOPDBG_LPTIM3_STOPDBG_LPTIM2_STOPDBG_I3C4_STOPRes.Res.Res.Res.Res.Res.Res.Res.
Reset value0000000
0x020DBGMCU_
APB5FZR
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.DBG_GFXTIM_STOPRes.Res.Res.
Reset value0

Table 902. DBGMCU register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x024DBGMCU_AHB1FZRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DBG_GPDMA1_CH15_STOPDBG_GPDMA1_CH14_STOPDBG_GPDMA1_CH13_STOPDBG_GPDMA1_CH12_STOPDBG_GPDMA1_CH11_STOPDBG_GPDMA1_CH10_STOPDBG_GPDMA1_CH9_STOPDBG_GPDMA1_CH8_STOPDBG_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 value0000000000000000
0x028DBGMCU_AHB5FZRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DBG_NPU_STOPDBG_HPDMA1_CH15_STOPDBG_HPDMA1_CH14_STOPDBG_HPDMA1_CH13_STOPDBG_HPDMA1_CH12_STOPDBG_HPDMA1_CH11_STOPDBG_HPDMA1_CH10_STOPDBG_HPDMA1_CH9_STOPDBG_HPDMA1_CH8_STOPDBG_HPDMA1_CH7_STOPDBG_HPDMA1_CH6_STOPDBG_HPDMA1_CH5_STOPDBG_HPDMA1_CH4_STOPDBG_HPDMA1_CH3_STOPDBG_HPDMA1_CH2_STOPDBG_HPDMA1_CH1_STOPDBG_HPDMA1_CH0_STOP
Reset value00000000000000000
0x02C-0x0F8ReservedReserved
0x0FCDBGMCU_SRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.AP1_ENABLEAP0_ENABLERes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.AP1_PRESENTAP0_PRESENT
Reset value0111
0x100DBGMCU_DBG_AUTH_HOSTMESSAGE[31:0]
Reset value00000000000000000000000000000000
0x104DBGMCU_DBG_AUTH_DEVMESSAGE[31:0]
Reset value00000000000000000000000000000000
0x108DBGMCU_DBG_AUTH_ACKRes.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.DEVICE_ACKHOST_ACK
Reset value00

78.13 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 r3p1 Technical Reference Manual, Issue F, 26th Sept 2013.
  3. 3. DDI 0461B (ID010111) - Arm CoreSight Trace Memory Controller r0p1 Technical Reference Manual, Issue B, 10 Dec 2010
  4. 4. Arm Cortex-M55 Processor r0p1 Technical Reference Manual, Issue 0001-05, 31 March 2020
  5. 5. Arm CoreSight ETM-M55 r0p2 Technical Reference Manual, Issue 0002-01, 17 July 2020
  6. 6. DDI 0528B (ID062514) - Arm CoreSight STM-500 System Trace Macrocell r0p1 Technical Reference Manual, Issue B, 11 March 2014
  7. 7. IHI 0022E (ID022613) - AMBA AXI and ACE Protocol Specification, Issue E, 22 February 2013
  8. 8. DDI 0314H - Arm CoreSight Components Technical Reference Manual, Issue H, 10 July 2009