60. Debug infrastructure

60.1 Introduction

The debug infrastructure allows software designers to debug and trace their embedded software.

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

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

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. Single-wire trace can be maintained even when the processor is switched off or clock-stopped.

The processor can be debugged using equipment connected to the JTAG/SWD debug port. This allows breakpoint and watchpoint setting, code stepping, memory access, and so on.

Trace information is combined into a single trace stream and output to a real-time trace port analyzer. An ID embedded in the trace allows the analyzer to identify the source of each information packet.

Instead of streaming it off-chip, the combined trace information can be stored on-chip in a circular buffer. The trace storage can be started and stopped by different means such as a debugger command, a software command, an external trigger signal or an internal event.

The stored trace can be dumped off-chip to the trace port analyzer. The buffer draining can be initiated by different means such as debugger, software, external trigger or internal event.

The debugger can read the contents of the trace buffer 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 trace buffer can be read by the processor core, or transferred into system memory by DMA. This powerful feature allows built-in test software to monitor real-time code execution, analyze and identify faults, handle exceptions autonomously, and so on.

The stored trace can also be uploaded to a host machine using one of the MCU's many communications 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.

60.2 Debug infrastructure features

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

The CoreSight components are described at high level in this document. Detailed information is available in the Arm ® documents referenced in Section 60.7 .

60.3 Debug infrastructure functional description

60.3.1 Debug infrastructure block diagram

The block diagram shows the logical partitioning of the debug infrastructure.

Figure 827. Block diagram of debug infrastructure

Block diagram of debug infrastructure showing the logical partitioning of the debug infrastructure. The diagram is divided into three main functional blocks: Debug access port, Cortex-M7 debug, and Trace & debug subsystem. The Debug access port includes JTAG/Serial-wire port, SWJ-DP, and DAPBUS. The Cortex-M7 debug block includes ROM table, DWT, FPB, ITM, Cortex-M7 core, ROM table, EPPB, CTI, and ETM. The Trace & debug subsystem includes Replicator, CSTF, SWTF, ETF, SPAM, SWO, TPIU, and various trace ports. A legend on the right defines the symbols used: CoreSight™ component (white box), APB-D (system debug bus) (thick line), DAPBUS (double-headed arrow), ATB (trace bus) (thin line), CTM (cross trigger matrix) (dashed line), Timestamp (dashed line with arrow), and Signals (thin line with arrow). The diagram also shows connections to the System bus matrix, APB mux, Sys ROM table 1, DBGMCU, TSG, CTM, Sys ROM table 2, Sys CTI, and various trigger signals (TRGOUT, TRGIO, TRGIN).
Block diagram of debug infrastructure showing the logical partitioning of the debug infrastructure. The diagram is divided into three main functional blocks: Debug access port, Cortex-M7 debug, and Trace & debug subsystem. The Debug access port includes JTAG/Serial-wire port, SWJ-DP, and DAPBUS. The Cortex-M7 debug block includes ROM table, DWT, FPB, ITM, Cortex-M7 core, ROM table, EPPB, CTI, and ETM. The Trace & debug subsystem includes Replicator, CSTF, SWTF, ETF, SPAM, SWO, TPIU, and various trace ports. A legend on the right defines the symbols used: CoreSight™ component (white box), APB-D (system debug bus) (thick line), DAPBUS (double-headed arrow), ATB (trace bus) (thin line), CTM (cross trigger matrix) (dashed line), Timestamp (dashed line with arrow), and Signals (thin line with arrow). The diagram also shows connections to the System bus matrix, APB mux, Sys ROM table 1, DBGMCU, TSG, CTM, Sys ROM table 2, Sys CTI, and various trigger signals (TRGOUT, TRGIO, TRGIN).

60.3.2 Debug infrastructure pins and internal signals

Table 594. JTAG/Serial-wire debug port pins

Pin nameJTAG debug portSW debug portPin assignment
TypeDescriptionTypeDescription
JTMS/SWDIOIJTAG test mode selectIOSerial wire data in/outPA13
JTCK/SWCLKIJTAG test clockISerial wire clockPA14
JTDIIJTAG test data input--PA15
JTDOOJTAG test data output--PB3
nJTRSTIJTAG test reset--PB4

Table 595. Trace port pins

Pin nameTypeDescriptionPin assignment
TRACED0OTrace synchronous data out 0Refer to datasheet
TRACED1OTrace synchronous data out 1
TRACED2OTrace synchronous data out 2
TRACED3OTrace synchronous data out 3
TRACECKOTrace clock

Table 596. Serial-wire trace port pins

Pin nameTypeDescriptionPin assignment
TRACESWOOSingle wire trace asynchronous data outPB3 (1)
  1. 1. TRACESWO is multiplexed with JTDO. This means that single wire trace is only available when using the serial wire debug interface, not when using JTAG

Table 597. Trigger pins

Pin nameTypeDescriptionPin assignment
TRGINIExternal trigger inputRefer to datasheet
TRGOUTOExternal trigger output
TRGIOIOExternal trigger bi-directional (1)
  1. 1. TRGIO can be configured as an input or an output by the TRGOEN bit in the DBGMCU. If configured as an input, it is connected to TRGIN. If an output, it is connected to TRGOUT. This is because TRGIN and TRGOUT are not available on certain packages.

60.3.3 Debug infrastructure powering, clocking and reset

Power domains

Figure 828. Power domains of debug infrastructure

Figure 828. Power domains of debug infrastructure. This block diagram shows the internal architecture of a microcontroller's debug infrastructure, divided into two power domains: D1 and D3. The D1 domain (light gray) contains the Cortex-M7 core and its associated debug and trace components, including ROM tables, DWT, FPB, ITM, CTI, ETM, and EPPB. The D3 domain (dark gray) contains the SWJ-DP (connected to JTAG/Serial-wire port), System bus matrix, APB mux, Sys ROM table 1, DBGMCU, TSG, and the serial-wire trace port (SWO, TRACECK, TRACED[3:0]). A Replicator and CSF/ETF/SPAM blocks are also shown. A legend on the right defines the symbols for CoreSight™ components, APB-D (system debug bus), DAPBUS, ATB (trace bus), CTM (cross trigger matrix), Timestamp, and Signals. The diagram is labeled MSv39773V2.
Figure 828. Power domains of debug infrastructure. This block diagram shows the internal architecture of a microcontroller's debug infrastructure, divided into two power domains: D1 and D3. The D1 domain (light gray) contains the Cortex-M7 core and its associated debug and trace components, including ROM tables, DWT, FPB, ITM, CTI, ETM, and EPPB. The D3 domain (dark gray) contains the SWJ-DP (connected to JTAG/Serial-wire port), System bus matrix, APB mux, Sys ROM table 1, DBGMCU, TSG, and the serial-wire trace port (SWO, TRACECK, TRACED[3:0]). A Replicator and CSF/ETF/SPAM blocks are also shown. A legend on the right defines the symbols for CoreSight™ components, APB-D (system debug bus), DAPBUS, ATB (trace bus), CTM (cross trigger matrix), Timestamp, and Signals. The diagram is labeled MSv39773V2.

The debug components are distributed across the power domains D1 and D3. The D3 power domain is always considered to be on when the debugger is connected. It therefore contains the SWJ-DP, so that the debugger does not lose the connection with the SoC when the other power domain is switched off. In addition, it contains the timestamp generator, the DBGMCU and the serial wire trace features.

The D1 power domain contains the Cortex-M7 core and the associated debug and trace components. It also contains the system trace components located on the APB-D. This power domain therefore needs to be on whenever a debug access to the Cortex-M7 is required, or whenever a trace functionality is active on the processor.

Clock domains

Figure 829. Clock domains of debug infrastructure

Figure 829. Clock domains of debug infrastructure. This block diagram illustrates the internal architecture of the debug infrastructure, showing various components and their associated clock domains. The diagram is divided into several functional blocks: JTAG / Serial-wire port (SWJ-DP), AHB-AP, APB-AP, System bus matrix, APB mux, Sys ROM table 1, DBGMCU, TSG, CTM, CTI, ETM, EPPB, ROM table, DWT, FPB, ITM, Cortex-M7 core, Replicator, Sys ROM table 2, CSF, SWF, ETF, SRAM, TPIU, and TRACECLK. Clock domains are indicated by labels: SWTCLK, DAPCLK, CK_DBG_D1, CK_HCLK_D3, and CK_DBG_D3. A legend on the right side defines the symbols used: CoreSight™ component (white box), APB-D (system debug bus) (thick line), DAPBUS (double-headed arrow), ATB (trace bus) (dashed line), CTM (cross trigger matrix) (dashed line), Timestamp (dashed line), and Signals (thin line). The diagram also shows connections to external pins like JTMS/SWDIO, JTDI, JTDO, JTCK/SWCLK, nJTRST, TRGOUT, TRGIO, and TRGIN. The trace port includes TRACECK and TRACED[3:0] pins. The diagram is labeled MSV39775V2.
Figure 829. Clock domains of debug infrastructure. This block diagram illustrates the internal architecture of the debug infrastructure, showing various components and their associated clock domains. The diagram is divided into several functional blocks: JTAG / Serial-wire port (SWJ-DP), AHB-AP, APB-AP, System bus matrix, APB mux, Sys ROM table 1, DBGMCU, TSG, CTM, CTI, ETM, EPPB, ROM table, DWT, FPB, ITM, Cortex-M7 core, Replicator, Sys ROM table 2, CSF, SWF, ETF, SRAM, TPIU, and TRACECLK. Clock domains are indicated by labels: SWTCLK, DAPCLK, CK_DBG_D1, CK_HCLK_D3, and CK_DBG_D3. A legend on the right side defines the symbols used: CoreSight™ component (white box), APB-D (system debug bus) (thick line), DAPBUS (double-headed arrow), ATB (trace bus) (dashed line), CTM (cross trigger matrix) (dashed line), Timestamp (dashed line), and Signals (thin line). The diagram also shows connections to external pins like JTMS/SWDIO, JTDI, JTDO, JTCK/SWCLK, nJTRST, TRGOUT, TRGIO, and TRGIN. The trace port includes TRACECK and TRACED[3:0] pins. The diagram is labeled MSV39775V2.

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 mode, as well as to operate the state machines and internal logic of the debug port. It must therefore continue to toggle for several cycles after the end of an access, to ensure that the debug port returns to the idle state.

The SWJ-DP contains an asynchronous interface to the DAPCLK domain, which covers the rest of the SWJ-DP and the access ports. The DBGMCU, timestamp generator and System ROM table 1 are also in the DAPCLK domain.

CK_DBG_D3 clocks the SWO and serial wire trace funnel.

Both DAPCLK and CK_DBG_D3 are gated versions of the D3 domain system clock (rcc_hclk4).

CK_DBG_D1 clocks the trace components in the D1 power domain: System ROM table 2, CoreSight trace funnel, ETF, system CTI and TPIU. It is a gated version of the D1 domain system clock (rcc_hclk3).

TRACECLK is the trace port output clock. It is derived from the PLL1 R divider output (pll1_r_ck).

All the debug clocks (except DAPCLK) can be enabled and disabled by register bits in the DBGMCU. The DAPCLK domain is enabled by the debugger using the CDBGPWRUPREQ bit in the debug port CTRL/STAT register. The clock must be enabled before the debugger can access any of the debug features on the device. It should be disabled at power up and when the debugger is disconnected, to avoid wasting energy.

The debug and trace components included in the processor (such as ETM ITM, DWG and FPB) are clocked with the corresponding core clock (rcc_c_ck).

Debug with low-power modes

The device includes power-saving features allowing individual power domains to be switched off or stopped when not required. If a power domain is switched off or not clocked, all debug components in that domain are inaccessible to the debugger. To avoid this, power saving mode emulation is implemented. If the emulation is enabled for a domain, the domain still enters power saving mode, but its clock and power are maintained. In other words, the domain behaves as if it is in power saving mode, while the debugger does not lose the connection.

The emulation mode is programmed in the MCU Debug (DBGMCU) unit. For more information, refer to Section 60.5.8

Reset of debug infrastructure

The debug components, except for the debug port and access ports, are reset by their respective power domain resets. The debug port (SWJ-DP) is reset by a power-on reset of the D3 domain only.

60.4 Debug access port functional description

The debug access port (DAP) is a debug subsystem comprising serial-wire and JTAG debug port (SWJ-DP) and three access ports.

60.4.1 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.

The port can be configured as:

The two modes are mutually exclusive, since they share the same IO pins.

By default, the JTAG-DP is selected on system or power-on reset. The five IOs are configured by hardware in debug alternative function mode. The SWJ-DP incorporates pull-up resistors on the JTDI, JTMS/SWDIO, and nJTRST lines, as well as a pull-down resistor on the JTCK/SWCLK line.

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 lines JTDI, JTDO and nJTRST can be used for other functions.

All SWJ port IOs can be reconfigured to other functions by software, in which case debugging is no longer possible.

Serial wire debug port

The Serial wire debug protocol uses two pins:

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

  1. 1. packet request (8 bits) transmitted by the host
  2. 2. acknowledge response (3 bits) transmitted by the target
  3. 3. data transfer (33 bits) transmitted by the host (in the case of a write) or target (in the case of 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 598. Packet request

Field bitsNameDescription
0StartMust be “1”
1APnDP0: DP register access - see Table 602 for a list of DP registers
1: AP register access - see Section 60.4.2
2RnW0: Write request
1: Read request
4:3A(3:2)Address field of the DP or AP register (refer to Table 602 and Table 603 )
5ParitySingle bit parity of preceding bits
6Stop0
7ParkNot driven by host. Must be read as “1” by target.

Table 599. ACK response

Field bitsNameDescription
2:0ACK000b: FAULT
010b: WAIT
100b: OK

Table 600. Data transfer

Bit fieldNameDescription
31:0WDATA or RDATAWrite or Read data
32ParitySingle bit parity of 32 data bits

Figure 830 shows successful write and read transfers.

Figure 830. SWD successful data transfer

Timing diagram showing SWD successful data transfer. It illustrates the SWCLK and SWDIO lines during a write transfer and a read transfer. The diagram shows the sequence of bits, control signals, and data packets. A legend defines the bit values (1, 0, x, /) and the driving direction (host or target).

SWCLK line

Timing diagram showing a continuous square wave for SWCLK.

Write transfer

1x0xxx01/100/xxxxxxx
StartAPnDPRnWA[2]A[3]ParityStopParkOverACK[0]ACK[1]ACK[2]OverWDATA[0]WDATA[1]WDATA[2]WDATA[29]WDATA[30]WDATA[31]Parity

SWDIO line

1x1xxx01/100xxxxxxx
StartAPnDPRnWA[2]A[3]ParityStopParkOverACK[0]ACK[1]ACK[2]OverRDATA[0]RDATA[1]RDATA[2]RDATA[29]RDATA[30]RDATA[31]ParityOver

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 and SWDIO lines during a write transfer and a read transfer. The diagram shows the sequence of bits, control signals, and data packets. A legend defines the bit values (1, 0, x, /) and the driving direction (host or target).

For any FAULT or WAIT ACK response from the target, the data transfer phase is canceled, unless overrun detection is enabled, in which case the data will be ignored by the target (in the case of a write), or not driven (in the case of a read).

A line reset must be generated by the host when it is first connected, or following a protocol error. The line reset consists 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.

JTAG debug port

Figure 831. JTAG TAP state machine

Figure 831. JTAG TAP state machine diagram showing the state transitions between Test-Logic-Reset, Run-Test/Idle, Select-DR-Scan, Select-IR-Scan, Capture-DR, Shift-DR, Exit1-DR, Pause-DR, Exit2-DR, Update-DR, Capture-IR, Shift-IR, Exit1-IR, Pause-IR, Exit2-IR, and Update-IR states based on JTMS values.
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
    Select-IR-Scan --> Capture-IR: JTMS=0
    Select-IR-Scan --> Select-DR-Scan: JTMS=1
    Capture-DR --> Shift-DR: JTMS=0
    Capture-DR --> Exit1-DR: JTMS=1
    Capture-IR --> Shift-IR: JTMS=0
    Capture-IR --> Exit1-IR: JTMS=1
    Shift-DR --> Shift-DR: JTMS=0
    Shift-DR --> Exit1-DR: JTMS=1
    Shift-IR --> Shift-IR: JTMS=0
    Shift-IR --> Exit1-IR: JTMS=1
    Exit1-DR --> Pause-DR: JTMS=0
    Exit1-DR --> Select-DR-Scan: JTMS=1
    Exit1-IR --> Pause-IR: JTMS=0
    Exit1-IR --> Select-IR-Scan: JTMS=1
    Pause-DR --> Pause-DR: JTMS=0
    Pause-DR --> Exit2-DR: JTMS=1
    Pause-IR --> Pause-IR: JTMS=0
    Pause-IR --> Exit2-IR: JTMS=1
    Exit2-DR --> Update-DR: JTMS=0
    Exit2-DR --> Select-DR-Scan: JTMS=1
    Exit2-IR --> Update-IR: JTMS=0
    Exit2-IR --> Select-IR-Scan: JTMS=1
    Update-DR --> Run-Test/Idle: JTMS=1
    Update-DR --> Select-DR-Scan: JTMS=0
    Update-IR --> Run-Test/Idle: JTMS=1
    Update-IR --> Select-IR-Scan: JTMS=0
  
Figure 831. JTAG TAP state machine diagram showing the state transitions between Test-Logic-Reset, Run-Test/Idle, Select-DR-Scan, Select-IR-Scan, Capture-DR, Shift-DR, Exit1-DR, Pause-DR, Exit2-DR, Update-DR, Capture-IR, Shift-IR, Exit1-IR, Pause-IR, Exit2-IR, and Update-IR states based on JTMS values.

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

When the TAPSM goes through the Capture-IR state, 0b0001 is transferred to the instruction register (IR) scan chain. The IR scan chain is connected between JTDI and JTDO.

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

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 the data registers onto one of the DR scan chains, connected between JTDI and JTDO.

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

This data is 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 data register.

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 data registers corresponding to the 4-bit IR instructions are listed in Table 601 .

Table 601. JTAG-DP data registers

Instruction registerData registerScan chain lengthDescription
0000 to 0111(BYPASS)1Not implemented: BYPASS selected
1000ABORT35Abort register
– Bits 31: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:
010b = OK/FAULT
001b = WAIT
Others: reserved

Table 601. JTAG-DP data registers (continued)

Instruction registerData registerScan chain lengthDescription
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
1110IDCODE32ID Code
0x6BA0 0477: Arm® JTAG debug port ID code
1111BYPASS1Bypass
A single JTAG cycle delay is inserted between JTDI and JTDO

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

Debug port registers

The SW-DP and JTAG-DP both access the debug port (DP) registers. These are listed in Table 602.

The debugger can access the DP registers as follows:

  1. 1. Program the SELECT register DPBANKSEL field in the DP to select the register bank to be accessed (see Table 602)
  2. 2. Program the A(3:2) field in the DPACC register, if using JTAG, with the register address within the bank. Program the R/W bit to select a read or a write. In the case of 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 598). The write data is sent in the data phase.
