Defines the top address for the trace buffer, and controls the trace buffer modes and enable.
External register TRBLIMITR_EL1 bits [63:0] are architecturally mapped to AArch64 System register TRBLIMITR_EL1[63:0].
TRBLIMITR_EL1 is in the Core power domain.
This register is present only when FEAT_TRBE_EXT is implemented. Otherwise, direct accesses to TRBLIMITR_EL1 are RES0.
TRBLIMITR_EL1 is a 64-bit register.
63 | 62 | 61 | 60 | 59 | 58 | 57 | 56 | 55 | 54 | 53 | 52 | 51 | 50 | 49 | 48 | 47 | 46 | 45 | 44 | 43 | 42 | 41 | 40 | 39 | 38 | 37 | 36 | 35 | 34 | 33 | 32 |
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
LIMIT | |||||||||||||||||||||||||||||||
LIMIT | RES0 | XE | nVM | TM | FM | E |
Trace buffer Limit pointer address. (TRBLIMITR_EL1.LIMIT << 12) is the address of the last byte in the trace buffer plus one. Bits [11:0] of the Limit pointer address are always zero. If the smallest implemented translation granule is not 4KB, then TRBLIMITR_EL1[N-1:12] are RES0, where N is the IMPLEMENTATION DEFINED value Log2(smallest implemented translation granule).
The reset behavior of this field is:
Reserved, RES0.
Trace Buffer Unit External mode enable. Controls whether the Trace Buffer Unit is enabled when SelfHostedTraceEnabled() == FALSE.
XE | Meaning |
---|---|
0b0 |
Trace Buffer Unit is not enabled by this control. |
0b1 |
If SelfHostedTraceEnabled() is FALSE, the Trace Buffer Unit is enabled. |
If SelfHostedTraceEnabled() == TRUE, then TRBLIMITR_EL1.E controls whether the Trace Buffer Unit is enabled.
All output is discarded by the Trace Buffer Unit when the Trace Buffer Unit is disabled.
The reset behavior of this field is:
Address mode.
nVM | Meaning |
---|---|
0b0 |
The trace buffer pointers are virtual addresses. |
0b1 | The trace buffer pointers are:
|
When SelfHostedTraceEnabled() == FALSE, the trace buffer pointers are always physical addresses.
The reset behavior of this field is:
Accessing this field has the following behavior:
Trigger mode.
TM | Meaning |
---|---|
0b00 |
Stop on trigger. Flush trace, then stop collection and set TRBSR_EL1.IRQ to 1 on Trigger Event. |
0b01 |
IRQ on trigger. Continue collection and set TRBSR_EL1.IRQ to 1 on Trigger Event. |
0b11 |
Ignore trigger. Continue collection and leave TRBSR_EL1.IRQ unchanged on Trigger Event. |
All other values are reserved.
The reset behavior of this field is:
Trace buffer mode.
FM | Meaning |
---|---|
0b00 |
Fill mode. Stop collection and set TRBSR_EL1.IRQ to 1 on current write pointer wrap. |
0b01 |
Wrap mode. Continue collection and set TRBSR_EL1.IRQ to 1 on current write pointer wrap. |
0b11 |
Circular Buffer mode. Continue collection and leave TRBSR_EL1.IRQ unchanged on current write pointer wrap. |
All other values are reserved.
The reset behavior of this field is:
Trace Buffer Unit enable. Controls whether the Trace Buffer Unit is enabled when SelfHostedTraceEnabled() == TRUE.
E | Meaning |
---|---|
0b0 |
Trace Buffer Unit is not enabled by this control. |
0b1 |
If SelfHostedTraceEnabled() is TRUE, the Trace Buffer Unit is enabled. |
If FEAT_TRBE_EXT is implemented and SelfHostedTraceEnabled() == FALSE, then TRBLIMITR_EL1.XE controls whether the Trace Buffer Unit is enabled.
If FEAT_TRBE_EXT is not implemented, then the Trace Buffer Unit is disabled when SelfHostedTraceEnabled() == FALSE.
All output is discarded by the Trace Buffer Unit when the Trace Buffer Unit is disabled.
The reset behavior of this field is:
The PE might ignore a write to TRBLIMITR_EL1, other than a write that modifies TRBLIMITR_EL1.E or TRBLIMITR_EL1.XE as appropriate, if any of the following apply:
Component | Offset | Instance |
---|---|---|
TRBE | 0x010 | TRBLIMITR_EL1 |
This interface is accessible as follows: