| |||
| Home > Program Trace Macrocell Programmers Model > PTM register descriptions > Address Comparator Access Type Registers, ETMACTRn | |||
The ETMACTR characteristics are:
Specifies the type of access, for example instruction or data, and other comparator configuration information for an address comparison.
Each ETMACTR is used with the corresponding ETMACVR. See Address Comparator Value Registers, ETMACVRn.
The number of ETMACTR pairs:
is implementation defined
is specified by ETMCCR bits [3:0].
can be zero.
See Configuration Code Register, ETMCCR.
Unimplemented ETMACTRs are RAZ/WI.
See the register summary in Table 3.16.
Figure 3.22 shows the ETMACTR bit assignments from PFTv1.1.
Figure 3.23 shows the ETMACTR bit assignments for PFTv1.0.
Table 3.27 shows the ETMACTR bit assignments.
Table 3.27. ETMACTR bit assignments
Bits | Description |
|---|---|
| [31:16] | Reserved, SBZP. |
| [15] | For PFTv1.0 this bit is Reserved, SBZP. |
From PFTv1.1 this bit sets the Virtual Machine ID (VMID) comparison enable, if the processor implements the Virtualization Extensions.[a] 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. This bit is reserved, RAZ if the processor does not implement the Virtualization extensions. | |
| [14] | For PFTv1.0 this bit is Reserved, SBZP. |
From PFTv1.1 this bit sets the Hyp mode comparison enable, if the processor implements the Virtualization Extensions.[a] A value of 1 means that the address comparator also matches if the processor is operating in Hyp mode. See Virtualization. This bit is reserved, RAZ if the processor does not implement the Virtualization extensions. | |
| [13:10] | For PFTv1.0:
|
From PFTv1.1 these bits set state and mode comparison control. The assignment of these bits is:
For each pair of bits, the encoding is:
If the processor does not implement the Security Extensions, bits [13, 11] are reserved, RAZ/WI. | |
| [11:10] | Security level control. The permitted values of this field are:
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 then these bits are RAZ/WI. This description is valid only for PFTv1.0. For PFTv1.1 and later, see the description of bits [13:10] in this table. |
| [9:8] | Context ID comparator control. The permitted values of this field are:
|
[7:3] | Reserved, SBZP. |
[2:0] | Access type. This field is read-only, and ignores writes. It returns the value:
NoteOther ARM trace architectures permit address matching conditional on the type of access and support different values for this field. |
[a] If bit [26] of the ETMCCER is zero, it indicates that Virtualization support is not implemented. See Virtualization for more information. | |
Each of ETMACTR has the same bit assignments.
From PFTv1.1 a PTM 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.28 shows for an implementation that includes the Security Extensions
Table 3.29 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.28. That is, operation in Hyp mode always produces a match.
Table 3.28. Address comparator filtering by state and mode, PFTv1.1 with Security Extensions
| Bits [13:10] | Secure state | Non-secure state | ||
|---|---|---|---|---|
| Kernel modes | User mode | Kernel modes | User mode | |
| b0000 | Yes | Yes | Yes | Yes |
| b0001 | - | - | Yes | Yes |
| b0010 | Yes | Yes | - | - |
| b0011 | - | - | - | - |
| b0100 | Yes | - | Yes | Yes |
| b0101 | - | Yes | Yes | Yes |
| b0110 | Yes | - | - | - |
| b0111 | - | Yes | - | - |
| b1000 | Yes | Yes | Yes | - |
| b1001 | - | - | Yes | - |
| b1010 | Yes | Yes | - | Yes |
| b1011 | - | - | - | Yes |
| b1100 | Yes | - | Yes | - |
| b1101 | - | Yes | Yes | - |
| b1110 | Yes | - | - | Yes |
| b1111 | - | Yes | - | Yes |
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:
Bits [6:5] must be set only for the first comparator in the pair. These bits control data value comparisons.
The special case where the range includes the address 0xFFFFFFFF.
See Selecting a range to include address
0xFFFFFFFF.
This information is also given in Address comparators.
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 comparators.