Table 602. Debug port registers
AddressA(3:2) field valueR/WDescription
0x000RDP_DPIDR register (2) . It contains the IDCODE for the debug port.
WDP_ABORT register (1) . It aborts the current AP transaction. This register is also used to clear the error flags in the DP_CTRL/STAT register.
0x401R/WIf DPBANKSEL[3:0] = 0x0 (DP_SELECT register):
CTRL/STAT register. It controls the DP and provides status information.
If DPBANKSEL[3:0] = 0x1 (DP_SELECT register):
DP_DLCR register (2) . It controls the operating mode of the SWD Data Link.
If DPBANKSEL[3:0] = 0x2 (DP_SELECT register):
DP_TARGETID register. It provides target identification information.
If DPBANKSEL[3:0] = 0x3 (DP_SELECT register):
DLPIDR register (2) . It provides the SWD protocol version.
0x810RRESEND register (2) . It 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. It selects the access port, access port register bank, and DP register at address 0x4.
0xC11RDP_RDBUFF register
Via JTAG-DP, it enables the debugger to get the final result after a sequence of operations (without requesting new JTAG-DP operation).
Via SW-DP, it 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 the DP_DLPIDR register.
– Bits [27:0] match bits [27:0] in the DP_TARGETID register.
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_DPIDR)

Address offset: 0x00

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.ORUNERRCLRWDERRCLRSTKERRCLRSTKCOMPCLRDAPABORT
wwwww

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

Bit 4 ORUNERRCLR : Overrun error clear bit

0: No effect

1: Clear CTRL/STAT register's STICKYORUN bit

Bit 3 WDERRCLR : Write data error clear bit

0: No effect

1: Clear CTRL/STAT register's WDATAERR bit

Bit 2 STKERRCLR : Sticky error clear bit

0: No effect

1: Clear CTRL/STAT register's STICKYERR bit

Bit 1 STKCMPCLR : Sticky compare clear bit

0: No effect

1: Clear CTRL/STAT register's STICKYCMP bit

Bit 0 DAPABORT : Abort current AP transaction

The transaction is aborted if an excessive number of WAIT responses are returned, indicating that the transaction has stalled.

0: No effect

1: Abort transaction

Debug port control/status register (DP_CTRL/STAT)

Address offset: 0x4

Reset value: 0x0000 0000

31302928272625242322212019181716
CSYSPWRUPACKCSYSPWRUPREQCDBGPWRUPACKCDBGPWRUPREQCDBGIRSTACKCDBGIRSTREQRes.Res.TRNCNT[11:4]
1rwrrwrrwrwrwrwrwrwrwrwrw
1514131211109876543210
TRNCNT[3:0]MASKLANE[3:0]WDATAERRREADOKSTICKYERRSTICKYCMPTRNMODE[1:0]STICKYORUNORUNDETECT
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, TRNCNT bits are 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 (DP_CTRL/STAT register's field TRNMODE = 1 or 2). In the pushed operations, the word supplied in an AP write transaction is compared with the current value at the target AP address.

0b1XXX: include byte lane 3 in comparisons

0bX1XX: include byte lane 2 in comparisons

0bXX1X: include byte lane 1 in comparisons

0bXXX1: include byte lane 0 in comparisons

Bit 7 WDATAERR : Write data error in SW-DP

The bit indicates

This bit is read-only. It is reset by writing 1 to the WDERRCLR bit of the DP_ABORT register.

0: No error

1: Error has occurred

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

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.

0: No error

1: Error has occurred

In the SW-DP, this bit is reset by writing 1 to the STKERRCLR bit of the DP_ABORT register.

In the JTAG-DP, this bit is reset by programming it to 1.

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.

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

In the SW-DP, this bit is reset by writing 1 to the STKCMPCLR bit in the DP_ABORT register.
In the JTAG-DP, this bit is reset by programming it to 1.

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.

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

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 (new transaction received before previous transaction completed). This bit is only set if the ORUNDETECT bit is set.

0: No overrun
1: Overrun occurred

In the SW-DP, this bit is reset by writing 1 to the ABORT register's ORUNERRCLR bit. In the JTAG-DP, this bit is reset by writing a 1 to it.

Bit 0 ORUNDETECT : Overrun detection mode enable

0: Overrun detection disabled

1: Overrun detection enabled. In the event of an overrun, the STICKYORUN bit is set and subsequent transactions are blocked until the STICKYORUN bit is cleared.

Address offset: 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.
rwrw

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

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

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

Debug port target identification register (DP_TARGETID)

Address offset: 0x4

Reset value: 0x0450 0041

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

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

0x0: revision 0

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

0x4500: STM32H7

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

0x020: STMicroelectronics

Bit 0 Reserved, set to 1.

Debug port data link protocol identification register (DP_DLPIDR)

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[3:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
wwww
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.APBANKSEL[3:0]DPBANKSEL[3:0]
wwwwwwww

Bits 31:28 APSEL[3:0] : Access port select bits
These bits select the access port for the next transaction.

Bits 27: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.

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: N/A

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

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

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

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

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

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

Bit 0 Reserved, must be kept at reset value.

60.4.2 Access ports

Figure 832. Debug and access port connections

Diagram showing debug and access port connections. A JTAG/SWD interface connects to an SWJ-DP block. The SWJ-DP block connects to a DAPBUS. The DAPBUS connects to three access ports: AP0 (AHB-AP), AP1 (AHB-AP), and AP2 (APB-AP). AP0 connects to a Cortex-M7 (AHBD port). AP1 connects to a D3 AHB interconnect. AP2 connects to a System Debug Bus (APB-D).
graph LR
    JTAG_SWD[JTAG/SWD] <--> SWJ_DP[SWJ-DP]
    SWJ_DP <--> DAPBUS[DAPBUS]
    DAPBUS --> AP0[AP0
(AHB-AP)] DAPBUS --> AP1[AP1
(AHB-AP)] DAPBUS --> AP2[AP2
(APB-AP)] AP0 <--> CortexM7[Cortex-M7
(AHBD port)] AP1 <--> D3AHB[D3 AHB interconnect] AP2 <--> SystemDebugBus[System Debug Bus
(APB-D)]

MSV39779V1

Diagram showing debug and access port connections. A JTAG/SWD interface connects to an SWJ-DP block. The SWJ-DP block connects to a DAPBUS. The DAPBUS connects to three access ports: AP0 (AHB-AP), AP1 (AHB-AP), and AP2 (APB-AP). AP0 connects to a Cortex-M7 (AHBD port). AP1 connects to a D3 AHB interconnect. AP2 connects to a System Debug Bus (APB-D).

The access ports (AP) attached to the DP as the following:

  1. 1. AP0: Cortex-M7 access port (AHB-AP). Allows access to the debug and trace features integrated in the Cortex-M7 processor core via an AHB-Lite bus connected to the AHBD port of the processor.
  2. 2. AP1: D3 access port (AHB-AP). Allows access to the bus matrix in the D3 domain. This gives visibility of the D3 domain memory and peripherals when the D1 and D2 domains are switched off. No CoreSight components are accessible via this port.
  3. 3. AP2: System access port (APB-AP). Allows access to the debug and trace features on the system APB debug bus, that is, all components not included in the processor core.

All access ports are of MEM-AP type, that is, the 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 AP registers are listed in Table 603 .

The address of the AP registers is composed of:

The content of the SELECT register APSEL field in the DP define which MEM-AP is being accessed.

The debugger can access the AP registers as follows:

  1. 1. Program the DP_SELECT register's APSEL field to choose one of the APs, and the APBANKSEL field to select the register bank to be accessed.
  2. 2. Program the A(3:2) field in the APACC register, if using JTAG, with the register address within the bank. Program the RnW bit to select a read or a write. In the case of a write, program the DATA field with the write data. If using SWD, the A(3:2) and RnW fields are part of the Packet Request word sent to the SW-DP with the APnDP bit set (see Table 598 ). The write data is sent in the data phase.

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

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

For more detailed information on the MEM-AP, refer to the Arm ® Debug Interface Architecture Specification [1]. To use the MEM-AP to connect the debug port to the debug components (in the example, a processor, an ETM and a ROM table), go to Section 60.6.2: Cortex-M7 data watchpoint and trace unit (DWT) .

MEM-AP registers

Table 603. MEM-AP registers

AddressAPBANKSELA(3:2)NameDescription
0x000x00AP_CSWControl/status word register
0x040x01AP_TARTransfer address register
Target address for the bus transaction.
0x08---Reserved
0x0C0x03AP_DRWData read/write register
Access to this register triggers a corresponding transaction on the debug bus to the address in TAR[31:0]
0x100x10AP_BD0Banked data 0 register
Access to this register triggers a corresponding transaction on the debug bus to the address in TAR[31:4] << 4 + 0x0
0x140x11AP_BD1Banked Data 1 register
Access to this register triggers a corresponding transaction on the debug bus to the address in TAR[31:4] << 4 + 0x4
0x180x12AP_BD2Banked data 2 register
Access to this register triggers a corresponding transaction on the debug bus to the address in TAR[31:4] << 4 + 0x8
0x1C0x13AP_BD3Banked data 3 register
Access to this register triggers a corresponding transaction on the debug bus to the address in TAR[31:4] << 4 + 0xC
0x20-0xEC---Reserved
0xF0---Reserved
0xF4---Reserved
0xF80xF2AP_BASEDebug base address register (RO)
Base address of the ROM table
0xFC0xF3AP_IDRIdentification register (RO)

Access port control/status word register (AP_CSW)

Address offset: 0x0

Reset value: 0x0000 0002 (APB-AP), 0x4000 0002 (AHB-AP)

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
DEVIC
EEN
ADDRINC[1:0]Res.SIZE[2:0]
rwrwrwrwrrrwrwrwrwrw

Bit 31 Reserved, must be kept at reset value.

Bit 30 SPROT : Secure transfer request bit

In the APB-AP, this field is reserved. In the AHB-APs, this field sets the protection attribute HPROT[6] of the bus transfer.

0: If SPIDEN is high, secure transfer. If SPIDEN is low, non-secure transfer.

1: Non-secure transfer.

Bit 29 Reserved, must be kept at reset value.

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

In the APB-AP, this field is reserved. In the AHB-APs, this field sets the protection attributes HPROT[4:0] of the bus transfer.

0bXXXX0: Instruction fetch

0bXXXX1: Data access

0bXXX0X: User mode

0bXXX1X: Privileged mode

0bXX0XX: Non-bufferable

0bXX1XX: Bufferable

0bX0XXX: Non-cacheable

0bX1XXX: Cacheable

0b0XXXX: Non-exclusive

0b1XXXX: Exclusive

Bit 23 SPISTATUS : Status of SPIDEN option bit

This bit determines whether the debugger can access secure memory. This field is reserved in the APB-AP.

0: Secure AHB transfers are blocked

1: Secure AHB transfers are allowed

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

Bits 11:8 MODE[3:0] : Barrier support enabled bit

These bits define if the memory barrier operation is supported.

0x0: Not supported

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 bit

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 field).

0x2: Packed transfers enabled (Only in AHB-APs - reserved in APB-AP). 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 (only for AHB-APs)

0x0: Byte (8-bit)

0x1: Half-word (16-bit)

0x2: Word (32-bit)

0x3-0x7: Reserved

For APB-AP, this field is read-only and fixed at 0x2 (32-bit).

Access port base address register (AP_BASE)

Address offset: 0xF8

Reset value: 0xE00F E003 (AP0), 0x0000 0002 (AP1), 0xE00E 0003 (AP2)

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) for the ROM AP table

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

AP0 (Cortex-M7 AHB-AP): 0xE00FE

AP1 (D3 AHB-AP): 0x00000 (No ROM table present)

AP2 (System APB-AP): 0xE00E0

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 bit

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

0: Debug components are not present (AP1)

1: Debug components are present (AP0, AP2)

Access port identification register (AP_IDR)

Address offset: 0xFC

Reset value: 0x8477 0001 (AP0 and AP1), 0x5477 0002 (AP2)

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 (AP2)

0x8: r0p9 (AP0 and AP1)

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 (AP0 and AP1)

0x02: APB-AP (AP2)

0x11: Reserved

60.5 Trace and debug subsystem functional description

The trace and debug subsystem features the following CoreSight components:

These components are accessible by the debugger via the system APB-AP and its associated APB-D debug bus. They are also accessible by the Cortex-M7 processor.

The MCU debug unit (DBGMCU) is also accessed via the APB-D. This non-CoreSight component contains registers for configuring the device behavior in Debug mode.

Trace bus replicator branches the trace bus from the CPU's ITM CoreSight component to ETF and SWO, through trace bus funnels.

60.5.1 System ROM tables

There are two ROM tables on the APB-D bus. The ROM table is a CoreSight component that contains the base addresses of all the CoreSight components on the APB-D bus. These tables allow a debugger to access the topology of the CoreSight components automatically.

The first table points to the second table, and to the CoreSight components located in D3 power domain: SWO, SWTF, TSG. The DBGMCU is not referenced by the table as it is not a standard CoreSight component. The table occupies a 4-Kbyte, 32-bit wide chunk of APB-D address space, from 0xE00E0000 to 0xE00E0FFC when accessed by the debugger, and from 0x5C000000 to 0x5C000FFC when accessed from the system bus.

Table 604. System ROM table 1

Address offset in ROM tableComponent nameComponent base address (debugger)Component base address (system bus)Component address offsetSizeEntry
0x000----4 Kbytes0x00001002
0x004----4 Kbytes0x00002002
0x008SWO0xE00E30000x5C0030000x030004 Kbytes0x00003003
0x00CSWO funnel0xE00E40000x5C0040000x040004 Kbytes0x00004003
0x010Timestamp generator0xE00E50000x5C0050000x050004 Kbytes0x00005003

Table 604. System ROM table 1 (continued)

Address offset in ROM tableComponent nameComponent base address (debugger)Component base address (system bus)Component address offsetSizeEntry
0x014System ROM table 20xE00F00000x5C0100000x100004 Kbytes0x00010003
0x018Top of table----0x00000000
0x01C to 0xFC8Reserved----0x00000000
0xFCC to 0xFFCROM table registers----See System ROM registers

The second table occupies a 4-Kbyte, 32-bit wide chunk of APB-D address space, from 0xE00F0000 to 0xE00F0FFC when accessed by the debugger, and from 0x5C010000 to 0x5C010FFC when accessed from the system bus.

Table 605. System ROM table 2

Address offset in ROM tableComponent nameComponent base address (debugger)Component base address (system bus)Component address offsetSizeEntry
0x000System CTI0xE00F10000x5C0110000x10004 Kbytes0x00001003
0x004----4 Kbytes0x00002002
0x008Trace funnel0xE00F30000x5C0130000x30004 Kbytes0x00003003
0x00CETF0xE00F40000x5C0140000x40004 Kbytes0x00004003
0x010TPIU0xE00F50000x5C0150000x50004 Kbytes0x00005003
0x014----4 Kbytes0x00006002
0x018----4 Kbytes0x00007002
0x01C----4 Kbytes0x00008002
0x020Top of table----0x00000000
0x024 to 0xFC8Reserved----0x00000000
0xFCC to 0xFFCROM table registers----See System ROM registers

The top of each ROM table contains a number of read-only registers, including the standard CoreSight component and peripheral identity registers, see section System ROM registers .

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. Therefore, 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 block of the address space for the component.

  1. 3. Read the peripheral ID4 register for the component. The address of this register is:
    \[ \text{Peripheral\_ID4\_address} = \text{Component\_Base\_Address} + 0\text{xFD0} \]
  2. 4. Extract the 4 Kbyte count field [7:4] from the value of the Peripheral ID4 Register.
  3. 5. Use the 4 Kbyte count field value to calculate the start address of the address space for the component. If the field value is 0b0000, which corresponds to a count value of 1, the address space for the component starts at Component_Base_Address obtained at stage 2.

The topology for the CoreSight components on the APB-D is shown in Figure 833 .

Figure 833. APB-D CoreSight component topology

Diagram of APB-D CoreSight component topology showing the hierarchy of components connected via the APB-AP interface.

The diagram illustrates the APB-D CoreSight component topology. It shows the hierarchy of components connected via the APB-AP interface, starting from the System ROM tables and branching out to various CoreSight components.

APB-AP: Base address 0xE00E0000. Contains BASE register (0xF8) pointing to System ROM table 1.

System ROM table 1 @0xE00E0000:

System ROM table 2 @0xE00F0000:

Peripheral Components (each with Register file base at 0x000, PIDR4 at 0xFD0, and CIDR3 at 0xFFC):

Diagram of APB-D CoreSight component topology showing the hierarchy of components connected via the APB-AP interface.

MSV39787V2

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

System 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.SYSEM
r

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

Bit 0 SYSEM : 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.4KCOUNT[3:0]JEP106CON[3:0]
rrrrrrrr

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

Bits 7:4 4KCOUNT[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 0050 (System ROM table 1), 0x0000 0001 (System ROM table 2)

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

0x50: STM32H7 device (System ROM table 1)
0x01: STM32H7 device (System ROM table 2)

SYSROM CoreSight peripheral identity register 1 (SYSROM_PIDR1)

Address offset: 0xFE4

Reset value: 0x0000 0004 (System ROM table 1), 0x0000 0000 (System ROM table 2)

31302928272625242322212019181716
Res.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: STM32H7 device System ROM table 1
0x0: STM32H7 device System ROM table 2

SYSROM CoreSight peripheral identity register 2 (SYSROM_PIDR2)

Address offset: 0xFE8

Reset value: 0x0000 000A

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

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

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

0x0: Rev 0

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 and reset values

Table 606. System ROM table 1 register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFFCSYSROM_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.SYSTEMEM
Reset value0
0xFF0SYSROM_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.4KCOUNT[3:0]JEP106CON[3:0]
Reset value000000
0xFF4 to 0xFFCReservedReserved
0xFE0SYSROM_PIDR0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PARTNUM[7:0]
Reset value010100
0xFE4SYSROM_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 value000010
0xFE8SYSROM_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 value000101

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

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFECSYSROM_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
0xFF0SYSROM_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
0xFF4SYSROM_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
0xFF8SYSROM_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
0xFFCSYSROM_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

Table 607. System ROM table 2 register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFCCSYSROM_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.0 SYSMEM
Reset value0
0xFD0SYSROM_PIDR4Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.4KCOUNT[3:0]JEP106CON[3:0]
Reset value00000000
0xFD4 to 0xFDCReservedReserved
0xFE0SYSROM_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 value00000001
0xFE4SYSROM_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 value00000000

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

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFE8SYSROM_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 value00001010
0xFECSYSROM_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]
Reset value00000000
0xFF0SYSROM_CIDR0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value00001101
0xFF4SYSROM_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]
Reset value00010000
0xFF8SYSROM_CIDR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value00000101
0xFFCSYSROM_CIDR3Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
Reset value10110001

