3.5.22. Address Comparator Access Type Registers, ETMACTRn

The ETMACTR characteristics are:

Purpose

Specifies the type of access, for example instruction or data, and other comparator configuration information, for an address comparison.

Usage constraints

Each ETMACTR is used with the corresponding ETMACVR. See Address Comparator Value Registers, ETMACVRn.

Configurations

The number of ETMACTR pairs is implementation defined, can be zero, and is specified by ETMCCR bits [3:0]. See Configuration Code Register, ETMCCR.

Unimplemented ETMACTRs are RAZ/WI.

Attributes

See the register summary in Table 3.3, and Reset behavior.

Figure 3.22 shows the ETMACTR bit assignments for ETMv3.5.

Figure 3.22. ETMACTR bit assignments in ETMv3.5

To view this graphic, your browser must support the SVG format. Either install a browser with native support, or install an appropriate plugin such as Adobe SVG Viewer.


Figure 3.23 shows the ETMACTR bit assignments for ETMv3.4. See Table 3.29 for differences in earlier ETM versions.

Figure 3.23. ETMACTR bit assignments for ETMv3.4

To view this graphic, your browser must support the SVG format. Either install a browser with native support, or install an appropriate plugin such as Adobe SVG Viewer.


Table 3.29 shows the ETMACTR bit assignments.

Table 3.29. ETMACTR bit assignments

Bits

Version [a]

Description

[31:16]-Reserved
[15]v3.5

Virtual Machine ID (VMID) comparison enable, if the processor implements the Virtualization Extensions.[b]

A value of 1 means that the address comparator matches only if the current VMID matches the value stored in the ETMVMIDCVR. See VMID Comparator Value Register, ETMVMIDCVR, ETMv3.5.

This bit is reserved, RAZ if the processor does not implement the Virtualization extensions.

[14]v3.5

Hyp mode comparison enable, if the processor implements the Virtualization Extensions.[b]

A value of 1 means that the address comparator also matches if the processor is operating in Hyp mode. See Virtualization Extensions, ETMv3.5.

This bit is reserved, RAZ if the processor does not implement the Virtualization extensions.

[13:10]v3.5

State and mode comparison control. The assignment of these bits is:

Bit [13, 11]

Non-secure state comparison control.

Bit [12, 10]

Secure state comparison control.

For each pair of bits, the encoding is:

b00

Match in all modes in this state.

b01

Do not match in any modes in this state.

b10

Match in all modes except User mode in this state.

b11

Match only in User mode in this state.

If the processor does not implement the Security Extensions, bits [13, 11] are reserved, RAZ/WI.

See Filtering by state and mode, in ETMv3.5

[15:12]Before v3.5Reserved
[11:10]v3.2

Security level control. The permitted values of this field are:

b00

Security level ignored.

b01

Match only if in Non-secure state.

b10

Match only if in Secure state.

The value of b11 is reserved and must not be used.

This field is available only if the connected processor implements the Security Extensions. If the Security Extensions are not implemented writes to these bits are ignored and, if the ETMACTR is read/write, they Read-As-Zero.

This description is valid only for ETMv3.2 to ETMv3.4. For ETMv3.5, see the description of bits [13:10] in this table.

[9:8]v2.0

Context ID comparator control. The permitted values of this field are:

b00

Ignore Context ID comparator.

b01

Address comparator matches only if Context ID comparator value 1 matches.

b10

Address comparator matches only if Context ID comparator value 2 matches.

b11

Address comparator matches only if Context ID comparator value 3 matches.

[7]

v2.0

Exact match bit. Specifies comparator behavior when exceptions, aborts, and load misses occur. See Exact matching, in ETMv2.0 and later.

[6:5]

v1.0

Data value comparison control. The permitted values of this field are:

b00

No data value comparison is made.

b01

Comparator can match only if data value matches.

b11

Comparator can match only if data value does not match.

The value of b10 is reserved and must not be used.

Note

The b11 encoding was introduced in ETM architecture version 1.2. Previously this value was reserved.

For details of the effect of this field on data value comparison, see Exact matching for data address comparisons.

[4:3]

v1.0

Comparison access size. The permitted values of this field are:

b00

Java instruction (from ETM architecture version 1.3 only) or byte data.

b01

Thumb instruction or halfword data.

b11

ARM instruction or word data.

The value of b10 is reserved and must not be used.

For more information, see Comparator access size.

[2:0]

v1.0

Access type. The permitted values of this field are:

b000 [c]

Instruction fetch.

b001

Instruction execute.

b010

Instruction executed and passed condition code test.

b011

Instruction executed and failed condition code test.

b100

Data load or store.

b101

Data load.

b110

Data store.

The value of b111 is reserved and must not be used.

Note

  • The b010 and b011 encodings were introduced in ETM architecture version 1.2. Previously these values were reserved.

  • From ETMv3.3, if data address comparisons are not supported, writing b100, b101 or b110 to this field causes unpredictable behavior. See No data address comparator option, ETMv3.3 and later for more information.

[a] The first ETM architecture version that defines the field.

[b] If bit [26] of the ETMCCER is zero, it indicates that Virtualization support is not implemented. See Virtualization Extensions, ETMv3.5 for more information.

[c] Unsupported if bit [17] of the ETMSCR, register 0x005 is set. See System Configuration Register, ETMSCR, ETMv1.2 and later.


Each ETMACTR has the same bit assignments.

Note

Some ETM documentation describes the Address Comparator Access Type Registers, ETMACTRs, as Address Access Type Registers.

Filtering by state and mode, in ETMv3.5

In ETMv3.5 an ETM can base address matching on:

  • any mode or state

  • any mode in Secure state

  • any mode in Non-secure state

ETMACTR[13:10], the State and mode control field, defines the conditions for an address match, as:

  • Table 3.30 shows for an implementation that includes the Security Extensions

  • Table 3.31 shows for an implementation that does not include the Security Extensions.

In addition, when the Virtualization Extensions are implemented, ETMACTR[15:14] control matching in Hyp mode and on VMID, see Table 3.29. For these bits:

  • When bit [15] VMID comparison enable is set, no match is recognized unless the current VMID matches the value stored in the ETMVMIDCVR.

  • When bit [14] Hyp mode comparison enable is set, Hyp mode is considered as an additional criterion with the modes in Table 3.30. That is, operation in Hyp mode always produces a match.

Table 3.30. Address comparator filtering by state and mode, ETMv3.5 with Security Extensions

Bits [13:10]Secure stateNon-secure State
Kernel modeUser modeKernel modeUser mode
b0000YesYesYesYes
b0001--YesYes
b0010YesYes--
b0011----
b0100Yes-YesYes
b0101-YesYesYes
b0110Yes---
b0111-Yes--
b1000YesYesYes-
b1001--Yes-
b1010YesYes-Yes
b1011---Yes
b1100Yes-Yes-
b1101-YesYes-
b1110Yes--Yes
b1111-Yes-Yes

Table 3.31. Address comparator filtering by state and mode, ETMv3.5, no Security Extensions

Bits [13:10] [a]Privileged modesUser modeMatches in
b0000YesYesAll modes
b0001--Never matches
b0100Yes-Privileged modes only
b0101-YesUser mode only

[a] Bits [13,11] are RAZ/WI if the processor does not implement the Security Extensions.


Access types for address range comparators

If you are using two address comparators as an address range comparator, the access type must be identical for each, otherwise the behavior of the comparator is unpredictable. The only exceptions to this are:

Note

This information is also given in Address comparators.

Selecting a range to include address 0xFFFFFFFF

Ranges are defined to be exclusive of the upper address, so if you specify an upper address of 0xFFFFFFFF, only addresses up to and including 0xFFFFFFFE match. To specify a data address to include 0xFFFFFFFF, configure the upper address comparator as follows:

  • Set the comparator value in the ETMACVR to 0xFFFFFFFF

  • set the size mask, bits [4:3] of the ETMACTR, to b11.

This is the only case where the size mask can be different between the two address comparators of an address range comparator.

For more information, see Address range comparators.

Copyright © 1999-2002, 2004-2009, 2011 ARM Limited. All rights reserved.ARM IHI 0014Q
Non-ConfidentialID101211