60.5.2 Global timestamp generator (TSG)

The global timestamp generator contains a 64-bit counter that provides a common timing reference for all of the trace sources in the system, namely the ETM and ITM in the processor core. 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 funnels.

The TSG registers are accessible over the APB-D. This allows the debugger or debug software to:

For more information on the global timestamp generator CoreSight component, refer to the Arm ® CoreSight SoC-400 Technical Reference Manual [2].

The timestamp generator is located in the D3 power domain, and the timestamp is distributed to the Cortex-M7. To simplify the distribution over power domain boundaries, the

64-bit timestamp is encoded in seven bits, then decoded in the destination power domain, and interpolated to increase its resolution if the processor clock is significantly faster than the generator clock. The timestamp distribution is shown in Figure 834.

Figure 834. Global timestamp distribution

Figure 834. Global timestamp distribution diagram showing the flow of a 64-bit timestamp from a Debug APB through a Timestamp generator (Counter [63:0]) in Power domain D3 (low-frequency clock) to a Timestamp Encoder (7 bits), then across to Power domain D1 (Cortex-M7 clock) through a Timestamp Decoder (64 bits) and a Timestamp Interpolator (64 bits) to a Cortex-M7 ETM and ITM.
Figure 834. Global timestamp distribution diagram showing the flow of a 64-bit timestamp from a Debug APB through a Timestamp generator (Counter [63:0]) in Power domain D3 (low-frequency clock) to a Timestamp Encoder (7 bits), then across to Power domain D1 (Cortex-M7 clock) through a Timestamp Decoder (64 bits) and a Timestamp Interpolator (64 bits) to a Cortex-M7 ETM and ITM.

TSG registers

TSG 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
0: Normal operation
1: Halt counter when system-wide debug state is detected - not implemented

Bit 0 EN : Enable
0: Counter disabled
1: Counter enabled and incrementing

TSG 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 halt

0: Normal operation

1: Counter halted due to system-wide debug state

Bit 0 Reserved, must be kept at reset value.

TSG current counter value lower register (TSG_CNTCVL)

Address offset: 0x008

Reset value: 0x0000 0000

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

Bits 31:0 CNTCVL[31:0] : TSG current counter value field, bits[31:0]

To change the current timestamp value, write the lower 32 bits of the new value to this register before writing the upper 32 bits to CNTCVU. The timestamp value is not changed until the CNTCVU register is written to. Note: The TSG_CNTCR register's EN bit must be cleared before writing to this register.

TSG current counter value upper register (TSG_CNTCVU)

Address offset: 0x00C

Reset value: 0x0000 0000

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

Bits 31:0 CNTCVU[31:0] : TSG current counter value field, bits[63:32]

To change the current timestamp value, write the lower 32 bits of the new value to CNTCVL before writing the upper 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: The TSG_CNTCR register's EN bit must be cleared before writing to this register.

TSG 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.

TSG 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.4KCOUNT[3:0]JEP106CON[3:0]
rrrrrrrr

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

Bits 7:4 4KCOUNT[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

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

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

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

TSG 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
1: Designer ID specified by JEDEC

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

TSG 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

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

0x0D: Common ID value

TSG CoreSight component 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 field, bits [15:12] - component class
0xF: CoreSight Soc-400 component

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

TSG 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 field, bits [23:16]
0x05: Common ID value

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

TSG register map and reset values

Table 608. TSG 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.Res.0HD BG EN
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.Res.0DBGH Res.
Reset value00
0x008TSG_CNTCVLCNTCVL_L_32[31:0]
Reset value00000000000000000000000000000000
0x00CTSG_CNTCVUCNTCVU_U_32[31:0]
Reset value00000000000000000000000000000000
0x020TSG_CNTFID0FREQ[31:0]
Reset value00000000000000000000000000000000
0x024 to 0xFCCReservedReserved
0xFD0TSG_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.4KCOUNT[3:0]JEP106CON[3:0]
Reset value00000100
0xFD4 to 0xFDCReservedReserved
0xFE0TSG_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 value00000001
0xFE4TSG_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[15:8]
Reset value10110001
0xFE8TSG_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]JEDEC [6:4]
Reset value00011011
0xFECTSG_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 value00000000
0xFF0TSG_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 value00001101
0xFF4TSG_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[15:8]
Reset value10010000
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.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.Res.Res.PREAMBLE[27:20]
Reset value10110001

60.5.3 Cross trigger interfaces (CTI) and matrix (CTM)

The cross trigger interfaces (CTI) and cross trigger matrix (CTM) together form the CoreSight embedded cross trigger feature. There are two CTI components, one at system

level and one dedicated to the Cortex-M7. The two CTIs are connected to each other via the CTM. The system-level CTI is accessible to the debugger via the system access port and associated APB-D. The Cortex-M7 CTI is physically integrated in the Cortex-M7 core, and is accessible via the Cortex-M7 access port and associated AHBD.

Figure 835. Embedded cross trigger

Diagram of Embedded cross trigger showing System CTI and Cortex-M7 CTI connections.

The diagram illustrates the embedded cross trigger architecture. It features two main components: the System CTI and the Cortex-M7 CTI, both connected to a central CTM (Cross Trigger Matrix) via CTM channels [3:0].

MSV39782V1

Diagram of Embedded cross trigger showing System CTI and Cortex-M7 CTI connections.

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 8 trigger inputs and 8 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 Table 609 to Table 612 .

Table 609. System CTI inputs

#Source signalSource componentComments
0DBTRIGIGPIOExternal trigger input - allows an external signal to generate a debug event
1ETFACQCOMPETFETF capture finished - allows a debug event to be generated when the trace FIFO is empty

Table 609. System CTI inputs (continued)

#Source signalSource componentComments
2ETFFULLETFETF full flag - allows a debug event to be generated when the trace FIFO is full
3--Not used
4--Not used
5--Not used
6--Not used
7--Not used

Table 610. System CTI outputs

#Output signalDestination componentComments
0DBTRIGOGPIOExternal IO trigger output - allows monitoring of events on the external DBTRIGO pin
1TPIUFLUSHTPIUTrace port flush trigger - causes the TPIU FIFO to be flushed
2TPIUTRIGTPIUTrace Port enable trigger - starts trace output on the external trace port
3ETFTRIGETFETF enable trigger - starts filling the Trace FIFO
4ETFFLUSHETFETF flush trigger - causes the Trace FIFO to be flushed
5--Not used
6--Not used
7--Not used

Table 611. Cortex-M7 CTI inputs

#Source signalSource componentComments
0HALTEDCortex-M7 CPUCPU halted - indicates CPU is in Debug mode
1COMPMATCH0Cortex-M7 DWTDWT comparator 0 match
2COMPMATCH1Cortex-M7 DWTDWT comparator 1 match
3COMPMATCH2Cortex-M7 DWTDWT comparator 2 match
4ETMEXTOUT0Cortex-M7 ETMETM external trigger out
5ETMEXTOUT1Cortex-M7 ETMETM external trigger out
6--Not used
7--Not used

Table 612. Cortex-M7 CTI outputs

#Output signalDestination componentComments
0EDBGRQCortex-M7 CPUCPU halt request - puts CPU in Debug mode
1nIRQ1Cortex-M7 NVICInterrupt request
2nIRQ2Cortex-M7 NVICInterrupt request
3--Not used
4ETMEVENTS0Cortex-M7 ETMETM trig request - enables CPU execution trace
5ETMEVENTS1Cortex-M7 ETMETM trig request - enables CPU execution trace
6--Not used
7DBGRESTARTCortex-M7 CPUCPU restart request - CPU exits Debug mode

There are four event channels in the 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), so an input can 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 836. Mapping of trigger inputs to outputs

Diagram showing the mapping of trigger inputs to outputs through a Cross Trigger Matrix (CTM). On the left, CTI x has an input 'm' connected to a switch labeled 'CTIINENm = p'. In the center, the CTM contains four channels: 'Channel p', 'Channel q', 'Channel r', and 'Channel s'. On the right, CTI y has a switch labeled 'CTIOUTENn = p' connected to 'Output n'. The diagram shows 'Input m' being routed through 'Channel p' in the CTM to 'Output n'.
Diagram showing the mapping of trigger inputs to outputs through a Cross Trigger Matrix (CTM). On the left, CTI x has an input 'm' connected to a switch labeled 'CTIINENm = p'. In the center, the CTM contains four channels: 'Channel p', 'Channel q', 'Channel r', and 'Channel s'. On the right, CTI y has a switch labeled 'CTIOUTENn = p' connected to 'Output n'. The diagram shows 'Input m' being routed through 'Channel p' in the CTM to 'Output n'.

For more information on the cross-trigger interface CoreSight component, refer to the Arm® CoreSight™ SoC-400 Technical Reference Manual [2].

CTI registers

The register file base address for each CTI is defined by the ROM table for the bus to which it is connected. The 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 the register for each CTITRIGOUT output. When a 1 is written to a bit in this register, 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] : Set channel event

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] : Clear channel event

0bXXX0: No effect
0bXXX1: Clear event on Channel 0
0bXX0X: No effect
0bXX1X: Clear event on Channel 1
0bX0XX: No effect
0bX1XX: Clear event on Channel 2
0b0XXX: No effect
0b1XXX: Clear event on Channel 3

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 register clears itself immediately.

0bXXX0: No effect
0bXXX1: Generate pulse on Channel 0
0bXX0X: No effect
0bXX1X: Generate pulse on Channel 1
0bX0XX: No effect
0bX1XX: Generate pulse on Channel 2
0b0XXX: No effect
0b1XXX: Generate pulse on Channel 3

CTI trigger IN x enable register (CTI_INENx)

Address offset: 0x020 + 4 * x, where x = 0 to 7

Reset value: 0x0000 0000

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

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

Bits 3:0 TRIGINEN[3:0] : Cross-trigger event enable

Enables or disables a cross-trigger event on each of the four channels when CTITRIGINx is activated (x = 0 to 7).

CTI trigger OUT x enable register (CTI_OUTENx)

Address offset: 0x0A0 + 4 * x, where 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, the field defines whether an event on that channel will generate a trigger on CTITRIGOUTx (x = 0 to 7).

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 the register for each CTITRIGIN input. When a bit is set to 1 it indicates that the corresponding trigger input is active. When it is set to 0, the corresponding trigger input is inactive.

CTI trigger OUT status register (CTI_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 the register 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 the register for each channel input. When a bit is set to 1 it indicates that the corresponding channel input is active. When it is set to 0, the corresponding channel input is inactive.

CTI channel OUT status register (CTI_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 the register for each channel output. When a bit is set to 1 it indicates that the corresponding channel output is active. When it is set to 0, the corresponding channel output is inactive.

CTI channel gate register (CTI_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, defines whether an event on that channel can propagate over the CTM to other CTIs.

0bXXX0: Channel 0 events do not propagate

0bXXX1: Channel 0 events propagate

0bXX0X: Channel 1 events do not propagate

0bXX1X: Channel 1 events propagate

0bX0XX: Channel 2 events do not propagate

0bX1XX: Channel 2 events propagate

0b0XXX: Channel 3 events do not propagate

0b1XXX: 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]
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

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:

Read: Returns current value of claim tag

CTI lock access register (CTI_LAR)

Address offset: 0xFB0

Reset value: N/A

31302928272625242322212019181716
ACCESS_W[31:16]
wwwwwwwwwwwwwwww
1514131211109876543210
ACCESS_W[15:0]
wwwwwwwwwwwwwwww

Bits 31:0 ACCESS_W[31:0] : CTI register write access enable

Enables write access to some CTI registers by 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.LOCKTYPE
r
LOCKGRANT
r
LOCKEXIST
r

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

Bit 2 LOCKTYPE : Size of the CTI_LAR register

0: 32-bit

Bit 1 LOCKGRANT : Current status of lock

This bit always returns zero 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 zero 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]
r r
SID[1:0]
r r
NSNID[1:0]
r r
NSID[1:0]
r r

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

CTI device type identifier register (CTI_DEVTYPE)

Address offset: 0xFCC

Reset value: 0x0000 0014

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

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

Bits 7:4 SUBTYPE[3:0] : Sub-classification

0x1: Indicates that this component is a cross-triggering component.

Bits 3:0 MAJORTYPE[3:0] : Major classification

0x4: Indicates that this component allows a debugger to control other components in a CoreSight SoC-400 system.

CTI CoreSight peripheral identity register 4 (CTI_PIDR4)

Address offset: 0xFD0

Reset value: 0x0000 0004

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.
4KCOUNT[3:0]JEP106CON[3:0]
rrrrrrrr

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

Bits 7:4 4KCOUNT[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 and reset values

Table 613. CTI register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x000CTI_CONTROLRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.GI.BEN
Reset value0
0x010CTI_INTACKRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.INTACK[7:0]
Reset value0 0 0 0 0 0 0 0
0x014CTI_APPSETRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.APPSET[3:0]
Reset value0 0 0 0
0x018CTI_APPCLEARRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.APPCLEAR[3:0]
Reset value0 0 0 0
0x01CCTI_APPPULSERes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.APPULSE[3:0]
Reset value0 0 0 0
0x020 to 0x03CCTI_INEN0 to CTI_INEN7Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TRIGINEN[3:0]
Reset value0 0 0 0
0x040 to 0x09CReservedReserved
0x0A0 to 0x0BCCTI_OUTEN0 to CTI_OUTEN7Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TRIGOUTEN[3:0]
Reset value0 0 0 0
0x0C0 to 0x12CReservedReserved
0x130CTI_TRIGISTSRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TRIGINSTATUS[7:0]
Reset value0 0 0 0 0 0 0 0
0x134CTI_TRIGOSTSRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TRIGOUTSTATUS[7:0]
Reset value0 0 0 0 0 0 0 0
0x138CTI_CHINSTSRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CHISTATUS[3:0]
Reset value0 0 0 0
0x13CCTI_CHOUTSTSRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CHOSTATUS[3:0]
Reset value0 0 0 0
0x140CTI_GATERes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.GATEEN[3:0]
Reset value1 1 1 1
0x144 to 0xF9CReservedReserved
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.Res.Res.Res.CLAIMSET[3:0]
Reset value1 1 1 1
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.Res.Res.Res.CLAIMCLR[3:0]
Reset value0 0 0 0
0xFA8 to 0xFACReservedReserved

Table 613. CTI register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFB0CTI_LARACCESS_W[31:0]
Reset value--------------------------------
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 value0111
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
0xFC8CTI_DEVTYPERes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SUBTYPE[3:0]MAJORTYPE[3:0]
Reset value00010100
0xFD0CTI_PIDR4Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.4KCOUNT[3:0]JEP106CON[3:0]
Reset value00000100
0xFD4 to 0xFDCReservedReserved
0xFE0CTI_PIDR0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PARTNUM[7:0]
Reset 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.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.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.REVAND[3:0]CMOD[3:0]
Reset value00000000
0xFF0CTI_CIDR0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[7:0]
Reset value00001101
0xFF4CTI_CIDR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CLASS[3:0]PREAMBLE[11:8]
Reset value10010000
0xFF8CTI_CIDR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[19:12]
Reset value00000101
0xFFCCTI_CIDR3Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[27:20]
Reset value10110001

60.5.4 Trace funnel (CSTF)

The trace funnel is a CoreSight component that combines the ATB buses from two trace sources into one single ATB. The CSTF has two 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:

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

High priority should be assigned to slave ports connected to sources with a small amount of buffering, or where data loss can not be tolerated. Low priority should 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].

Trace funnel registers

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
Res.Res.Res.Res.MIN_HOLD_TIME[3:0]Res.Res.Res.Res.Res.Res.ENS1ENS0
rwrwrwrwrwrw

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

Bits 11:8 MIN_HOLD_TIME[3:0] : Number of transactions between arbitrations.

0x0: 1 transaction

:

0xE: 15 transactions

0xF: Reserved

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

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 0688

31302928272625242322212019181716
Res.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.PRIPORT1[2:0]PRIPORT0[2:0]
rwrwrwrwrwrw

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

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 bits

Write:

Read:

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

CSTF lock access register (CSTF_LAR)

Address offset: 0xFB0

Reset value: N/A

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 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-bit

Bit 1 LOCKGRANT : Current status of lock

This bit always returns zero 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 zero 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 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 non-secure non-invasive debug
0x2: Disabled
0x3: Enabled

Bits 1:0 NSID[1:0] : Security level for non-secure invasive debug
0x2: Disabled
0x3: Enabled

CSTF CoreSight device identity register (CSTF_DEVID)

Address offset: 0xFC8

Reset value: 0x0000 0024

31302928272625242322212019181716
Res.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
0x2: Static priority

Bits 3:0 PORTCNT[3:0] : Number of input ports connected
0x4: Four 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.4KCOUNT[3:0]JEP106CON[3:0]
rrrrrrrr

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

Bits 7:4 4KCOUNT[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.
rrrrrrrr
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

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.
rrrrrrrr
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

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.
rrrrrrrr
CLASS[3:0]PREAMBLE[11:8]

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

Trace funnel register map and reset values

Table 614. 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.MIN_HOLD_TIME[3:0]Res.Res.Res.Res.Res.Res.ENS1ENS0
Reset value001100
0x004CSTF_PRIORITYRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PRIPORT1[2:0]PRIPORT0[2:0]
Reset value001000
0x008 to 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 value111
0xFA4CSTF_CLAIMCLRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CLAIMCLR[3:0]
Reset value000
0xFA8 to 0xFACReservedReserved
0xFB0CSTF_LARACCESS_W[31:0]
Reset value-------------------------------
0xFB4CSTF_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
0xFB8CSTF_AUTHSTATRes.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
0xFC8CSTF_DEVIDRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SCHEME[3:0]PORTCNT[3:0]
Reset value00100100
0xFCCCSTF_DEVTYPERes.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 value00010010

Table 614. CSTF register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFD0CSTF_PIDR4Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.4KCOUNT[3:0]JEP106CON[3:0]
Reset value000
0xFD4 to 0xFDCReservedReserved
0xFE0CSTF_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 value00001000
0xFE4CSTF_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
0xFE8CSTF_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 value00111011
0xFECCSTF_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
0xFF0CSTF_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
0xFF4CSTF_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
0xFF8CSTF_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
0xFFCCSTF_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

60.5.5 Embedded trace FIFO (ETF)

The ETF is a 4 Kbyte memory that captures trace data from two trace sources, namely the ETM and ITM of the CPU core. The ETF is a design configuration of the CoreSight™ trace memory controller component.

The ETF can be used in three modes (selected in the mode register):

1. Hardware FIFO mode

The trace memory is used as a FIFO that is drained through the ATB master interface. Trace data is captured into the trace RAM and when full, the incoming trace stream is stalled. When the Trace buffer is not empty, trace data is drained out through the ATB master interface to the TPIU.

In this mode, the role of the FIFO is to smooth the flow of trace information arriving at the trace port. Since the trace data can be very irregular by 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 big.

2. Software FIFO mode

The trace memory is used as a FIFO that can be read through the RRD Register while trace is being captured. Trace data is 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 the system memory, or to a high speed interface (such as SPI or USB), or even monitored by software. Note that unlike the hardware FIFO mode, this mode is invasive, since it uses system resources which are shared by the processor.

3. Circular buffer mode

The trace memory is used as a circular buffer. Trace data is captured into the Trace memory starting from the location pointed to by the write pointer register. Even when the trace memory is full, incoming trace data continues to be overwritten to the trace memory until a stop condition occurs.

In this mode, the ETF stores the trace data on-chip, so the trace log size is limited to that of the ETF SRAM, 4 Kbytes in this case. Being a circular buffer, when the FIFO becomes full, incoming trace data overwrites the oldest stored data and the oldest stored data is lost. Therefore the content of the trace buffer represents the most recent activity of the processor, before the buffer was stopped, rather than all the activity since the trace was started.

There are three possible methods to read out the buffer contents once the trace stops:

The ETF can be moved to any one of the following states:

This state is entered after a reset, or when trace capture is disabled. The ETF must only be programmed in this state.

Trace capture is performed in this state. It is entered by enabling trace capture while in disabled state.

Trace capture is stopped in this state, but the contents of the buffer can be read out or drained. This state is entered after a stop event (trigger or flush).

This is a transition state while disabling trace capture.

This is a transition state while stopping trace capture.

This state is entered while draining the buffer in Stopped state.

The state transition diagram is shown in Figure 837 .

Figure 837. ETF state transition diagram

ETF state transition diagram showing five states: Disabled (READY = 1), Running (READY = 0), Stopping (READY = 0), Stopped (READY = 1), and Draining (READY = 0). Transitions are triggered by TCEN, Stop event, Circular buffer empty, and DRAINBUF signals.
stateDiagram-v2
    [*] --> Disabled
    Disabled --> Running: TCEN = 1
    Running --> Disabled: TCEN = 0
    Running --> Stopping: Stop event
    Stopping --> Disabled: TCEN = 0
    Stopping --> Stopped
    Stopped --> Disabled: TCEN = 0
    Stopped --> Draining: DRAINBUF = 1 (circular buffer mode only)
    Draining --> Stopped: Circular buffer empty
    Draining --> Disabled: TCEN = 0
    
ETF state transition diagram showing five states: Disabled (READY = 1), Running (READY = 0), Stopping (READY = 0), Stopped (READY = 1), and Draining (READY = 0). Transitions are triggered by TCEN, Stop event, Circular buffer empty, and DRAINBUF signals.

For more information on the CoreSight™ trace memory controller component, refer to the Arm® CoreSight™ trace memory controller technical reference manual [3].

ETF registers

ETF RAM size register (ETF_RSZ)

Address offset: 0x004

Reset value: 0x0000 0400

31302928272625242322212019181716
Res.RSZ[30:16]
rrrrrrrrrrrrrrrr
1514131211109876543210
RSZ[15:0]
rrrrrrrrrrrrrrrr

Bit 31 Reserved, must be kept at reset value.

Bits 30:0 RSZ[30:0] : RAM size

The value of the field indicates the number of 32-bit words

0x400: 1024 words = 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 the TCEN bit of the ETF_CTL register is high. This bit reads as zero when TCEN is low.

0: Trace FIFO contains data

1: Trace FIFO is empty.

Note: Empty trace FIFO does not mean that the ETF pipeline is empty. The latter is indicated by the FTEMPTY bit.

Bit 3 FTEMPTY: Formatter empty

This bit is set when trace capture has stopped, and all internal pipelines and buffers have been 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 trace capture has stopped and all internal pipelines and buffers have been drained (Stopped or Disabled state)

Bit 1 TRIGD: Triggered

The Triggered bit is set when 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 has been embedded in the formatted output trace data from the TMC. Trigger indication on the output trace stream is determined by the programming of the Formatter and Flush Control Register, ETF_FFCR.

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 the TCEN bit of the ETF_CTL register 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 the ETF_BUFWM Register, that is, Fill level \( \geq \) MEM_SIZE - BUFWM.

This bit is cleared when leaving Disabled state. The FULL output reflects the value of this register bit.

ETF RAM read data register (ETF_RRD)

Address offset: 0x010

Reset value: Unknown

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. When the whole trace buffer has been read, the Empty bit in the ETF_STS Register is set, 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, the data returned is 0xFFFFFFFF.

Hardware FIFO mode:

Reading this register returns 0xFFFFFFFF.

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]
nwnwnwnwnwnwnwnwnwnwnwnwnw

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

Bits 12:0 RRP[12:0] : RAM Read Pointer

The RAM Read Pointer Register contains the value of the read pointer that is used to read entries from the trace memory over the APB interface via the ETF_RRD register. The pointer can be programmed with a byte address, 64-bit aligned (that is, bits 0 to 3 should be zero).

The pointer is incremented by 8 each time a full 64-bit FIFO entry has been written. When the pointer reaches its maximum value, it wraps around.

This register can only be written to while in Disabled state. It can be read in Disabled state, in Stopped state in circular buffer mode and SW FIFO mode, and also in Running and Stopping states in SW 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

The RAM write pointer register 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 (that is, bits 0 to 3 should be zero). The pointer is incremented by 8 each time a full 64-bit FIFO entry has been read. When the pointer reaches its maximum value, it wraps around.
This register can only be written to while in Disabled state. It can be read in Disabled state, in Stopped state in circular buffer mode and SW FIFO mode, and also in Running and Stopping states in SW 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, 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 =7'h7D. 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 the 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 FIFO mode 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 zero. When the trigger counter has reached zero, it remains at zero until it is re-programmed 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.

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: Disable trace capture (moves from Running, Stopping or Stopped state into Disabling or Disabled state)

1: Enable trace capture (moves from Disabled state to Running state)

When reading, this bit is low when in Disabling or Disabled states, and high otherwise.

ETF RAM write data register (ETF_RWD)

Address offset: 0x024

Reset value: 0x0000 0000

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 RWP. Writes to this register when not in Disabled state are ignored. When a full memory width (64-bit) of data has been written, the data is written to memory and the RAM Write Pointer is incremented to the next memory word.

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

00b: Circular buffer mode

In this mode, the trace memory is used as a circular buffer. Trace data is captured into the Trace memory starting from the location pointed to by the write pointer register. Even when the trace memory is full, incoming trace data continues to be overwritten into the trace memory until a stop condition has occurred.

01b: Software FIFO mode

In this mode, the trace memory is used as a FIFO that can be read through the RRD Register while trace is being captured. Trace data is captured into the trace RAM and when full, the incoming trace stream is stalled.

10b: Hardware FIFO mode

In this mode, the trace memory is used as a FIFO that is drained through the ATB master interface. Trace data is captured into the trace RAM and when full, the incoming trace stream is stalled. When the trace buffer is non-empty, trace data is drained out through the ATB master interface to the TPIU.

11b: Reserved

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]rrrrrrrr

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, the LBUFLEVEL 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]rrrrrrrr

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 is low.

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.ResResBUFWM[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 into this register indicates the required threshold vacancy level in the trace memory in 32-bit words. When the space in the FIFO is less than or equal to this value, that is, Fill level \( \geq \) MEM_SIZE - BUFWM, the FULL output is pulled high and the FULL bit in the STS Register is set.

This register is used only in Software FIFO and Hardware FIFO modes. In Circular buffer mode, this functionality can be obtained by programming the 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 bit 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.FTSTOPPEDFLINPROG
rr

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

Bit 1 FTSTOPPED : Formatter stopped

This bit behaves in the same way as the FTEMPTY bit in the ETF_STS register.

Bit 0 FLINPROG : Flush in progress

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 the ETF_FFCR register, 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.STOP ONTRG EV.STOP ONFLRes.TRIGON NFL.TRGON TRGEVTRGON TRGINRes.FLUSH MANFONTR GEV.FONFLINRes.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 into 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 trace buffer content through the ATB Master interface. This bit always reads as zero. The READY bit in the ETF_STS register goes low while the drain is in progress.

This bit is only functional when the ETF is in Circular buffer mode and formatting is enabled, that is, the ENFT bit in the ETF_FFCR register is set. 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 all trace data out through RRD reads, or drain all trace data by setting the DRAINBUF bit. Setting the DRAINBUF bit after some of the captured trace has been read out through RRD results in unpredictable behavior.

Bit 13 STOPONTRGEV : Stop on trigger event

0: No effect

1: Stop trace capture when a trigger event occurs

Enabling the ETF in Software FIFO mode or Hardware FIFO mode with this bit set results in unpredictable behavior.

Bit 12 STOPONFL : Stop on flush

0: No effect

1: Stop trace capture when flush is completed

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 flush is completed

If ENFT and ENTI are both clear, 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 clear, this bit is ignored and no trigger is inserted into the trace stream.

This bit is not supported in Software FIFO mode 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 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: Flush the trace FIFO and pipeline

This bit is cleared automatically when the flush completes. If the TCEN bit in the ETF_CTL register is 0, writes to this bit are ignored.

Bit 5 FONTRGEV : Flush on trigger event

0: No effect

1: Flush the trace FIFO and pipeline if a trigger event occurs

This bit is not supported in Software FIFO mode or Hardware FIFO mode. If STOPONTRGEV is set, this bit is ignored.

Bit 4 FONFLIN : Flush on flush in

0: No effect

1: Flush the trace FIFO and pipeline if 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 flagged by inserting one byte of data 8'h00 with ATID 7'h7D in the trace stream. Trigger indication on the trace stream is further controlled by the register bits TRIGONFL, TRGONTRGEV, and TRGONTRGIN in the FFCR Register. This bit can only be changed when READY is high, and TCEN is low. This bit takes effect only when the ENFT register bit in this register is set. If ENFT is low, it results in formatting being enabled.

Bit 0 ENFT : Enable formatting.

0: Formatting is disabled. Incoming trace data is assumed to be from a single trace source.

1: Formatting is enabled.

If multiple ATIDs are received by the ETF 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 ETF is enabled in a mode other than Circular buffer mode with ENFT low, then formatting is enabled. If ENFT is low, it results in formatting being enabled.

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

Determines the reload value of the Synchronization Counter. The reload value takes effect the next time the counter reaches zero. 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

0x1-0x6: Reserved

0x7-0x1B: Synchronization period is \( 2^{\text{PSCOUNT}} \) bytes

0x1C-0x1F: 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] : 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

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]

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

ETF lock access register (ETF_LAR)

Address offset: 0xFB0

Reset value: N/A

31302928272625242322212019181716
ACCESS_W[31:16]
wwwwwwwwwwwwwwww
1514131211109876543210
ACCESS_W[15:0]
wwwwwwwwwwwwwwww

Bits 31:0 ACCESS_W[31:0] : ETF register access enable

Enables write access to some ETF registers by processor cores (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.LOCK TYPELOCK GRANTLOCK EXIST
rrr

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

Bit 2 LOCKTYPE : Size of the ETF_LAR register

0: 32-bit

Bit 1 LOCKGRANT : Current status of lock

This bit always returns zero 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 zero when read by an external debugger.

0: No lock control mechanism exists

1: 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 non-secure non-invasive debug

0x0: Not implemented

Bits 1:0 NSID[1:0] : Security level for non-secure invasive debug

0x0: Not implemented

ETF device configuration register (ETF_DEVID)

Address offset: 0xFC8

Reset value: 0x0000 01C0

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]CLK
SCHEM
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)

0: 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: Captures trace data from the ATB slave interface into 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.4KCOUNT[3:0]JEP106CON[3:0]
rrrrrrrr

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

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

0xB: Arm® JEDEC code

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

0x9: ETF part number

ETF CoreSight peripheral identity register 2 (ETF_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

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

0x0D: Common ID value

ETF CoreSight component 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 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

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

0xB1: Common ID value

ETF register map and reset values

Table 615. ETF register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x004ETF_RSZRes.RSZ[30:0]
Reset value00000000000000000000100000000000
0x008ReservedReserved
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.Res.Res.EMPTYFTEMPTYREADYTRIGDFULL
Reset value11100
0x010ETF_RRDRRD[31:0]
Reset value--------------------------------
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 value--------------------------------
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.LBUFLVL[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.CBUFLVL[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 value0000000000
0x038 to 0x2FCReservedReserved
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 615. 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.DRANBUFSTPONTRGEVSTOPONFLRes.Res.TRGONFLTRGONTRGEVTRGONTRGINRes.FLUSHMANFONTRGEVFONFLINRes.ENITIENFT
Reset value00000000000
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.PSCOUNT[4:0]
Reset value01010
0x30C to 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.CLAIMSET[3:0]
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.CLAIMCLR[3:0]
Reset value0000
0xFA8 to 0xFACReservedReserved
0xFB0ETF_LARACCESS_W[31:0]
Reset value-------------------------------
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.LOCKTYPELOCKGRANTLOCKEXIST
Reset value0-1-1
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.SNID[1:0]SID[1:0]NSID[1:0]NSID[1:0]NSID[1:0]NSID[1:0]NSID[1:0]
Reset value0000000
0xFBC to 0xFC4ReservedReserved
0xFC8ETF_DEVIDRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.MEMWDTH[2:0]CONFIGTYP[1:0]CLKSCHEMRes.Res.Res.Res.Res.ATBINPORTCNT[4:0]
Reset value00111000000
0xFCCETF_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]Res.Res.Res.Res.MAJORTYPE[3:0]
Reset value00110010

Table 615. ETF register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
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.4KCOUNT[3:0]JEP106CON[3:0]
Reset value00000100
0xFD4 to 0xFDCReservedReserved
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.Res.PARTNUM[7:0]
Reset value01100001
0xFE4ETF_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 value10111001
0xFE8ETF_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 value00011011
0xFECETF_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 value00000000
0xFF0ETF_CIDR0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[7:0]
Reset value00001101
0xFF4ETF_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 value10010000
0xFF8ETF_CIDR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[19:12]
Reset value00000101
0xFFCETF_CIDR3Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[27:20]
Reset value10110001

60.5.6 Trace port interface unit (TPIU)

The TPIU is a CoreSight™ component that 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, TRACECK, and four data outputs, TRACED(7:0). The trace port width is programmable in the range 1 to 8. Using a smaller port width reduces the number of test points/connector pins needed, and frees up IOs for other purposes. However it restricts the bandwidth of the trace port and hence the quantity of trace information that can be output in real time. The TRACECK output must be enabled by setting the TRACECKEN bit in the DBGMCU_CR register before trace is sent to the TPIU. Furthermore, the TRACECK frequency can be programmed in the RCC.

For more information on the Trace port interface CoreSight™ component, refer to the Arm® CoreSight™ SoC-400 technical reference manual [2].

TPIU registers

TPIU supported port size register (TPIU_SUPPSIZE)

Address offset: 0x000

Reset value: 0x0000 000F

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

Bits 31:0 PORTSIZE[31:0] : Indicates supported trace port sizes, from 1 to 32 pins. Bit n-1 when set indicates that port size n is supported.

0x0000 000F: 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-4). Only one bit can be set, or unpredictable behavior may result. This register should 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.TRGRUNTRGD
rr
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.TCOUNT
8
Res.Res.Res.MULT
64K
MULT
256
MULT
16
MULT4MULT2
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 support

1: Supported

Bit 3 MULT256 : Multiplying the trigger counter by 256 support

1: Supported

Bit 2 MULT16 : Multiplying the trigger counter by 16 support

1: Supported

Bit 1 MULT4 : Multiplying the trigger counter by 4 support

1: Supported

Bit 0 MULT2 : Multiplying the trigger counter by 2 support

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

Enables delaying trigger flagging to any external connected trace capture or storage devices. This counter is only eight bits 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.MULT64KMULT256MULT16MULT4MULT2
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 support

1: Supported

Bit 16 PTIMEEN : Timed mode support

1: Supported

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

Bit 3 PATF0 : Support of FF/00 pattern

Indicates whether the FF/00 pattern is supported as output over the trace port.

1: Supported

Bit 2 PATA5 : Support of AA/55 pattern

Indicates whether the AA/55 pattern is supported as output over the trace port.

1: Supported

Bit 1 PATW0 : Support of walking 0's pattern

Indicates whether the walking 0's pattern is supported as output over the trace port.

1: Supported

Bit 0 PATW1 : Support of walking 1's pattern

Indicates whether the walking 1's 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.PCONTENPTIMEEN
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

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

Indicates whether the AA/55 pattern is enabled as output over the trace port

0: Disabled

1: Enabled

Bit 1 PATW0 : Walking 0's pattern enable

Indicates whether the walking 0's pattern is enabled as output over the trace port

0: Disabled

1: Enabled

Bit 0 PATW1 : Walking 1's pattern enable

Indicates whether the walking 1's 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.
rwrwrwrwrwrwrwrw

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

Bits 7:0 PATTCOUNT[7:0] : Number of TRACECLKIN cycles

The field provides a 8-bit counter value to indicate the number of TRACECLKIN 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.Res.Res.Res.
rcprcprcp

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

Bit 2 TCPPRESENT : TRACECTL output pin availability

Indicates whether the optional TRACECTL output pin is available for use.

0: TRACECTL pin is not present in this device.

Bit 1 FTSTOPPED : Formatter stopped

The formatter has received a stop request signal and all trace data and post-amble is sent. Any additional trace data on the ATB interface is ignored.

0: Formatter has not stopped

1: Formatter has stopped

Bit 0 FLINPROG : Flush in progress

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 the TPIU_FFCR register.

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.ENFCOINTEN FTC
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 TRIGVT : 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 : Generate a manual flush
0: No effect
1: Flush the trace

This bit is cleared automatically 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 : Enable continuous formatting
0: Continuous formatting is disabled
1: Continuous formatting is enabled

Bit 0 ENFTC : Enable the 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] : Enables effective use of TPAs

Enables 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 synchronization every 65536 bytes, that is, 4096 packets x 16 bytes per packet. The default is set up for a synchronization packet every 1024 bytes, that is, every 64 formatter frames. If the formatter is configured for continuous mode, full and half-word sync frames are inserted during normal operation. Under these circumstances, the count value is 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]
nwnwnwnw

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

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]
nwnwnwnw

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

TPIU lock access register (TPIU_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] : TPIU register access enable

Enables write access to some TPIU registers by 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 zero 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 zero 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 non-secure non-invasive debug

0x0: Not implemented

Bits 1:0 NSID[1:0] : Security level for non-secure 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.SWO
UART
NRZ
SWO
MAN
TCLK
DATA
FIFO SIZE[2:0]CLK
RELAT
MUXNUM[4:0]
rrrrrrrrrrrr

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

Bit 11 SWOUARTNRZ : Support of SWO UART or NRZ

Indicates whether serial wire output, UART or NRZ, is supported.

0: Not supported

Bit 10 SWOMAN : Support of SWO Manchester format

Indicates whether serial wire output, Manchester encoded format, is supported.

0: Not supported

Bit 9 TCLKDATA : Support of trace clock plus data

0: Not supported

Bits 8:6 FIFOSIZE[2:0] : FIFO size in powers of 2

0x2: FIFO size = 4 (16 bytes)

Bit 5 CLKRELAT : ATB clock and TRACECLKIN relation

Indicates the relationship between the ATB clock and TRACECLKIN (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.4KCOUNT[3:0]JEP106CON[3:0]
rrrrrrrr

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

Bits 7:4 4KCOUNT[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 and reset values

Table 616. TPIU register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x000TPIU_SUPPSIZEPORTSIZE[31:0]
Reset value00000000000000000000000001111111
0x004TPIU_CURPSIZEPORTSIZE[31:0]
Reset value00000000000000000000000000000001
0x008 to 0x0FCReservedReserved
0x100TPIU_SUPTRGMRes.Res.Res.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.Res.TRIGCOUNT[7:0]
Reset value00000000
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 to 0x1FCReservedReserved
0x200TPIU_SUPTPMRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PCONTENPTIMEENRes.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.Res.Res.PCONTENPTIMEENRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PATF0PATA5PATW0PATW1
Reset value000000

Table 616. TPIU register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x208TPIU_TPRCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PATTNCOUNT[7:0]
Reset value000000000
0x20C to 0x2FCReservedReserved
0x300TPIU_FFSRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.TCPRESENTFTSTOPPEDFLINPROG
Reset value0-10
0x304TPIU_FFCRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.STOPTRIGSTOPFLRes.TRIGFLTRIGEV1TRIGINRes.FONMANFONTRIGFONFLINRes.Res.ENFCONTENFTC
Reset value0000000000
0x308TPIU_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
0x30C to 0xF9CReservedReserved
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 value111
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 value000
0xFB0TPIU_LARACCESS_W[31:0]
Reset value-------------------------------
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 value0-1-1
0xFB8TPIU_AUTHSTATRes.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.SID[1:0]Res.NSNID[1:0]Res.NSID[1:0]
Reset value00000000
0xFBC to 0xFC4ReservedReserved
0xFC8TPIU_DEVIDRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SWOUARTNRZSWOMANTCLKDATAFIFOSIZE[2:0]Res.CLKRELATMUXNUM[4:0]
Reset value00001010000

Table 616. TPIU register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
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.SUBTYPE[3:0]MAJORTYP[3:0]
Reset value00010001
0xFD0TPIU_PIDR4Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.4KCOUNT[3:0]JEP106CON[3:0]
Reset value00000100
0xFD4 to 0xFDCReservedReserved
0xFE0TPIU_PIDR0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PARTNUM[7:0]
Reset value00010010
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.JEP106ID[3:0]PARTNUM[11:8]
Reset value10111001
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.REVISION[3:0]JEDEC[6:4]JEP106ID[6:4]
Reset value01011011
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.REVAND[3:0]CMOD[3:0]
Reset value00000000
0xFF0TPIU_CIDR0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[7:0]
Reset value00001101
0xFF4TPIU_CIDR1Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.CLASS[3:0]PREAMBLE[11:8]
Reset value10010000
0xFF8TPIU_CIDR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[19:12]
Reset value00000101
0xFFCTPIU_CIDR3Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[27:20]
Reset value10110001

60.5.7 Serial wire output (SWO) and SWO trace funnel (SWTF)

The SWO is a CoreSight component that formats the trace stream from the processor ITM and outputs it on the single wire TRACESWO output. The SWO trace funnel (SWTF) must be programmed to enable the trace bus from the Cortex-M7 ITM before trace is enabled. The SWTF registers are listed in Table 618 .

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 [4].

SWO registers

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.PPROT[1:0]
rwrw

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

Bits 1:0 PPROT[1:0] : Pin protocol

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
TCPRE
SENT
FTSTO
PPED
FLINPR
OG
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: N/A

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 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-bit

Bit 1 LOCKGRANT : Current status of lock

This bit always returns zero 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 zero when read by an external debugger.

0: No lock control mechanism is 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 non-secure non-invasive debug
0x0: Not implemented

Bits 1:0 NSID[1:0] : Security level for non-secure 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.SWO
UART
NRZ
SWO
MAN
TCLK
DATA
FIFO SIZE[2:0]CLK
RELAT
MUXNUM[4:0]
rrrrrrrrrrrr

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

Bit 11 SWOUARTNRZ : SWO UART or NRZ support
Indicates whether serial wire output, UART or NRZ, is supported.

1: Supported

Bit 10 SWOMAN : SWO Manchester format support
Indicates whether serial wire output, Manchester encoded format, is supported.
1: Supported

Bit 9 TCLKDATA : Trace clock plus data support
Indicates whether trace clock plus data is supported

1: Supported

Bits 8:6 FIFOSIZE[2:0] : FIFO size in powers of 2
0x2: FIFO size = 4 (16 bytes)

Bit 5 CLKRELAT : ATB clock to TRACECLKIN relation
Indicates the relationship between the ATB clock and TRACECLKIN (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] : Sub-classification

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.4KCOUNT[3:0]JEP106CON[3:0]
rrrrrrrr

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

Bits 7:4 4KCOUNT[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.
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.
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.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.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 and reset values

Table 617. SWO register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x010SWO_CODRRes.PRESCALER[12:0]
Reset value0000000000000
0x014 to 0x0ECReservedReserved
0x0F0SWO_SPPRRes.PPROT[1:0]
Reset value01

Table 617. SWO register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x0F4 to 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.FTNONSTOPTCPPRESENTFTSTOPPEDFLINPROG
Reset value1000
0x304 to 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
0xFB0SWO_LARACCESS_W[31:0]
Reset value-------------------------------
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.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.Res.Res.Res.Res.SNID[1:0]SID[1:0]NSNID[1:0]NSID[1:0]
Reset value0000
0xFBC to 0xFC4ReservedReserved
0xFC8SWO_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.SWOUARTNRZSWOMANTCLKDATAFIFOSIZE[2:0]
Reset value00000000000000000000000000001110
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.Res.Res.Res.Res.SUBTYPE[3:0]MAJORTYPE[3:0]
Reset value00000000000000000000000000000001
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.Res.Res.Res.Res.4KCOUNT[3:0]JEP106CON[3:0]
Reset value00000000000000000000000000000010
0xFD4 to 0xFDCReservedReserved

Table 617. SWO register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFE0SWO_PIDR0Res.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 value000101000
0xFE4SWO_PIDR1Res.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
0xFE8SWO_PIDR2Res.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 value00101011
0xFECSWO_PIDR3Res.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
0xFF0SWO_CIDR0Res.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
0xFF4SWO_CIDR1Res.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
0xFF8SWO_CIDR2Res.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
0xFFCSWO_CIDR3Res.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

SWTF registers

SWTF control register (SWTF_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
Res.Res.Res.Res.MIN_HOLD_TIME[3:0]Res.Res.Res.Res.Res.Res.Res.ENSO
rwrwrwrwrw

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:1 Reserved, must be kept at reset value.

Bit 0 ENS0 : Slave port S0 enable

SWTF priority register (SWTF_PRIORITY)

Address offset: 0x004

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.Res.PRIPORT0[2:0]
rwrwrw

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

Bits 2:0 PRIPORT0[2:0] : Slave port S0 priority

SWTF claim tag set register (SWTF_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

SWTF claim tag clear register (SWTF_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

SWTF lock access register (SWTF_LAR)

Address offset: 0xFB0

Reset value: N/A

31302928272625242322212019181716
ACCESS_W[31:16]
wwwwwwwwwwwwwwww
1514131211109876543210
ACCESS_W[15:0]
wwwwwwwwwwwwwwww

Bits 31:0 ACCESS_W[31:0] : SWTF register write access enable

Enables write access to some SWTF registers by processor cores (debuggers do not need to unlock the component)

0xC5ACCE55: Enable write access

Other values: Disable write access

SWTF lock status register (SWTF_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 SWTF_LAR register

0: 32-bit

Bit 1 LOCKGRANT : Current status of lock

This bit always returns zero 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 zero when read by an external debugger.

0: No lock control mechanism exists

1: Lock control mechanism is implemented

SWTF authentication status register (SWTF_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 non-secure non-invasive debug
0x2: Disabled
0x3: Enabled

Bits 1:0 NSID[1:0] : Security level for non-secure invasive debug
0x2: Disabled
0x3: Enabled

SWTF CoreSight device identity register (SWTF_DEVID)

Address offset: 0xFC8

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.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
0x2: Static priority

Bits 3:0 PORTCNT[3:0] : Number of input ports connected
0x2: Two input ports

SWTF CoreSight device type identity register (SWTF_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

SWTF CoreSight peripheral identity register 4 (SWTF_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.4KCOUNT[3:0]JEP106CON[3:0]
rrrrrrrr

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

Bits 7:4 4KCOUNT[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

SWTF CoreSight peripheral identity register 0 (SWTF_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: SWTF part number

SWTF CoreSight peripheral identity register 1 (SWTF_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: SWTF part number

SWTF CoreSight peripheral identity register 2 (SWTF_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

SWTF CoreSight peripheral identity register 3 (SWTF_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

SWTF CoreSight component identity register 0 (SWTF_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

SWTF CoreSight component identity register 1 (SWTF_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

SWTF CoreSight component identity register 2 (SWTF_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

SWTF CoreSight component identity register 3 (SWTF_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

SWTF register map and reset values

Table 618. SWTF register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x000SWTF_CTRLRes.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.Res.Res.ENSO
Reset value00110
0x004SWTF_PRIORITYRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PRIPORT[2:0]
Reset value000
0x008 to 0xF8CReservedReserved
0xFA0SWTF_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
0xFA4SWTF_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 to 0xFACReservedReserved
0xFB0SWTF_LARACCESS_W[31:0]
Reset value--------------------------------
0xFB4SWTF_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

Table 618. SWTF register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFB8SWTF_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
0xFBC to 0xFC4ReservedReserved
0xFC8SWTF_DEVIDRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SCHEME[3:0]PORTCNT[3:0]
Reset value00100010
0xFCCSWTF_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.DEVTYPEID[7:0]
Reset value0010010
0xFD0SWTF_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.4KCOUNT[3:0]JEP106CON[3:0]
Reset value00000100
0xFD4 to 0xFDCReservedReserved
0xFE0SWTF_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.Res.Res.PARTNUM[7:0]
Reset value00001000
0xFE4SWTF_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.Res.Res.Res.JEP106ID[3:0]PARTNUM[11:8]
Reset value10111001
0xFE8SWTF_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.Res.Res.Res.REVISION[3:0]JEDECJEP106ID[6:4]
Reset value00111011
0xFECSWTF_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.Res.Res.Res.REVAND[3:0]CMOD[3:0]
Reset value00000000
0xFF0SWTF_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.Res.Res.PREAMBLE[7:0]
Reset value00001101
0xFF4SWTF_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.Res.Res.Res.Res.Res.CLASS[3:0]PREAMBLE[11:8]
Reset value10010000
0xFF8SWTF_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.Res.Res.Res.Res.Res.PREAMBLE[19:12]
Reset value00000101
0xFFCSWTF_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.Res.Res.Res.Res.Res.PREAMBLE[27:20]
Reset value10110001

60.5.8 Microcontroller debug unit (DBGMCU)

The DBGMCU component contains a number of registers that control the power and clock behavior in Debug mode. Specifically it allows the debugger, or debug software, to:

The DBGMCU registers are not reset by a system reset, only by a power on reset. They are accessible to the debugger via the APB-D bus at base address 0xE00E1000. They are also accessible by the processor core at base address 0x5C001000.

Note: the DBGMCU is not a standard CoreSight component. Therefore, it does not appear in the system ROM table.

DBGMCU registers

DBGMCU identity code register (DBGMCU_IDC)

Address offset: 0x000

Reset value: 0xX00X 6450

31302928272625242322212019181716
REV_ID[15:0]
rrrrrrrrrrrrrrrr
1514131211109876543210
Res.Res.Res.Res.DEV_ID[11:0]
rrrrrrrrrrrr

Bits 31:16 REV_ID[15:0] : Revision

0x1001 = Revision Z

0x1003 = Revision Y

0x2001 = Revision X

0x2003 = Revision V

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

Bits 11:0 DEV_ID[11:0] : Device ID

0x450: STM32H742, STM32H743/753 and STM32H750

DBGMCU configuration register (DBGMCU_CR)

Address offset: 0x004

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.TRGOENRes.Res.Res.Res.Res.D3DBGCKEND1DBGCKENTRACECKENRes.Res.Res.Res.
rwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DBGSTBY_D1DBGSTOP_D1DBGSL
EEP_D
1
rwrwrw

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

Bit 28 TRGOEN : External trigger output enable

This bit controls the direction of the bi-directional trigger pin, TRGIO.

0: Input - TRGIO is connected to TRGIN

1: Output - TRGIO is connected to TRGOUT

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

Bit 22 D3DBGCKEN : D3 debug clock enable

This bit allows the debug components in the D3 domain (excluding the DAPCLK domain) to be switched off if they are not needed.

0: Disabled - D3 domain debug components are disabled and their clocks gated

1: Enabled - D3 domain debug components are clocked whenever the corresponding domain clock (CK_HCLK_D3) is active

Bit 21 D1DBGCKEN : D1 debug clock enable

This bit allows the debug components in the D1 domain (excluding those in the processor core) to be switched off if they are not needed.

0: Disabled - D1 domain debug components are disabled and their clocks gated

1: Enabled - D1 domain debug components are clocked whenever the corresponding domain clock (CK_HCLK_D1) is active

Bit 20 TRACECKEN : Trace port clock enable

This bit enables the trace port clock, TRACECLK.

0: Disabled - TRACECLK is disabled

1: Enabled - TRACECLK is active

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

Bit 2 DBGSTBY_D1 : D1 domain debug in Standby mode enable

0: Normal operation - all clocks is disabled and the domain powered down automatically in Standby mode.
1: Automatic clock stop/power-down disabled - all active clocks and oscillators continue to run during Standby mode, and the domain supply is maintained, allowing full debug capability. On exit from Standby mode, a domain reset is performed.

Bit 1 DBGSTOP_D1 : D1 domain debug in Stop mode enable

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. On exit from Stop mode, the clock settings is set to the Stop mode exit state.

Bit 0 DBGSLEEP_D1 : D1 domain debug in Sleep mode enable

0: Normal operation - processor clock is stopped automatically in Sleep mode

1: Automatic clock stop disabled - processor clock continues to run, allowing full debug capability

DBGMCU APB3 peripheral freeze register (DBGMCU_APB3FZ1)

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.Res.Res.Res.Res.WWDG1Res.Res.Res.Res.Res.Res.
rw

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

Bit 6 WWDG1 : WWDG1 stop in debug

0: Normal operation - WWDG1 continues operating while the core is in Debug mode

1: Stop in debug - WWDG1 is frozen while the core is in Debug mode

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

DBGMCU APB1L peripheral freeze register (DBGMCU_APB1LFZ1)

Address offset: 0x03C
Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.DBG_I2C3DBG_I2C2DBG_I2C1Res.Res.Res.Res.Res.
rwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.DBG_LPTIM1DBG_TIM14DBG_TIM13DBG_TIM12DBG_TIM7DBG_TIM6DBG_TIM5DBG_TIM4DBG_TIM3DBG_TIM2
rwrwrwrwrwrwrwrwrwrw

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

Bit 23 DBG_I2C3 : I2C3 SMBUS timeout stop in debug

Bit 22 DBG_I2C2 : I2C2 SMBUS timeout stop in debug

Bit 21 DBG_I2C1 : I2C1 SMBUS timeout stop in debug

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

Bit 10 Reserved, must be kept at reset value.

Bit 9 DBG_LPTIM1 : LPTIM1 stop in debug

Bit 8 DBG_TIM14 : TIM14 stop in debug

Bit 7 DBG_TIM13 : TIM13 stop in debug

Bit 6 DBG_TIM12 : TIM12 stop in debug

Bit 5 DBG_TIM7 : TIM7 stop in debug

Bit 4 DBG_TIM6 : TIM6 stop in debug

Bit 3 DBG_TIM5 : TIM5 stop in debug

Bit 2 DBG_TIM4 : TIM4 stop in debug

Bit 1 DBG_TIM3 : TIM3 stop in debug

Bit 0 DBG_TIM2 : TIM2 stop in debug

DBGMCU APB2 peripheral freeze register (DBGMCU_APB2FZ1)

Address offset: 0x04C

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.DBG_HRTIMRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.DBG_TIM17DBG_TIM16DBG_TIM15
rwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DBG_TIM8DBG_TIM1
rwrw

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

Bit 29 DBG_HRTIM : HRTIM stop in debug

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

Bit 18 DBG_TIM17 : TIM17 stop in debug

Bit 17 DBG_TIM16 : TIM16 stop in debug

Bit 16 DBG_TIM15 : TIM15 stop in debug

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

Bit 1 DBG_TIM8 : TIM8 stop in debug

Bit 0 DBG_TIM1 : TIM1 stop in debug

DBGMCU APB4 peripheral freeze register (DBGMCU_APB4FZ1)

Address offset: 0x054

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DBG_I_WDG1Res.DBG_RTC
rwrw
1514131211109876543210
Res.Res.Res.DBG_LPTIM5DBG_LPTIM4DBG_LPTIM3DBG_LPTIM2Res.DBG_I2C4Res.Res.Res.Res.Res.Res.Res.
rwrwrwrwrw

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

Bit 18 DBG_IWDG1 : Independent watchdog for D1 stop in debug

0: Normal operation - watchdog continues to count while the core is in Debug mode

1: Stop in debug - watchdog is frozen while Cortex-M7 is in Debug mode

Bit 17 Reserved, must be kept at reset value.

Bit 16 DBG_RTC : RTC stop in debug

0: Normal operation - RTC continues operating while the core is in Debug mode

1: Stop in debug - RTC is frozen while Cortex-M7 is in Debug mode

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

Bit 12 DBG_LPTIM5 : LPTIM5 stop in debug

0: Normal operation - LPTIM5 continues operating while the core is in Debug mode

1: Stop in debug - LPTIM5 is frozen while Cortex-M7 is in Debug mode

Bit 11 DBG_LPTIM4 : LPTIM4 stop in debug

0: Normal operation - LPTIM4 continues operating while the core is in Debug mode

1: Stop in debug - LPTIM4 is frozen while Cortex-M7 is in Debug mode

Bit 10 DBG_LPTIM3 : LPTIM2 stop in debug

0: Normal operation - LPTIM2 continues operating while the core is in Debug mode

1: Stop in debug - LPTIM2 is frozen while Cortex-M7 is in Debug mode

Bit 9 DBG_LPTIM2 : LPTIM2 stop in debug

0: Normal operation - LPTIM2 continues operating while the core is in Debug mode

1: Stop in debug - LPTIM2 is frozen while Cortex-M7 is in Debug mode

Bit 8 Reserved, must be kept at reset value.

Bit 7 DBG_I2C4 : I2C4 SMBUS timeout stop in debug

0: Normal operation - I2C4 SMBUS timeout continues operating while the core is in Debug mode

1: Stop in debug - I2C4 SMBUS timeout is frozen while the core is in Debug mode

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

DBGMCU register map and reset values

Table 619. DBGMCU register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x000DBGMCU_IDCREV_ID[15:0]DEV_ID[11:0]
Reset valueXXXX000000000XXXXResResResRes010001010000
0x004DBGMCU_CRResResResTRGOENResResResResResD3DBGCKEND1DBGCKENITRACECLKENResResResResResResResResResResResResResResResResResResDBGSTBD1DBGSTPD1DBGSLPD1
Reset value00000000000000000000000000000000
0x008 to 0x030ReservedReserved
0x034DBGMCU_APB3FZ 1ResResResResResResResResResResResResResResResResResResResResResResResResWWDG1ResResResResResResRes
Reset value0
0x038ReservedReserved
0x03CDBGMCU_APB1LFZ 1ResResResResResResResResResDBG_I2C3DBG_I2C2DBG_I2C1ResResResResResResResResResResResDBG_LPTIM1DBG_TIM14DBG_TIM13DBG_TIM12DBG_TIM7DBG_TIM6DBG_TIM5DBG_TIM4DBG_TIM3DBG_TIM2
Reset value0000000000000
0x040 to 0x048ReservedReserved
0x04CDBGMCU_APB2FZ 1ResResDBG_HRTIMResResResResResResResResResResDBG_TIM17DBG_TIM16DBG_TIM15ResResResResResResResResResResResResResResResDBG_TIM8DBG_TIM1
Reset value000000
0x050ReservedReserved
0x054DBGMCU_APB4FZ 1ResResResResResResResResResResResResResDBG_WDGLSD1ResDBG_RTCResResResDBG_LPTIM5DBG_LPTIM4DBG_LPTIM3DBG_LPTIM2ResDBG_I2C4ResResResResResResResRes
Reset value0000000

60.6 Cortex-M7 debug functional description

The Cortex-M7 subsystem features the following CoreSight™ components:

These components are accessible by the debugger via the Cortex-M7 AHB-AP and its associated AHBD bus.

60.6.1 Cortex-M7 ROM tables

The ROM table is a CoreSight™ component that contains the base addresses of all the CoreSight debug components accessible via the AHBD. These tables enable a debugger to access the topology of the CoreSight system automatically.

There are two ROM tables in the Cortex-M7 sub-system:

This table is pointed to by the BASE register in the Cortex-M7 AHB-AP. It contains the base address pointers for the ETM and CTI, as well as for the Cortex-M7 PPB ROM table.

This table contains pointers to the Cortex-M7 System Control Space registers allowing the debugger to identify the CPU core, as well as to the remaining CoreSight components in the Cortex-M7 subsystem: FPB, DWT and ITM.

The processor ROM table occupies a 4-Kbyte, 32-bit wide chunk of AHBD address space, from 0xE00FE000 to 0xE00FEFFC.

Table 620. Cortex-M7 processor ROM table

Address in ROM tableComponent nameComponent base addressComponent address offsetSizeEntry
0xE00FE000Cortex-M7 PPB ROM table0xE00FF0000x000010004 Kbyte0x00001003
0xE00FE004Cortex-M7 ETM0xE00410000xFFF430004 Kbyte0xFFF43003
0xE00FE008Cortex-M7 CTI0xE00430000xFFF450004 Kbyte0xFFF45003
0xE00FE00CReserved---0x1FF02002
0xE00FE010Top of table---0x00000000
0xE00FE010 to 0xE00FEFC8Reserved---0x00000000
0xE00FEFC8 to 0xE00FEFFCROM table registers---See Table 622

The Cortex-M7 PPB ROM table occupies a 4-Kbyte, 32-bit wide chunk of APB-D address space, from 0xE00FF000 to 0xE00FFFFC.

Table 621. Cortex-M7 PPB ROM table

Address in ROM tableComponent nameComponent base addressComponent address offsetSizeEntry
0xE00FF000SCS0xE000E0000xFFF0F0004 Kbyte0xFFF0F003
0xE00FF004DWT0xE00010000xFFF020004 Kbyte0xFFF02003
0xE00FF008FPB0xE00020000xFFF030004 Kbyte0xFFF03003
0xE00FF00CITM0xE00000000xFFF010004 Kbyte0xFFF01003

Table 621. Cortex-M7 PPB ROM table

Address in ROM tableComponent nameComponent base addressComponent address offsetSizeEntry
0xE00FF010TPIU (1)0xE00400000xFFF410004 Kbyte0xFFF41002
0xE00FF014ETM (1)0xE00410000xFFF420004 Kbyte0xFFF42002
0xE00FF018Top of table---0x00000000
0xE00FF01C to 0xE00FFFC8Reserved---0x00000000
0xE00FFFC to 0xE00FFFFCROM table registers---See Table 623

1. The TPIU and ETM are included in this table by default, but bit 0 is reset to indicate that they are not present.

The Topology for the CoreSight™ components in the Cortex-M7 subsystem is shown in Figure 838 .

Figure 838. Cortex-M7 CoreSight topology

Figure 838. Cortex-M7 CoreSight topology diagram showing the hierarchy of debug components connected via the AHB-AP. It details the ROM tables for the processor and PPB, and the specific address offsets for components like PIDR4, CIDR3, and Register file base across different debug units (DWT, FPB, ITM, ETM, CTI).

The diagram illustrates the CoreSight topology for the Cortex-M7 subsystem. It shows the hierarchy of debug components connected via the AHB-AP (0xE00E0000). The AHB-AP BASE register (0xF8) points to the Cortex-M7 processor ROM table at 0xE00FE000. This table contains entries for the TPIU, ETM, and the top of the table. The TPIU entry points to the TPIU component at 0xE0040000, and the ETM entry points to the ETM component at 0xE0041000. The PPB ROM table at 0xE00FF000 contains entries for the TPIU, ETM, and the top of the table. The TPIU entry points to the TPIU component at 0xE0040000, and the ETM entry points to the ETM component at 0xE0041000. The System control space (SCS) at 0xE000E000 contains registers for the Register file base, PIDR4, and CIDR3. The Data watchpoint/trace (DWT) at 0xE0001000 contains registers for the Register file base, PIDR4, and CIDR3. The Breakpoint unit (FPB) at 0xE0002000 contains registers for the Register file base, PIDR4, and CIDR3. The Instrumentation trace (ITM) at 0xE0000000 contains registers for the Register file base, PIDR4, and CIDR3. The Embedded trace (ETM) at 0xE0041000 contains registers for the Register file base, PIDR4, and CIDR3. The Cross trigger (CTI) at 0xE0042000 contains registers for the Register file base, PIDR4, and CIDR3.

Figure 838. Cortex-M7 CoreSight topology diagram showing the hierarchy of debug components connected via the AHB-AP. It details the ROM tables for the processor and PPB, and the specific address offsets for components like PIDR4, CIDR3, and Register file base across different debug units (DWT, FPB, ITM, ETM, CTI).

MSv39788V2

Cortex-M7 processor ROM registers

Processor ROM memory type register (M7_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.SYSMEM
r

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

Bit 0 SYSMEM : System memory presence

1: System memory is present on this bus

Processor ROM CoreSight peripheral identity register 4 (M7_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.4KCOUNT[3:0]JEP106CON[3:0]
rrrrrrrr

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

Bits 7:4 4KCOUNT[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
(M7_CPUROM_PIDR0)

Address offset: 0xFE0

Reset value: 0x0000 0050

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

0x50: STM32H7

Processor ROM CoreSight peripheral identity register 1
(M7_CPUROM_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] : Part number field, bits [11:8]

0x4: STM32H7

Processor ROM CoreSight peripheral identity register 2
(M7_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 0

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

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

Cortex-M7 processor ROM table register map and reset values

Table 622. Cortex-M7 processor ROM table register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFFCM7_CPUROM_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.SYSTEM
Reset value1
0xFF0M7_CPUROM_PIDR4Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.4KCOUNT[3:0]JEP106CON[3:0]
Reset value00000000
0xFF4 to 0xFFCReservedReserved
0xFE0M7_CPUROM_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 value01010000
0xFE4M7_CPUROM_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 value00000100
0xFE8M7_CPUROM_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 value00001010
0xFECM7_CPUROM_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
0xFF0M7_CPUROM_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
0xFF4M7_CPUROM_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

Table 622. Cortex-M7 processor ROM table register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFF8M7_CPUROM_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
0xFFCM7_CPUROM_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

Cortex-M7 PPB ROM registers

PPB ROM memory type register (M7_PPBROM_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.SYSEM
r

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

Bit 0 SYSEM : System memory presence
1: System memory is present on this bus

PPB ROM CoreSight peripheral identity register 4 (M7_PPBROM_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.4KCOUNT[3:0]JEP106CON[3:0]
rrrrrrrr

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

Bits 7:4 4KCOUNT[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

PPB ROM CoreSight peripheral identity register 0 (M7_PPBROM_PIDR0)

Address offset: 0xFE0

Reset value: 0x0000 00C7

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

0xC7: Cortex-M7 PPB ROM table

PPB ROM CoreSight peripheral identity register 1 (M7_PPBROM_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]

0x4: Cortex-M7 PPB ROM table

PPB ROM CoreSight peripheral identity register 2 (M7_PPBROM_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

PPB ROM CoreSight peripheral identity register 3 (M7_PPBROM_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

PPB ROM CoreSight component identity register 0 (M7_PPBROM_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

PPB ROM CoreSight component identity register 1 (M7_PPBROM_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

PPB ROM CoreSight component identity register 2 (M7_PPBROM_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

PPB ROM CoreSight component identity register 3 (M7_PPBROM_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

Cortex-M7 PPB ROM table register map and reset values

Table 623. Cortex-M7 PPB ROM table register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFFCM7_PPBROM_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.SYSTEM
Reset value1
0xFD0M7_PPBROM_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.4KCOUNT[3:0]JEP106CON[3:0]
Reset value00000100
0xFD4 to 0xFDCReservedReserved

Table 623. Cortex-M7 PPB ROM table register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFE0M7_PPBROM_
_PIDR0
Res.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 value11000111
0xFE4M7_PPBROM_
_PIDR1
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 value10110100
0xFE8M7_PPBROM_
_PIDR2
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]JEDDECJEP106ID[6:4]
Reset value00001011
0xFECM7_PPBROM_
_PIDR3
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 value00000000
0xFF0M7_PPBROM_
_CIDR0
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 value00001101
0xFF4M7_PPBROM_
_CIDR1
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 value00010000
0xFF8M7_PPBROM_
_CIDR2
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 value00000101
0xFFCM7_PPBROM_
_CIDR3
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 value10110001

60.6.2 Cortex-M7 data watchpoint and trace unit (DWT)

The DWT provides four 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 register:

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 ® v7-M Architecture Reference Manual [5].

Cortex-M7 DWT registers

DWT control register (M7_DWT_CTRL)

Address offset: 0x000

Reset value: 0x4000 0000

31302928272625242322212019181716
NUMCOMP[3:0]NOTRCPKTNOEXTTRIGNOCYCCNTNOPRFCNTRes.CYCEVTENAFOLDEVTENALSUEVTENASLEEPEVTENAEXCEVTENACPIEVTENAEXCTRCEENA
rrrrrrrrrwrwrwrwrwrwrw
1514131211109876543210
Res.Res.Res.PCSAMPTENASYNCTAP[1:0]CYCTAPPOSTINIT[3:0]POSTRESET[3:0]CYCCNTENA
rwrwrwrwrwrwrwrwrwrwrwrwrw

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

0x4: Four comparators

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

0: Supported

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

0: Supported

Bit 25 NOCYCCNT : Cycle counter support (read-only)

0: Supported

  1. Bit 24 NOPRFCNT : Profiling counter support (read-only)
    0: Supported
  2. Bit 23 Reserved, must be kept at reset value.
  3. Bit 22 CYCEVTENA : POSTCNT underflow event counter packet generation enable
    0: Disabled
    1: Enabled
  4. Bit 21 FOLDEVTEENA : Folded instruction counter overflow event generation enable
    0: Disabled
    1: Enabled
  5. Bit 20 LSUEVTENA : LSU counter overflow event generation enable
    0: Disabled
    1: Enabled
  6. Bit 19 SLEEPEVTENA : Sleep counter overflow event generation enable
    0: Disabled
    1: Enabled
  7. Bit 18 EXCEVTENA : Exception overhead counter overflow event generation enable
    0: Disabled
    1: Enabled
  8. Bit 17 CPIEVTENA : CPI counter overflow event generation enable
    0: Disabled
    1: Enabled
  9. Bit 16 EXCTRCENA : Exception trace generation enable
    0: Disabled
    1: Enabled
  10. Bits 15:13 Reserved, must be kept at reset value.
  11. Bit 12 PCSAMPLENA : POSTCNT counter use enable
    Enables use of POSTCNT counter as a timer for Periodic PC sample packet generation.
    0: Disabled
    1: Enabled
  12. 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]
  13. Bit 9 CYCTAP : Position of the POSTCNT tap on the CYCCNT counter
    0: Tap at CYCCNT[6]
    1: Tap at CYCCNT[10]

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

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

Bits 4:1 POSTRESET[3:0] : Reload value of the POSTCNT counter.

Bit 0 CYCCNTENA : CYCCNT counter enable

0: Disabled

1: Enabled

DWT cycle count register (M7_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 (M7_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 (M7_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.
rwrwrwrwrwrwrwrw
EXCCNT[7:0]

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 (M7_DWT_SLP CNT)

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

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

Bits 7:0 SLP CNT[7:0] : Sleep cycle counter

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

DWT LSU count register (M7_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.
rwrwrwrwrwrwrwrw
LSUCNT[7:0]

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 (M7_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.

DWT program counter sample register (M7_DWT_PCSR)

Address offset: 0x01C

Reset value: 0x0000 0000

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

Bits 31:0 EIASAMPLE[31:0] : Executed instruction address sample value

Samples the current value of the program counter.

DWT comparator register x (M7_DWT_COMPx)

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

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 mask register x (M7_DWT_MASKx)

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

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.MASK[4:0]
rwrwrwrwrw

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

Bits 4:0 MASK[4:0] : Comparator mask size

Provides the size of the ignore mask applied to the access address for address range matching by comparator n. A debugger can write 0b11111 to this field and then read the register back to determine the maximum mask size supported.

DWT function register x (M7_DWT_FUNCTx)

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

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.MATCHEDRes.Res.Res.Res.DATAVADDR1[3:0]
rrwrwrwrw
1514131211109876543210
DATAVADDR0[3:0]DATAVSIZE[1:0]LINK1ENADATAVMATCHCYCMATCHRes.EMITRANGERes.FUNCTION[3:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31: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:20 Reserved, must be kept at reset value.

DWT CoreSight peripheral identity register 4 (M7_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.4KCOUNT[3:0]JEP106CON[3:0]
rrrrrrrr

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

Bits 7:4 4KCOUNT[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 (M7_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]
rr

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 (M7_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 (M7_DWT_PIDR2)

Address offset: 0xFE8

Reset value: 0x0000 000B

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

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

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

0x0: r0p0

Bit 3 JEDEC : JEDEC assigned value

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 (M7_DWT_PIDR3)

Address offset: 0xFEC

Reset value: 0x0000 0000

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

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

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

0x0: No metal fix

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

0x0: No customer modifications

DWT CoreSight component identity register 0 (M7_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 (M7_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 componentBits 3:0 PREAMBLE[11:8] : Component ID field, bits [11:8]
0x0: Common ID value DWT CoreSight component identity register 2 (M7_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 (M7_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

Cortex-M7 DWT register map and reset values

The Cortex-M7 DWT registers are located at address range 0xE0001000 to 0xE0001FFC, on the AHBD.

Table 624. Cortex-M7 DWT register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
NUMCOMP[3:0]NOTRCPKTNOEXTTRIGNOCYCCNTNOPRFCNTRes.CYCEVTENAFOLDEVTENALSUEVTENASLEEPVTENAEXCEVTENACPIVTENAEXCTRGENARes.Res.Res.PCSAMPLENASYNCTAP[1:0]CYCTAPPOSINIT[3:0]POSTRESET[3:0]CYCCNTENA
0x000M7_DWT_CTRL
Reset value0100000000000000000000000000
0x004M7_DWT_CYCCNTCYCCNT[31:0]
Reset value0000000000000000000000000000000
0x008M7_DWT_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 value00000000
0x00CM7_DWT_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 value00000000

Table 624. Cortex-M7 DWT register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x010M7_DWT_SLPCNTRes.SLEEPCNT[7:0]
Reset value00000000
0x014M7_DWT_LSUCNTRes.LSUCNT[7:0]
Reset value00000000
0x018M7_DWT_FOLDCNTRes.FOLDCNT[7:0]
Reset value00000000
0x01CM7_DWT_PCSREIASAMPLE[31:0]
Reset value00000000000000000000000000000000
0x020M7_DWT_COMP0COMP[31:0]
Reset value00000000000000000000000000000000
0x024M7_DWT_MASK0Res.MASK[4:0]
Reset value00000
0x028M7_DWT_FUNCT0Res.MATCHEDRes.DATAVADDR1[3:0]DATAVADDR0[3:0]DATAVSIZE[1:0]LNK1ENADATAVMATCHCYCMATCHRes.EMITRANGERes.FUNCTION[3:0]
Reset value0000000000000000000
0x02CReservedReserved
0x030M7_DWT_COMP1COMP[31:0]
Reset value00000000000000000000000000000000
0x034M7_DWT_MASK1Res.MASK[4:0]
Reset value00000
0x038M7_DWT_FUNCT1Res.MATCHEDRes.DATAVADDR1[3:0]DATAVADDR0[3:0]DATAVSIZE[1:0]LNK1ENADATAVMATCHCYCMATCHRes.EMITRANGERes.FUNCTION[3:0]
Reset value0000000000000000000
0x03CReservedReserved
0x040M7_DWT_COMP2COMP[31:0]
Reset value00000000000000000000000000000000
0x044M7_DWT_MASK2Res.MASK[4:0]
Reset value00000
0x048M7_DWT_FUNCT2Res.MATCHEDRes.DATAVADDR1[3:0]DATAVADDR0[3:0]DATAVSIZE[1:0]LNK1ENADATAVMATCHCYCMATCHRes.EMITRANGERes.FUNCTION[3:0]
Reset value0000000000000000000
0x04CReservedReserved
0x050M7_DWT_COMP3COMP[31:0]
Reset value00000000000000000000000000000000

Table 624. Cortex-M7 DWT register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x054M7_DWT_MASK3Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.MASK[4:0]
Reset value0 0 0 0 0
0x058M7_DWT_FUNCT3Res.Res.Res.Res.Res.Res.Res.MATCHEDRes.Res.Res.Res.Res.DATAADDR1[3:0]Res.Res.Res.DATAADDR0[3:0]Res.Res.DATA/size[1:0]Res.LNK1ENADATAVMATCHCYCMATCHRes.EMITRANGERes.Res.Res.FUNCTION[3:0]
Reset value00000000000000000000
0x05C to 0xFCCReservedReserved
0xFD0M7_DWT_PIDR4Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.4KCOUNT[3:0]JEP106CON[3:0]
Reset value00000100
0xFD4 to 0xFCCReservedReserved
0xFE0M7_DWT_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.Res.PARTNUM[7:0]
Reset value0 0 0 0 0 0 1 0
0xFE4M7_DWT_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.Res.Res.JEP106ID[3:0]
Reset value1 0 1 1 1 0 0 0
0xFE8M7_DWT_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.Res.Res.REVISION[3:0]
Reset value0 0 0 0 1 0 1 1
0xFECM7_DWT_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.Res.Res.REVAND[3:0]
Reset value0 0 0 0 0 0 0 0
0xFF0M7_DWT_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.Res.PREAMBLE[7:0]
Reset value0 0 0 0 1 1 0 1
0xFF4M7_DWT_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.Res.Res.Res.Res.CLASS[3:0]
Reset value0 1 1 1 0 0 0 0
0xFF8M7_DWT_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.Res.Res.Res.Res.PREAMBLE[19:12]
Reset value0 0 0 0 0 1 0 1
0xFFCM7_DWT_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.Res.Res.Res.Res.PREAMBLE[27:20]
Reset value1 0 1 1 0 0 0 1

60.6.3 Cortex-M7 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:

  1. 1. Software trace

Software can write directly to any of 32 x 32-bit ITM stimulus registers to generate packets. The permission level for each port can be programmed. When software writes to an enabled stimulus port, the ITM combines the identity of the port, the size of the write access, and the data written, into a packet that it writes to a FIFO. The ITM

outputs packets from the FIFO onto the trace bus. Reading a stimulus port register returns the status of the stimulus register (empty or pending) in bit 0.

  1. 2. Hardware trace

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

  1. 3. Local timestamping

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

  1. 4. Global system timestamping

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

Cortex-M7 ITM registers

ITM stimulus register x (M7_ITM_STIMx)

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

Reset value: Undefined

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

Bits 31:0 STIMULUS[31:0] : Software event packet / FIFOREADY

Write data is output on the trace bus as a software event packet. When reading, bit 0 is a FIFOREADY indicator:

ITM trace enable register (M7_ITM_TER)

Address offset: 0xE00

Reset value: 0x00000000

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

Bits 31:0 STIMENA[31:0] : Stimulus port enable

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

0: Port disabled

1: Port enabled

ITM trace privilege registers (M7_ITM_TPR)

Address offset: 0xE40

Reset value: 0x00000000

31302928272625242322212019181716
Res.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:

0bXXX0: Unprivileged access permitted on ports 0 to 7

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

0bXX0X: Unprivileged access permitted on ports 8 to 15

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

0bX0XX: Unprivileged access permitted on ports 16 to 23

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

0b0XXX: Unprivileged access permitted on ports 24 to 31

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

ITM trace control register (M7_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.Res.SWOENATXENASYNCENATSENAITMENA
rwrwrwrrwrwrwrw

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

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

If multi-source trace is in use, the debugger must write a non-zero value to this field. Note: different IDs must be used for each trace source in the system.

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

Bits 11:10 GTSPFREQ[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. The possible values are:

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

Prescale used with the trace packet reference clock The possible values are:

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

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

Bit 3 TXENA : Hardware event packet forwarding enable

Enables forwarding of hardware event packets from the DWT unit to the trace port.

Bit 2 SYNCENA : Synchronization packet transmission enable

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

Bit 1 TSENA : Local timestamp generation enable

Bit 0 ITMENA : ITM enable

ITM CoreSight peripheral identity register 4 (M7_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.4KCOUNT[3:0]JEP106CON[3:0]
rrrrrrrr

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

Bits 7:4 4KCOUNT[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 (M7_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 (M7_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 (M7_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 (M7_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 (M7_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 (M7_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.
rrrrrrrr
CLASS[3:0]PREAMBLE[11:8]

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

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 (M7_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

Cortex-M7 ITM register map and reset values

The ITM registers are located at address range 0xE0000000 to 0xE0000FFC, on the AHB.

Table 625. Cortex-M7 ITM register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x000 to 0x07CM7_ITM_STIM0-31STIMULUS[31:0]
Reset value-------------------------------
0x080 to 0xDFCReservedReserved
0xE00M7_ITM_TERSTIMENA[31:0]
Reset value-------------------------------
0xE04 to 0xE3CReservedReserved
0xE40M7_ITM_TPRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PRIVMASK[3:0]
Reset value0 0 0 0
0xE44 to 0xE7CReservedReserved
0xE80M7_ITM_TCRRes.Res.Res.Res.Res.Res.Res.Res.BUSYTRACEBUSID[6:0]Res.Res.Res.Res.GTSFREQ[1:0]TSPRESCALE[1:0]Res.Res.Res.SWOENATXENASYNCENATSENAITMENA
Reset value0000000000000000
0xE84 to 0xFCCReservedReserved

Table 625. Cortex-M7 ITM register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFD0M7_ITM_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.4KCOUNT [3:0]JEP106CON [3:0]
Reset value00000100
0xFD4 to 0xFDCReservedReserved
0xFE0M7_ITM_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.Res.Res.PARTNUM[7:0]
Reset value00000001
0xFE4M7_ITM_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.Res.Res.Res.JEP106ID [3:0]PARTNUM [11:8]
Reset value10110000
0xFE8M7_ITM_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.Res.Res.Res.REVISION [3:0]JEDECJEP106ID [6:4]
Reset value00001011
0xFECM7_ITM_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.Res.Res.Res.REVAND[3:0]CMOD[3:0]
Reset value00000000
0xFF0M7_ITM_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.Res.Res.Res.PREAMBLE[7:0]
Reset value00001101
0xFF4M7_ITM_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.Res.Res.Res.Res.Res.Res.CLASS[3:0]PREAMBLE[11:8]
Reset value11100000
0xFF8M7_ITM_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.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[19:12]
Reset value000000101
0xFFCM7_ITM_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.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[27:20]
Reset value10110001

60.6.4 Cortex-M7 breakpoint unit (FPB)

The FPB allows hardware breakpoints to be set. It contains eight comparators which monitor the instruction fetch address and return a breakpoint instruction when a match is detected. The Cortex-M7 FPB does not support flash patch functionality.

Cortex-M7 FPB registers

FPB control register (M7_FPB_CTRL)

Address offset: 0x000

Reset value: 0x0000 0080

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.

1514131211109876543210
Res.NUM_CODE[6:4]NUM_LIT[3:0]NUM_CODE[3:0]Res.Res.KEYENABLE
rrrrrrrrrrrrwrw

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

Bits 14:12 NUM_CODE[6:4] : Instruction address comparator number field, 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 field, four LSBs

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

0x8: 8 instruction comparators supported

Bit 1 KEY : Write protect key

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

Bits 0 ENABLE : FPB enable

0: Disable

1: Enable

FPB remap register (M7_FPB_REMAP)

Address offset: 0x004

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.RMPS
PT
REMAP[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] : Reserved - not supported

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

FPB comparator registers (M7_FPB_COMPx)

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

Reset value: 0x0000 0000

31302928272625242322212019181716
REPLACE[1:0]Res.COMP[26:14]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
COMP[13:0]Res.ENABLE
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:30 REPLACE[1:0] : Behavior upon COMP versus instruction fetch address match

Defines the behavior when a match occurs between the COMP field and the instruction fetch address:

0x0: Reserved

0x1: Breakpoint on lower half-word, upper half-word is unaffected.

0x2: Breakpoint on upper half-word, lower half-word is unaffected.

0x3: Breakpoint on both upper and lower half-words.

Bit 29 Reserved, must be kept at reset value.

Bits 28:2 COMP[26:0] : Value to compare with code memory access address

Value to compare with address bits 28:2 of accesses to instruction code memory (0x00000000 to 0x1FFFFFFF). If a match occurs, the action to take is defined by the REPLACE field.

Bit 1 Reserved, must be kept at reset value.

Bit 0 ENABLE : Comparator enable

The comparator is only enabled if both this bit and the FPB ENABLE bit in the M7_FPB_CTRL register are set.

0: Disabled

1: Enabled

FPB CoreSight peripheral identity register 4 (M7_FPB_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.4KCOUNT[3:0]JEP106CON[3:0]
rrrrrrrr

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

Bits 7:4 4KCOUNT[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

FPB CoreSight peripheral identity register 0 (M7_FPB_PIDR0)

Address offset: 0xFE0

Reset value: 0x0000 000E

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

0x0E: FPB part number

FPB CoreSight peripheral identity register 1 (M7_FPB_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: FPB part number

FPB CoreSight peripheral identity register 2 (M7_FPB_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

FPB CoreSight peripheral identity register 3 (M7_FPB_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

FPB CoreSight component identity register 0 (M7_FPB_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

FPB CoreSight component identity register 1 (M7_FPB_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

FPB CoreSight component identity register 2 (M7_FPB_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

FPB CoreSight component identity register 3 (M7_FPB_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

Cortex-M7 FPB register map and reset values

The Cortex-M7 FPB registers are located at address range 0xE0002000 to 0xE0002FFC.

Table 626. Cortex-M7 FPB register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x000M7_FPB_CTRLRes.Res.Res.Res.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 value0000000100000

Table 626. Cortex-M7 FPB register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x004M7_FPB_REMAPRes.Res.RMPSPREMAP[23:0]Res.Res.Res.Res.Res.
Reset value0000000000000000000000000000000
0x008 to 0x020M7_FPB_COMP0 to M7_FPB_COMP7REPLACE[1:0]Res.COMP[26:0]Res.ENABLE
Reset value0000000000000000000000000000000
0x024 to 0xFCCReservedReserved
0xFD0M7_FPB_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.4KCOUNT[3:0]JEP106CON[3:0]
Reset value00000
0xFD4 to 0xFDCReservedReserved
0xFE0M7_FPB_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 value00001
0xFE4M7_FPB_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 value10110
0xFE8M7_FPB_PIDR2Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.REVISION[3:0]JEDECJEP106ID[6:4]
Reset value00001
0xFECM7_FPB_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
0xFF0M7_FPB_CIDR0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[7:0]
Reset value00001
0xFF4M7_FPB_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 value11100
0xFF8M7_FPB_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
0xFFCM7_FPB_CIDR3Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PREAMBLE[27:20]
Reset value10110

60.6.5 Cortex-M7 embedded trace macrocell (ETM)

The Cortex-M7 ETM is a CoreSight™ component closely coupled to the CPU. The ETM generates trace packets that allow the execution of the Cortex-M7 core to be traced. In the STM32H7, the ETM is configured for instruction trace only, so 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™-M7 technical reference manual [6].

Cortex-M7 ETM registers

ETM programming control register (M7_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
nw

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

Bit 0 EN : Trace program enable

0: Trace unit is disabled

1: Trace unit is enabled

ETM processor select control register (M7_ETM_PROCSEL)

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.Res.Res.Res.Res.Res.Res.Res.PROC
SEL
rw

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

Bit 0 PROCSEL : Processor select

This field has no effect since only the Cortex-M7 uses this ETM.

ETM status register (M7_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.PMSTA
BLE
IDLE
rr

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

Bit 1 PMSTABLE : Programmers model stable

Indicates whether the ETM registers are stable and can be read.

0: Registers are not stable

1: Registers are stable

Bit 0 IDLE : Trace unit inactive

0: ETM is not idle

1: ETM is idle

ETM trace configuration register (M7_ETM_CONFIG)

Address offset: 0x010

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DVDA
rwrw
1514131211109876543210
Res.Res.Res.RSTSCOND[2:0]Res.Res.Res.CCIBBINSTP0[1:0]Res.
rwrwrwrwrwrwrwrr

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

Bit 17 DV : Data value tracing (read-only)

0: Disabled

Bit 16 DA : Data address tracing (read-only)

0: Disabled

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

Bit 12 RS : Return stack enable

0: Disabled

1: Enabled

Bit 11 TS : Global timestamp tracing

0: Disabled

1: Enabled

Bits 10:8 COND[2:0] : Conditional instruction tracing

0x0: Conditional instruction tracing disabled

0x1: Conditional load instructions are traced

0x2: Conditional store instructions are traced

0x3: Conditional load and store instructions are traced

0x7: All conditional instructions are traced

Other: Reserved

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

Bit 4 CCI : Cycle counting in instruction trace

0: Disabled

1: Enabled

Bit 3 BB : Branch broadcast mode

0: Disabled

1: Enabled

Bits 2:1 INSTP0[1:0] : Determines which instructions are P0 instructions (read-only)

0x0: Only branches are P0 instructions

Bit 0 Reserved, must be kept at reset value.

ETM event control 0 register (M7_ETM_EVENTCTL0)

Only accepts writes when trace unit is disabled

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
TYPE1Res.Res.Res.SEL1[3:0]TYPE0Res.Res.Res.SEL0[3:0]
rwrwrwrwrwrwrwrwrwrw

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

Bit 15 TYPE1 : Resource type for event 1

0: Single selected resource

1: Boolean combined resource pair

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

Bits 11:8 SEL1[3:0] : Resource / Boolean combined resource pair, for event 1

When TYPE1 is 0, selects a single selected resource from 0-15 defined by bits[3:0]

When TYPE1 is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0]

Bit 7 TYPE0 : Resource type for event 0

0: Single selected resource

1: Boolean combined resource pair

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

Bits 3:0 SEL0[3:0] : Resource / Boolean combined resource pair for event 0

When TYPE0 is 0, selects a single selected resource from 0-15 defined by bits[3:0]

When TYPE0 is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0]

ETM event control 1 register (M7_ETM_EVENTCTL1)

Only accepts writes when trace unit is disabled

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
Res.Res.Res.LPOVE
RRIDE
ATBRes.Res.Res.Res.Res.Res.Res.INSTEN[3:0]
rwrwrwrwrwrw

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:4 Reserved, must be kept at reset value.

Bits 3:0 INSTEN[3:0] : Instruction trace event element enable

Each bit corresponds to an event:

0bXXX0: Event 0 does not cause an event element

0bXXX1: Event 0 causes an event element

0bXX0X: Event 1 does not cause an event element

0bXX1X: Event 1 causes an event element

0bX0XX: Event 2 does not cause an event element

0bX1XX: Event 2 causes an event element

0b0XXX: Event 3 does not cause an event element

0b1XXX: Event 3 causes an event element

ETM stall control register (M7_ETM_STALLCTL)

Only accepts writes when trace unit is disabled

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

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

Bit 9 DSTALL : Stall processor based on data trace buffer space

0: Do not stall processor

1: Stall processor

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 (M7_ETM_TSCTL)

Only accepts writes when trace unit is disabled

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.Res.Res.Res.Res.TYPERes.Res.Res.SEL[3:0]
rwrwrwrwrw

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

Bit 7 TYPE : Resource type for time stamp insertion

0: Single selected resource

1: Boolean combined resource pair

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

Bits 3:0 SEL[3:0] : Resource / Boolean combined resource pair

When TYPE is 0, selects a single selected resource from 0-15 defined by bits[3:0]

When TYPE is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0]

ETM synchronization period register (M7_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.PERIOD[4:0]
rrrrr

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

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

Defines the number of bytes of trace information between trace synchronization requests.

0xA: 1024 bytes

ETM cycle count control register (M7_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]
rwrwrwrwrwrwrwrwrwrwrw

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

Other: Threshold

ETM trace ID register (M7_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

0x00: Reserved

0x01 to 0x6F: Valid ID

0x70 to 0x7F: Reserved

ETM ViewInst main control register (M7_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.TRCE
RR
TRCR
ESET
SSSTA
TUS
Res.TYPERes.Res.Res.SEL[3:0]
rwrwrwrwrwrwrwrw

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

Bit 19 EXLEVEL_S3 : Trace disable, exception level 3

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

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

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

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.

Bit 7 TYPE : Resource type

0: Single selected resource

1: Boolean combined resource pair

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

Bits 3:0 SEL[3:0] : Resource / Boolean combined resource pair

When TYPE is 0, selects a single selected resource from 0-15 defined by bits[3:0]

When TYPE is 1, selects a Boolean combined resource pair from 0-7 defined by bits[2:0]

ETM ViewInst start/stop control register (M7_ETM_VISSCTL)

Address offset: 0x088

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.STOP[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] : Selector of single address comparators to stop trace

Defines the single address comparators to stop trace with the ViewInst Start/Stop control.

One bit is provided for each implemented single address comparator.

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

Bits 7:0 START[7:0] : Selector of single address comparators to start trace

Defines the single address comparators to start trace with the ViewInst Start/Stop control.

One bit is provided for each implemented single address comparator.

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

Address offset: 0x08C

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.STOP[3:0]
rwrwrwrw

1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.START[3:0]
rwrwrwrw

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

Bits 19:16 STOP[3:0] : Selector of processor comparator input to stop trace

Selects which processor comparator inputs are in use with ViewInst start-stop control, for the purpose of stopping trace. One bit is provided for each processor comparator input.

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

Bits 3:0 START[3:0] : Selector of processor comparator input to start trace

Selects which processor comparator inputs are in use with ViewInst start-stop control, for the purpose of starting trace. One bit is provided for each processor comparator input.

ETM counter reload value register (M7_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 (M7_ETM_IDR8)

Address offset: 0x180

Reset value: 0x0000 0002

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

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

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

0x2: Maximum trace speculation depth is 2

ETM ID register 9 (M7_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 (M7_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
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 (M7_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 (M7_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]:

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 (M7_ETM_IDR13)

Address offset: 0x194

Reset value: 0x0000 0001

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 implementation specific register 0 (M7_ETM_IMSPEC0)

Address offset: 0x1C0

Reset value: 0x0000 0000

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

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

Bits 3:0 SUPPORT[3:0] : Support for implementation specific extensions
0x0: No implementation specific extensions are supported

ETM ID register 0 (M7_ETM_IDR0)

Address offset: 0x1E0

Reset value: 0x0C00 1EE1

31302928272625242322212019181716
Res.Res.COMMOPTTSSIZE[4:0]Res.Res.Res.Res.Res.Res.Res.QSUPP[1]
rrrrrrr
1514131211109876543210
QSUPP[0]Res.CONDTYPE[1:0]NUMEVENT[1:0]RETSTACKRes.TRCCCITRCCONDTRCBBRes.Res.Res.Res.Res.
rrrrrrrrr

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

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

Bits 28:24 TSSIZE[4:0] : Global timestamp size
0x08: Maximum of 64-bit global timestamp implemented

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

Bits 16:15 QSUPP[1:0] : Q element support
0x0: Q elements not supported

Bit 14 Reserved, must be kept at reset value.

Bits 13:12 CONDTYPE[1:0] : Conditional result tracing type
0x1: APSR condition flag values traced

Bits 11:10 NUMEVENT[1:0] : Number of events supported in the trace
0x1: Two events supported for instruction only configuration

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:0 Reserved, must be kept at reset value.

ETM ID register 1 (M7_ETM_IDR1)

Address offset: 0x1E4

Reset value: 0x4100 F401

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
0x0: Minor version 0

Bits 3:0 REVISION[3:0] : Implementation revision number
0x1: Rev 1

ETM ID register 2 (M7_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
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 (M7_ETM_IDR3)

Address offset: 0x1EC

Reset value: 0x0509 0004

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

Bit 31 NOOVERFLOW : Support of NOOVERFLOW

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

0x0: Only one processor can be traced

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

0: Not supported

Bit 26 STALLCTL : Stall control support

1: Trace stall control (TRCSTALLCTLR) is implemented

Bit 25 SYNCP R : Trace synchronization period support

0: TRCSYNCP R is read-only for instruction trace only configuration; the trace synchronization period is fixed

Bit 24 TRCERR : Support of TRCVICTLR.TRCERR

Indicates whether TRCVICTLR.TRCERR is implemented.

0x4: 32-bit maximum address size

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

0x4: Minimum threshold is 4 instruction trace cycle

ETM ID register 4 (M7_ETM_IDR4)

Address offset: 0x1F0

Reset value: 0x0001 4000

31302928272625242322212019181716
NUMVMIDC[3:0]NUMCIDC[3:0]NUMSSCC[3:0]NUMRSPAIR[3:0]
rrrrrrrrrrrrrrrr
1514131211109876543210
NUMPC[3:0]Res.Res.Res.SUPPA
DC
NUMDVC[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

0x0: None

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

0x1: None

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

0x4: Four

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

Bit 8 SUPPADC : 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 (M7_ETM_IDR5)

Address offset: 0x1F4

Reset value: 0x90C7 0402

31302928272625242322212019181716
REDF
UNCN
TR
NUMCNTR[2:0]NUMSEQSTATE[2:0]Res.LPOVE
RRIDE
ATBTRI
G
TRACEIDSIZE[5:0]
rrrrrrrrrrrrrrr
1514131211109876543210
Res.Res.Res.Res.NUMEXTINSEL[2:0]NUMEXTIN[8:0]
rrrrrrrrrrrr
  1. Bit 31 REDFUNCNTR : Support of reduced function counter
    1: Implemented
  2. Bits 30:28 NUMCNTR[2:0] : Number of counters implemented
    0x1: One counter implemented
  3. Bits 27:25 NUMSEQSTATE[2:0] : Number of sequencer states implemented
    0x0: None
  4. Bit 24 Reserved, must be kept at reset value.
  5. Bit 23 LPOVERRIDE : Support of low-power state override
    1: Implemented
  6. Bit 22 ATBTRIG : Support of ATB trigger
    1: Implemented
  7. Bits 21:16 TRACEIDSIZE[5:0] : Number of trace ID bits
    0x07: Seven-bit trace ID implemented.
  8. Bits 15:12 Reserved, must be kept at reset value.
  9. Bits 11:9 NUMEXTINSEL[2:0] : Number of implemented external input selectors
    0x2: Two external input selectors implemented
  10. Bits 8:0 NUMEXTIN[8:0] : Number of implemented external inputs
    0x2: Two external inputs implemented

ETM resource selection register 2 (M7_ETM_RSCTL2)

Address offset: 0x208

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.PAIRINVINVRes.GROUP[2:0]
rwrwrwrwrw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.SELECT[7:0]
rwrwrwrwrwrwrwrw
  1. Bits 31:22 Reserved, must be kept at reset value.
  2. Bit 21 PAIRINV : Inversion of result of a combined pair of resources
    0: Not inverted
    1: Inverted
  3. Bit 20 INV : Inversion of the selected resources
    0: Not inverted
    1: Inverted
  4. Bit 19 Reserved, must be kept at reset value.

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

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

Bits 7:0 SELECT[7:0] : Selector of resources from desired group

Selects one or more resources from the desired group. One bit is provided per resource from the group.

ETM resource selection register 3 (M7_ETM_RSCTL3)

Address offset: 0x20C

Reset value: 0x0000 0000

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

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

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

Bit 20 INV : Inversion of the selected resources

0: Not inverted

1: Inverted

Bit 19 Reserved, must be kept at reset value.

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

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

Bits 7:0 SELECT[7:0] : Selector of resources from desired group

Selects one or more resources from the desired group. One bit is provided per resource from the group.

ETM single-shot comparator control register 0 (M7_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.
rw

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

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

Bit 24 RST : Single-shot comparator resource reset enable

Enables the single-shot comparator resource to be reset when it occurs, then 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 (M7_ETM_SSCS0)

Address offset: 0x2A0

Reset value: 0x0000 0001

31302928272625242322212019181716
STATUSRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
rw
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.DVDAINST
rrr

Bit 31 STATUS : Single-shot status

This indicates whether any of the selected comparators have matched. If SSCS0.RST is set to 0, the STATUS bit must be written with 0 in order to enable single-shot comparator control.

0: No match occurred

1: Match has occurred at least once.

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

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

1: Single-shot instruction address comparisons supported

ETM single-shot processor comparator input control register (M7_ETM_SSPCIC0)

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

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 (M7_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

Request to maintain power to the ETM and 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 (M7_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.STICKY
PD
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 the ETM registers is removed, to indicate that programming state has been lost. It is cleared after a read of the TRCPDSR.

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

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

Bit 0 POWER : ETM powered up

1: ETM is powered up; all registers are accessible

ETM claim tag set register (M7_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: Indicates there are four bits in claim tag

ETM claim tag clear register (M7_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 lock access register (M7_ETM_LAR)

Address offset: 0xFB0

Reset value: N/A

31302928272625242322212019181716
ACCESS_W[31:16]
wwwwwwwwwwwwwwww
1514131211109876543210
ACCESS_W[15:0]
wwwwwwwwwwwwwwww

Bits 31:0 ACCESS_W[31:0] : ETM register write access

Enables write access to some ETM registers by processor cores (debuggers do not need to unlock the component)

0xC5ACCE55: Enable write access

Other values: Disable write access

ETM lock status register (M7_ETM_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 M7_ETM_LAR register

0: 32-bit

Bit 1 LOCKGRANT : Current status of lock

This bit always returns zero 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 zero when read by an external debugger.

0: No lock control mechanism exists

1: Lock control mechanism is implemented

ETM authentication status register (M7_ETM_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 non-secure non-invasive debug

0x2: Disabled

0x3: Enabled

Bits 1:0 NSID[1:0] : Security level for non-secure invasive debug

0x2: Disabled

0x3: Enabled

ETM CoreSight device architecture register (M7_ETM_DEVARCH)

Address offset: 0xFBC

Reset value: 0x4770 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

0x0: Rev 0

Bits 15:0 ARCHID[15:0] : Architecture ID

0x4A13: ETMv4 component

ETM CoreSight device type identity register (M7_ETM_DEVTYPE)

Address offset: 0xFCC

Reset value: 0x0000 0013

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

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

Bits 7:4 SUBTYPE[3:0] : Device sub-type identifier
0x1: Processor trace

Bits 3:0 MAJORTYPE[3:0] : Device main type identifier
0x3: Trace source

ETM CoreSight peripheral identity register 4 (M7_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.4KCOUNT[3:0]JEP106CON[3:0]
rrrrrrrr

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

Bits 7:4 4KCOUNT[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 (M7_ETM_PIDR0)

Address offset: 0xFE0

Reset value: 0x0000 0075

31302928272625242322212019181716
Res.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]
0x75: ETM part number

ETM CoreSight peripheral identity register 1 (M7_ETM_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: ETM part number

ETM CoreSight peripheral identity register 2 (M7_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: 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

ETM CoreSight peripheral identity register 3 (M7_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 (M7_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 (M7_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 (M7_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 (M7_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

Cortex-M7 ETM register map and reset values

The ETM registers are accessed by the debugger via the Cortex-M7 PPB, at address range 0xE0041000 to 0xE0041FFC.

Table 627. Cortex-M7 ETM register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x004M7_ETM_PRGCTLRes.Res.Res.Res.Res.Res.Res.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
0x008M7_ETM_PROCSELRes.PROCSEL[2:0]
Reset value000
0x00CM7_ETM_STATRes.PMSTABLE[1:0]IDLE
Reset value000
0x010M7_ETM_CONFIGRes.DVDARes.RSTSCOND[2:0]VMIDCIDRes.CCIBBINSTP[1:0]Res.
Reset value00000000000001
0x014 to 0x01CReservedReserved
0x020M7_ETM_EVENTCTL0Res.TYPE1Res.SEL1[3:0]TYPE0Res.SEL0[3:0]
Reset value0000000000
0x024M7_ETM_EVENTCTL1Res.LPOVERRIDEATBRes.INSTEN[3:0]
Reset value0000000
0x02CM7_ETM_STALLCTLRes.DSTALLISATLRes.LEVEL[1:0]Res.
Reset value0000
0x030M7_ETM_TSCTLRes.TYPERes.SEL[3:0]
Reset value00000
0x034M7_ETM_SYNCPRes.PERIOD[4:0]
Reset value01010
0x038M7_ETM_CCCTLRes.THRESHOLD[11:0]
Reset value000000000000
0x03CReservedReserved
0x040M7_ETM_TRACEIDRes.TRACEID[6:0]
Reset value0000000

Table 627. Cortex-M7 ETM register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x044 to 0x07CReservedReserved
0x080M7_ETM_VICTLRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.EXLEVEL_S3Res.Res.EXLEVEL_S0Res.Res.Res.Res.TRCERRTRCRESETSSSTATUSRes.TYPERes.Res.Res.SEL[3:0]
Reset value0000000000
0x084ReservedReserved
0x088M7_ETM_VISSCTLRes.Res.Res.Res.Res.Res.Res.Res.STOP[7:0]Res.Res.Res.Res.Res.Res.Res.Res.START[7:0]
Reset value0000000000000000
0x08CM7_ETM_VIPCSCTLRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.STOP[3:0]Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.START[3:0]
Reset value00000000
0x090 to 0x13CReservedReserved
0x140M7_ETM_CNTRLDVRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.VALUE[15:0]
Reset value0000000000000000
0x144 to 0x17CReservedReserved
0x180M7_ETM_IDR8MAXSPEC[31:0]
Reset value00000000000000000000000000000010
0x184M7_ETM_IDR9NUMP0KEY[31:0]
Reset value00000000000000000000000000000000
0x188M7_ETM_IDR10NUMP1KEY[31:0]
Reset value00000000000000000000000000000000
0x18CM7_ETM_IDR11NUMP1SPC[31:0]
Reset value00000000000000000000000000000000
0x190M7_ETM_IDR12NUMCONDKEY[31:0]
Reset value00000000000000000000000000000001
0x194M7_ETM_IDR13NUMCONDSPC[31:0]
Reset value00000000000000000000000000000000
0x198 to 0x1BCReservedReserved
0x1C0M7_ETM_IMSPEC0Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.SUPPORT[3:0]
Reset value0000
0x1E0M7_ETM_IDR0Res.Res.COMMOPTTSSIZE[4:0]Res.Res.Res.Res.Res.Res.Res.QSUPP[1:0]Res.CONDTYPE[1:0]NUMEVENT[1:0]RETSTACKRes.TRCCCITRCCONDTRCBBRes.Res.Res.Res.Res.
Reset value00110000011111111

Table 627. Cortex-M7 ETM register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x1E4M7_ETM_IDR1DESIGNER[7:0]ResResResResResResResResResResResResTRCARCHMAJ[3:0]TRCARCHMIN[3:0]REVISION[3:0]
Reset value01000001010000000001
0x1E8M7_ETM_IDR2ResResResCCSIZE[3:0]DVSIZE[4:0]DASIZE[4:0]VMIDSIZE[4:0]CIDSIZE[4:0]IASIZE[4:0]
Reset value00000000000000000000000000010
0x1ECM7_ETM_IDR3NOOVERFLOWNUMPROC[2:0]SYSSTALLSTALLCTLSYNCPRTRCERRResResResResEXLEVEL_SI[3:0]ResResResResCCITMIN[11:0]
Reset value00001011001000000000010
0x1F0M7_ETM_IDR4NUMVMIDC[3:0]NUMCIDC[3:0]NUMSSCC[3:0]NUMRSPAIR[3:0]NUMPC[3:0]ResResResSUPPDACNUMDV[3:0]NUMACPAIRS[3:0]
Reset value0000000000000101000000000000000
0x1F4M7_ETM_IDR5REDFUNCNTRNUMCNTR[2:0]NUMSEQSTATE[2:0]ResLPOVERRIDEATBTRIGTRACEIDSIZE[5:0]ResResResResNUMEXTINSEL[2:0]NUMEXTIN[8:0]
Reset value101000110001110100000000010
0x1F8 to 0x204ReservedReserved
0x208M7_ETM_RSCTL2ResResResResResResResResResPAIRINVINVResGROUP[2:0]ResResResResResResResResResSELECT[7:0]
Reset value0000000000000
0x20CM7_ETM_RSCTL3ResResResResResResResResResINVResGROUP[2:0]ResResResResResResResResResResSELECT[7:0]
Reset value000000000000
0x210 to 0x27CReservedReserved
0x280M7_ETM_SSCC0ResResResResResResResRSTResResResResResResResResResResResResResResResResResResResResResResResRes
Reset value0
0x284 to 0x29CReservedReserved
0x2A0M7_ETM_SSCS0STATUSResResResResResResResResResResResResResResResResResResResResResResResResResResResDVDAINST
Reset value0001

Table 627. Cortex-M7 ETM register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x2A4 to 0x2BCReservedReserved
0x2C0M7_ETM_SSPIC0Res.PC[7:0]
Reset value00000000
0x2C4 to 0x30CReservedReserved
0x310M7_ETM_PDCRes.PURes.
Reset value0
0x314M7_ETM_PDSRes.STICKYPDPOWER
Reset value11
0x318 to 0xF9CReservedReserved
0xFA0M7_ETM_CLAIMSETRes.CLAIMSET[3:0]
Reset value1111
0xFA4M7_ETM_CLAIMCLRRes.CLAIMCLR[3:0]
Reset value0000
0xFA8 to 0xFACReservedReserved
0xFB0M7_ETM_LARACCESS_W[31:0]
Reset value--------------------------------
0xFB4M7_ETM_LSRRes.LOCKTYPELOCKGRANTLOCKEXIST
Reset value011
0xFB8M7_ETM_AUTHSTATRes.SNID[1:0]SID[1:0]NSNID[1:0]Res.NSID[1:0]
Reset value00001010
0xFBCM7_ETM_DEVARCHARCHITECT[10:0]PRESENTREVISION[3:0]ARCHID[15:0]
Reset value01000111011100000010101000010011
0xFC0 to 0xFC8ReservedReserved
0xFCCM7_ETM_DEVTYPERes.SUBTYPE[3:0]MAJORTYPE[3:0]
Reset value00000000000000000000000000000111

Table 627. Cortex-M7 ETM register map and reset values (continued)

OffsetRegister name313029282726252423222120191817161514131211109876543210
0xFD0M7_ETM_PIDR4ResResResResResResResResResResResResResResResResResResResResResResResResRes4KCOUNT[3:0]JEP106CON[3:0]
Reset value0000010
0xFD4 to 0xFDCReservedReserved
0xFE0M7_ETM_PIDR0ResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResPARTNUM[7:0]
Reset value0 1 1 1 0 1 0 1
0xFE4M7_ETM_PIDR1ResResResResResResResResResResResResResResResResResResResResResResResResResResJEP106ID[3:0]PARTNUM[11:8]
Reset value1 0 1 1 1 1 0 01 1 0 0 1 1
0xFE8M7_ETM_PIDR2ResResResResResResResResResResResResResResResResResResResResResResResResResResREVISION[3:0]JEDECJEP106ID[6:4]
Reset value0 0 0 1 1 1 0 1
0xFECM7_ETM_PIDR3ResResResResResResResResResResResResResResResResResResResResResResResResResResREVAND[3:0]CMOD[3:0]
Reset value0 0 0 0 0 0 0 0
0xFF0M7_ETM_CIDR0ResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResPREAMBLE[7:0]
Reset value0 0 0 0 1 1 0 1
0xFF4M7_ETM_CIDR1ResResResResResResResResResResResResResResResResResResResResResResResResResResResResCLASS[3:0]PREAMBLE[11:8]
Reset value1 0 0 1 1 0 0 00 0 0 0
0xFF8M7_ETM_CIDR2ResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResPREAMBLE[19:12]
Reset value0 0 0 0 0 0 1 0
0xFFCM7_ETM_CIDR3ResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResResPREAMBLE[27:20]
Reset value1 0 1 1 1 0 0 0

60.6.6 Cortex-M7 cross trigger interface (CTI)

See Section 60.5.3 .

60.7 References for debug infrastructure

  1. 1. IHI 0031C (ID080813) - Arm® Debug Interface Architecture Specification ADIv5.0 to ADIv5.2, Issue C
  2. 2. DDI 0480F (ID100313) - Arm® CoreSight™ SoC-400 r3p2 Technical Reference Manual, Issue G
  3. 3. DDI 0461B (ID010111) - Arm® CoreSight™ Trace Memory Controller r0p1 Technical Reference Manual, Issue B
  4. 4. DDI 0314H - Arm® CoreSight™ Components Technical Reference Manual, Issue H
  5. 5. DDI 0403D (ID100710) - Arm®v7-M Architecture Reference Manual, Issue E.b
  6. 6. DDI 0494-2a (ID062813) - Arm® CoreSight™ ETM™-M7 r0p1 Technical Reference Manual, Issue D