1f0ae2cfaSMike Leach===============================================
2f0ae2cfaSMike LeachETMv4 sysfs linux driver programming reference.
3f0ae2cfaSMike Leach===============================================
4f0ae2cfaSMike Leach
5f0ae2cfaSMike Leach    :Author:   Mike Leach <mike.leach@linaro.org>
6f0ae2cfaSMike Leach    :Date:     October 11th, 2019
7f0ae2cfaSMike Leach
8f0ae2cfaSMike LeachSupplement to existing ETMv4 driver documentation.
9f0ae2cfaSMike Leach
10f0ae2cfaSMike LeachSysfs files and directories
11f0ae2cfaSMike Leach---------------------------
12f0ae2cfaSMike Leach
13f0ae2cfaSMike LeachRoot: ``/sys/bus/coresight/devices/etm<N>``
14f0ae2cfaSMike Leach
15f0ae2cfaSMike Leach
16f0ae2cfaSMike LeachThe following paragraphs explain the association between sysfs files and the
17f0ae2cfaSMike LeachETMv4 registers that they effect. Note the register names are given without
18f0ae2cfaSMike Leachthe ‘TRC’ prefix.
19f0ae2cfaSMike Leach
20f0ae2cfaSMike Leach----
21f0ae2cfaSMike Leach
22f0ae2cfaSMike Leach:File:            ``mode`` (rw)
23f0ae2cfaSMike Leach:Trace Registers: {CONFIGR + others}
24f0ae2cfaSMike Leach:Notes:
25f0ae2cfaSMike Leach    Bit select trace features. See ‘mode’ section below. Bits
26f0ae2cfaSMike Leach    in this will cause equivalent programming of trace config and
27f0ae2cfaSMike Leach    other registers to enable the features requested.
28f0ae2cfaSMike Leach
29f0ae2cfaSMike Leach:Syntax & eg:
30f0ae2cfaSMike Leach    ``echo bitfield > mode``
31f0ae2cfaSMike Leach
32f0ae2cfaSMike Leach    bitfield up to 32 bits setting trace features.
33f0ae2cfaSMike Leach
34f0ae2cfaSMike Leach:Example:
35f0ae2cfaSMike Leach    ``$> echo 0x012 > mode``
36f0ae2cfaSMike Leach
37f0ae2cfaSMike Leach----
38f0ae2cfaSMike Leach
39f0ae2cfaSMike Leach:File:            ``reset`` (wo)
40f0ae2cfaSMike Leach:Trace Registers: All
41f0ae2cfaSMike Leach:Notes:
42f0ae2cfaSMike Leach    Reset all programming to trace nothing / no logic programmed.
43f0ae2cfaSMike Leach
44f0ae2cfaSMike Leach:Syntax:
45f0ae2cfaSMike Leach    ``echo 1 > reset``
46f0ae2cfaSMike Leach
47f0ae2cfaSMike Leach----
48f0ae2cfaSMike Leach
49f0ae2cfaSMike Leach:File:            ``enable_source`` (wo)
50f0ae2cfaSMike Leach:Trace Registers: PRGCTLR, All hardware regs.
51f0ae2cfaSMike Leach:Notes:
52f0ae2cfaSMike Leach    - > 0 : Programs up the hardware with the current values held in the driver
53f0ae2cfaSMike Leach      and enables trace.
54f0ae2cfaSMike Leach
55f0ae2cfaSMike Leach    - = 0 : disable trace hardware.
56f0ae2cfaSMike Leach
57f0ae2cfaSMike Leach:Syntax:
58f0ae2cfaSMike Leach    ``echo 1 > enable_source``
59f0ae2cfaSMike Leach
60f0ae2cfaSMike Leach----
61f0ae2cfaSMike Leach
62f0ae2cfaSMike Leach:File:            ``cpu`` (ro)
63f0ae2cfaSMike Leach:Trace Registers: None.
64f0ae2cfaSMike Leach:Notes:
65f0ae2cfaSMike Leach    CPU ID that this ETM is attached to.
66f0ae2cfaSMike Leach
67f0ae2cfaSMike Leach:Example:
68f0ae2cfaSMike Leach    ``$> cat cpu``
69f0ae2cfaSMike Leach
70f0ae2cfaSMike Leach    ``$> 0``
71f0ae2cfaSMike Leach
72f0ae2cfaSMike Leach----
73f0ae2cfaSMike Leach
7404d1edb0SGerman Gomez:File:            ``ts_source`` (ro)
7504d1edb0SGerman Gomez:Trace Registers: None.
7604d1edb0SGerman Gomez:Notes:
7704d1edb0SGerman Gomez    When FEAT_TRF is implemented, value of TRFCR_ELx.TS used for trace session. Otherwise -1
7804d1edb0SGerman Gomez    indicates an unknown time source. Check trcidr0.tssize to see if a global timestamp is
7904d1edb0SGerman Gomez    available.
8004d1edb0SGerman Gomez
8104d1edb0SGerman Gomez:Example:
8204d1edb0SGerman Gomez    ``$> cat ts_source``
8304d1edb0SGerman Gomez
8404d1edb0SGerman Gomez    ``$> 1``
8504d1edb0SGerman Gomez
8604d1edb0SGerman Gomez----
8704d1edb0SGerman Gomez
88f0ae2cfaSMike Leach:File:            ``addr_idx`` (rw)
89f0ae2cfaSMike Leach:Trace Registers: None.
90f0ae2cfaSMike Leach:Notes:
91f0ae2cfaSMike Leach    Virtual register to index address comparator and range
92f0ae2cfaSMike Leach    features. Set index for first of the pair in a range.
93f0ae2cfaSMike Leach
94f0ae2cfaSMike Leach:Syntax:
95f0ae2cfaSMike Leach    ``echo idx > addr_idx``
96f0ae2cfaSMike Leach
97f0ae2cfaSMike Leach    Where idx < nr_addr_cmp x 2
98f0ae2cfaSMike Leach
99f0ae2cfaSMike Leach----
100f0ae2cfaSMike Leach
101f0ae2cfaSMike Leach:File:            ``addr_range`` (rw)
102f0ae2cfaSMike Leach:Trace Registers: ACVR[idx, idx+1], VIIECTLR
103f0ae2cfaSMike Leach:Notes:
104f0ae2cfaSMike Leach    Pair of addresses for a range selected by addr_idx. Include
105f0ae2cfaSMike Leach    / exclude according to the optional parameter, or if omitted
106f0ae2cfaSMike Leach    uses the current ‘mode’ setting. Select comparator range in
107f0ae2cfaSMike Leach    control register. Error if index is odd value.
108f0ae2cfaSMike Leach
109f0ae2cfaSMike Leach:Depends: ``mode, addr_idx``
110f0ae2cfaSMike Leach:Syntax:
111f0ae2cfaSMike Leach   ``echo addr1 addr2 [exclude] > addr_range``
112f0ae2cfaSMike Leach
113f0ae2cfaSMike Leach   Where addr1 and addr2 define the range and addr1 < addr2.
114f0ae2cfaSMike Leach
115f0ae2cfaSMike Leach   Optional exclude value:-
116f0ae2cfaSMike Leach
117f0ae2cfaSMike Leach   - 0 for include
118f0ae2cfaSMike Leach   - 1 for exclude.
119f0ae2cfaSMike Leach:Example:
120f0ae2cfaSMike Leach   ``$> echo 0x0000 0x2000 0 > addr_range``
121f0ae2cfaSMike Leach
122f0ae2cfaSMike Leach----
123f0ae2cfaSMike Leach
124f0ae2cfaSMike Leach:File:            ``addr_single`` (rw)
125f0ae2cfaSMike Leach:Trace Registers: ACVR[idx]
126f0ae2cfaSMike Leach:Notes:
127f0ae2cfaSMike Leach    Set a single address comparator according to addr_idx. This
128f0ae2cfaSMike Leach    is used if the address comparator is used as part of event
129f0ae2cfaSMike Leach    generation logic etc.
130f0ae2cfaSMike Leach
131f0ae2cfaSMike Leach:Depends: ``addr_idx``
132f0ae2cfaSMike Leach:Syntax:
133f0ae2cfaSMike Leach   ``echo addr1 > addr_single``
134f0ae2cfaSMike Leach
135f0ae2cfaSMike Leach----
136f0ae2cfaSMike Leach
137f0ae2cfaSMike Leach:File:           ``addr_start`` (rw)
138f0ae2cfaSMike Leach:Trace Registers: ACVR[idx], VISSCTLR
139f0ae2cfaSMike Leach:Notes:
140f0ae2cfaSMike Leach    Set a trace start address comparator according to addr_idx.
141f0ae2cfaSMike Leach    Select comparator in control register.
142f0ae2cfaSMike Leach
143f0ae2cfaSMike Leach:Depends: ``addr_idx``
144f0ae2cfaSMike Leach:Syntax:
145f0ae2cfaSMike Leach    ``echo addr1 > addr_start``
146f0ae2cfaSMike Leach
147f0ae2cfaSMike Leach----
148f0ae2cfaSMike Leach
149f0ae2cfaSMike Leach:File:            ``addr_stop`` (rw)
150f0ae2cfaSMike Leach:Trace Registers: ACVR[idx], VISSCTLR
151f0ae2cfaSMike Leach:Notes:
152f0ae2cfaSMike Leach    Set a trace stop address comparator according to addr_idx.
153f0ae2cfaSMike Leach    Select comparator in control register.
154f0ae2cfaSMike Leach
155f0ae2cfaSMike Leach:Depends: ``addr_idx``
156f0ae2cfaSMike Leach:Syntax:
157f0ae2cfaSMike Leach    ``echo addr1 > addr_stop``
158f0ae2cfaSMike Leach
159f0ae2cfaSMike Leach----
160f0ae2cfaSMike Leach
161f0ae2cfaSMike Leach:File:            ``addr_context`` (rw)
162f0ae2cfaSMike Leach:Trace Registers: ACATR[idx,{6:4}]
163f0ae2cfaSMike Leach:Notes:
164f0ae2cfaSMike Leach    Link context ID comparator to address comparator addr_idx
165f0ae2cfaSMike Leach
166f0ae2cfaSMike Leach:Depends: ``addr_idx``
167f0ae2cfaSMike Leach:Syntax:
168f0ae2cfaSMike Leach    ``echo ctxt_idx > addr_context``
169f0ae2cfaSMike Leach
170f0ae2cfaSMike Leach    Where ctxt_idx is the index of the linked context id / vmid
171f0ae2cfaSMike Leach    comparator.
172f0ae2cfaSMike Leach
173f0ae2cfaSMike Leach----
174f0ae2cfaSMike Leach
175f0ae2cfaSMike Leach:File:            ``addr_ctxtype`` (rw)
176f0ae2cfaSMike Leach:Trace Registers: ACATR[idx,{3:2}]
177f0ae2cfaSMike Leach:Notes:
178f0ae2cfaSMike Leach    Input value string. Set type for linked context ID comparator
179f0ae2cfaSMike Leach
180f0ae2cfaSMike Leach:Depends: ``addr_idx``
181f0ae2cfaSMike Leach:Syntax:
182f0ae2cfaSMike Leach    ``echo type > addr_ctxtype``
183f0ae2cfaSMike Leach
184f0ae2cfaSMike Leach    Type one of {all, vmid, ctxid, none}
185f0ae2cfaSMike Leach:Example:
186f0ae2cfaSMike Leach    ``$> echo ctxid > addr_ctxtype``
187f0ae2cfaSMike Leach
188f0ae2cfaSMike Leach----
189f0ae2cfaSMike Leach
190f0ae2cfaSMike Leach:File:            ``addr_exlevel_s_ns`` (rw)
191f0ae2cfaSMike Leach:Trace Registers: ACATR[idx,{14:8}]
192f0ae2cfaSMike Leach:Notes:
193f0ae2cfaSMike Leach    Set the ELx secure and non-secure matching bits for the
194f0ae2cfaSMike Leach    selected address comparator
195f0ae2cfaSMike Leach
196f0ae2cfaSMike Leach:Depends: ``addr_idx``
197f0ae2cfaSMike Leach:Syntax:
198f0ae2cfaSMike Leach    ``echo val > addr_exlevel_s_ns``
199f0ae2cfaSMike Leach
200f0ae2cfaSMike Leach    val is a 7 bit value for exception levels to exclude. Input
201f0ae2cfaSMike Leach    value shifted to correct bits in register.
202f0ae2cfaSMike Leach:Example:
203f0ae2cfaSMike Leach    ``$> echo 0x4F > addr_exlevel_s_ns``
204f0ae2cfaSMike Leach
205f0ae2cfaSMike Leach----
206f0ae2cfaSMike Leach
207f0ae2cfaSMike Leach:File:            ``addr_instdatatype`` (rw)
208f0ae2cfaSMike Leach:Trace Registers: ACATR[idx,{1:0}]
209f0ae2cfaSMike Leach:Notes:
210f0ae2cfaSMike Leach    Set the comparator address type for matching. Driver only
211f0ae2cfaSMike Leach    supports setting instruction address type.
212f0ae2cfaSMike Leach
213f0ae2cfaSMike Leach:Depends: ``addr_idx``
214f0ae2cfaSMike Leach
215f0ae2cfaSMike Leach----
216f0ae2cfaSMike Leach
217f0ae2cfaSMike Leach:File:            ``addr_cmp_view`` (ro)
218f0ae2cfaSMike Leach:Trace Registers: ACVR[idx, idx+1], ACATR[idx], VIIECTLR
219f0ae2cfaSMike Leach:Notes:
220f0ae2cfaSMike Leach    Read the currently selected address comparator. If part of
221f0ae2cfaSMike Leach    address range then display both addresses.
222f0ae2cfaSMike Leach
223f0ae2cfaSMike Leach:Depends: ``addr_idx``
224f0ae2cfaSMike Leach:Syntax:
225f0ae2cfaSMike Leach    ``cat addr_cmp_view``
226f0ae2cfaSMike Leach:Example:
227f0ae2cfaSMike Leach    ``$> cat addr_cmp_view``
228f0ae2cfaSMike Leach
229f0ae2cfaSMike Leach   ``addr_cmp[0] range 0x0 0xffffffffffffffff include ctrl(0x4b00)``
230f0ae2cfaSMike Leach
231f0ae2cfaSMike Leach----
232f0ae2cfaSMike Leach
233f0ae2cfaSMike Leach:File:            ``nr_addr_cmp`` (ro)
234f0ae2cfaSMike Leach:Trace Registers: From IDR4
235f0ae2cfaSMike Leach:Notes:
236f0ae2cfaSMike Leach    Number of address comparator pairs
237f0ae2cfaSMike Leach
238f0ae2cfaSMike Leach----
239f0ae2cfaSMike Leach
240f0ae2cfaSMike Leach:File:            ``sshot_idx`` (rw)
241f0ae2cfaSMike Leach:Trace Registers: None
242f0ae2cfaSMike Leach:Notes:
243f0ae2cfaSMike Leach    Select single shot register set.
244f0ae2cfaSMike Leach
245f0ae2cfaSMike Leach----
246f0ae2cfaSMike Leach
247f0ae2cfaSMike Leach:File:            ``sshot_ctrl`` (rw)
248f0ae2cfaSMike Leach:Trace Registers: SSCCR[idx]
249f0ae2cfaSMike Leach:Notes:
250f0ae2cfaSMike Leach    Access a single shot comparator control register.
251f0ae2cfaSMike Leach
252f0ae2cfaSMike Leach:Depends: ``sshot_idx``
253f0ae2cfaSMike Leach:Syntax:
254f0ae2cfaSMike Leach    ``echo val > sshot_ctrl``
255f0ae2cfaSMike Leach
256f0ae2cfaSMike Leach    Writes val into the selected control register.
257f0ae2cfaSMike Leach
258f0ae2cfaSMike Leach----
259f0ae2cfaSMike Leach
260f0ae2cfaSMike Leach:File:            ``sshot_status`` (ro)
261f0ae2cfaSMike Leach:Trace Registers: SSCSR[idx]
262f0ae2cfaSMike Leach:Notes:
263f0ae2cfaSMike Leach    Read a single shot comparator status register
264f0ae2cfaSMike Leach
265f0ae2cfaSMike Leach:Depends: ``sshot_idx``
266f0ae2cfaSMike Leach:Syntax:
267f0ae2cfaSMike Leach    ``cat sshot_status``
268f0ae2cfaSMike Leach
269f0ae2cfaSMike Leach    Read status.
270f0ae2cfaSMike Leach:Example:
271f0ae2cfaSMike Leach    ``$> cat sshot_status``
272f0ae2cfaSMike Leach
273f0ae2cfaSMike Leach    ``0x1``
274f0ae2cfaSMike Leach
275f0ae2cfaSMike Leach----
276f0ae2cfaSMike Leach
277f0ae2cfaSMike Leach:File:            ``sshot_pe_ctrl`` (rw)
278f0ae2cfaSMike Leach:Trace Registers: SSPCICR[idx]
279f0ae2cfaSMike Leach:Notes:
280f0ae2cfaSMike Leach    Access a single shot PE comparator input control register.
281f0ae2cfaSMike Leach
282f0ae2cfaSMike Leach:Depends: ``sshot_idx``
283f0ae2cfaSMike Leach:Syntax:
284f0ae2cfaSMike Leach    ``echo val > sshot_pe_ctrl``
285f0ae2cfaSMike Leach
286f0ae2cfaSMike Leach    Writes val into the selected control register.
287f0ae2cfaSMike Leach
288f0ae2cfaSMike Leach----
289f0ae2cfaSMike Leach
290f0ae2cfaSMike Leach:File:            ``ns_exlevel_vinst`` (rw)
291f0ae2cfaSMike Leach:Trace Registers: VICTLR{23:20}
292f0ae2cfaSMike Leach:Notes:
293f0ae2cfaSMike Leach    Program non-secure exception level filters. Set / clear NS
294f0ae2cfaSMike Leach    exception filter bits. Setting ‘1’ excludes trace from the
295f0ae2cfaSMike Leach    exception level.
296f0ae2cfaSMike Leach
297f0ae2cfaSMike Leach:Syntax:
298f0ae2cfaSMike Leach    ``echo bitfield > ns_exlevel_viinst``
299f0ae2cfaSMike Leach
300f0ae2cfaSMike Leach    Where bitfield contains bits to set clear for EL0 to EL2
301f0ae2cfaSMike Leach:Example:
302f0ae2cfaSMike Leach    ``%> echo 0x4 > ns_exlevel_viinst``
303f0ae2cfaSMike Leach
304f0ae2cfaSMike Leach    Excludes EL2 NS trace.
305f0ae2cfaSMike Leach
306f0ae2cfaSMike Leach----
307f0ae2cfaSMike Leach
308f0ae2cfaSMike Leach:File:            ``vinst_pe_cmp_start_stop`` (rw)
309f0ae2cfaSMike Leach:Trace Registers: VIPCSSCTLR
310f0ae2cfaSMike Leach:Notes:
311f0ae2cfaSMike Leach    Access PE start stop comparator input control registers
312f0ae2cfaSMike Leach
313f0ae2cfaSMike Leach----
314f0ae2cfaSMike Leach
315f0ae2cfaSMike Leach:File:            ``bb_ctrl`` (rw)
316f0ae2cfaSMike Leach:Trace Registers: BBCTLR
317f0ae2cfaSMike Leach:Notes:
318f0ae2cfaSMike Leach    Define ranges that Branch Broadcast will operate in.
319f0ae2cfaSMike Leach    Default (0x0) is all addresses.
320f0ae2cfaSMike Leach
321f0ae2cfaSMike Leach:Depends: BB enabled.
322f0ae2cfaSMike Leach
323f0ae2cfaSMike Leach----
324f0ae2cfaSMike Leach
325f0ae2cfaSMike Leach:File:            ``cyc_threshold`` (rw)
326f0ae2cfaSMike Leach:Trace Registers: CCCTLR
327f0ae2cfaSMike Leach:Notes:
328f0ae2cfaSMike Leach    Set the threshold for which cycle counts will be emitted.
329f0ae2cfaSMike Leach    Error if attempt to set below minimum defined in IDR3, masked
330f0ae2cfaSMike Leach    to width of valid bits.
331f0ae2cfaSMike Leach
332f0ae2cfaSMike Leach:Depends: CC enabled.
333f0ae2cfaSMike Leach
334f0ae2cfaSMike Leach----
335f0ae2cfaSMike Leach
336f0ae2cfaSMike Leach:File:            ``syncfreq`` (rw)
337f0ae2cfaSMike Leach:Trace Registers: SYNCPR
338f0ae2cfaSMike Leach:Notes:
339f0ae2cfaSMike Leach    Set trace synchronisation period. Power of 2 value, 0 (off)
340f0ae2cfaSMike Leach    or 8-20. Driver defaults to 12 (every 4096 bytes).
341f0ae2cfaSMike Leach
342f0ae2cfaSMike Leach----
343f0ae2cfaSMike Leach
344f0ae2cfaSMike Leach:File:            ``cntr_idx`` (rw)
345f0ae2cfaSMike Leach:Trace Registers: none
346f0ae2cfaSMike Leach:Notes:
347f0ae2cfaSMike Leach    Select the counter to access
348f0ae2cfaSMike Leach
349f0ae2cfaSMike Leach:Syntax:
350f0ae2cfaSMike Leach    ``echo idx > cntr_idx``
351f0ae2cfaSMike Leach
352f0ae2cfaSMike Leach    Where idx < nr_cntr
353f0ae2cfaSMike Leach
354f0ae2cfaSMike Leach----
355f0ae2cfaSMike Leach
356f0ae2cfaSMike Leach:File:            ``cntr_ctrl`` (rw)
357f0ae2cfaSMike Leach:Trace Registers: CNTCTLR[idx]
358f0ae2cfaSMike Leach:Notes:
359f0ae2cfaSMike Leach    Set counter control value.
360f0ae2cfaSMike Leach
361f0ae2cfaSMike Leach:Depends: ``cntr_idx``
362f0ae2cfaSMike Leach:Syntax:
363f0ae2cfaSMike Leach    ``echo val > cntr_ctrl``
364f0ae2cfaSMike Leach
365f0ae2cfaSMike Leach    Where val is per ETMv4 spec.
366f0ae2cfaSMike Leach
367f0ae2cfaSMike Leach----
368f0ae2cfaSMike Leach
369f0ae2cfaSMike Leach:File:            ``cntrldvr`` (rw)
370f0ae2cfaSMike Leach:Trace Registers: CNTRLDVR[idx]
371f0ae2cfaSMike Leach:Notes:
372f0ae2cfaSMike Leach    Set counter reload value.
373f0ae2cfaSMike Leach
374f0ae2cfaSMike Leach:Depends: ``cntr_idx``
375f0ae2cfaSMike Leach:Syntax:
376f0ae2cfaSMike Leach    ``echo val > cntrldvr``
377f0ae2cfaSMike Leach
378f0ae2cfaSMike Leach    Where val is per ETMv4 spec.
379f0ae2cfaSMike Leach
380f0ae2cfaSMike Leach----
381f0ae2cfaSMike Leach
382f0ae2cfaSMike Leach:File:            ``nr_cntr`` (ro)
383f0ae2cfaSMike Leach:Trace Registers: From IDR5
384f0ae2cfaSMike Leach
385f0ae2cfaSMike Leach:Notes:
386f0ae2cfaSMike Leach    Number of counters implemented.
387f0ae2cfaSMike Leach
388f0ae2cfaSMike Leach----
389f0ae2cfaSMike Leach
390f0ae2cfaSMike Leach:File:            ``ctxid_idx`` (rw)
391f0ae2cfaSMike Leach:Trace Registers: None
392f0ae2cfaSMike Leach:Notes:
393f0ae2cfaSMike Leach    Select the context ID comparator to access
394f0ae2cfaSMike Leach
395f0ae2cfaSMike Leach:Syntax:
396f0ae2cfaSMike Leach    ``echo idx > ctxid_idx``
397f0ae2cfaSMike Leach
398f0ae2cfaSMike Leach    Where idx < numcidc
399f0ae2cfaSMike Leach
400f0ae2cfaSMike Leach----
401f0ae2cfaSMike Leach
402f0ae2cfaSMike Leach:File:            ``ctxid_pid`` (rw)
403f0ae2cfaSMike Leach:Trace Registers: CIDCVR[idx]
404f0ae2cfaSMike Leach:Notes:
405f0ae2cfaSMike Leach   Set the context ID comparator value
406f0ae2cfaSMike Leach
407f0ae2cfaSMike Leach:Depends: ``ctxid_idx``
408f0ae2cfaSMike Leach
409f0ae2cfaSMike Leach----
410f0ae2cfaSMike Leach
411f0ae2cfaSMike Leach:File: ``ctxid_masks`` (rw)
412f0ae2cfaSMike Leach:Trace Registers: CIDCCTLR0, CIDCCTLR1, CIDCVR<0-7>
413f0ae2cfaSMike Leach:Notes:
414f0ae2cfaSMike Leach    Pair of values to set the byte masks for 1-8 context ID
415f0ae2cfaSMike Leach    comparators. Automatically clears masked bytes to 0 in CID
416f0ae2cfaSMike Leach    value registers.
417f0ae2cfaSMike Leach
418f0ae2cfaSMike Leach:Syntax:
419f0ae2cfaSMike Leach    ``echo m3m2m1m0 [m7m6m5m4] > ctxid_masks``
420f0ae2cfaSMike Leach
421f0ae2cfaSMike Leach    32 bit values made up of mask bytes, where mN represents a
422f0ae2cfaSMike Leach    byte mask value for Context ID comparator N.
423f0ae2cfaSMike Leach
424f0ae2cfaSMike Leach    Second value not required on systems that have fewer than 4
425f0ae2cfaSMike Leach    context ID comparators
426f0ae2cfaSMike Leach
427f0ae2cfaSMike Leach----
428f0ae2cfaSMike Leach
429f0ae2cfaSMike Leach:File:            ``numcidc`` (ro)
430f0ae2cfaSMike Leach:Trace Registers: From IDR4
431f0ae2cfaSMike Leach:Notes:
432f0ae2cfaSMike Leach    Number of Context ID comparators
433f0ae2cfaSMike Leach
434f0ae2cfaSMike Leach----
435f0ae2cfaSMike Leach
436f0ae2cfaSMike Leach:File:            ``vmid_idx`` (rw)
437f0ae2cfaSMike Leach:Trace Registers: None
438f0ae2cfaSMike Leach:Notes:
439f0ae2cfaSMike Leach    Select the VM ID comparator to access.
440f0ae2cfaSMike Leach
441f0ae2cfaSMike Leach:Syntax:
442f0ae2cfaSMike Leach    ``echo idx > vmid_idx``
443f0ae2cfaSMike Leach
44490f40f51SMauro Carvalho Chehab    Where idx <  numvmidc
445f0ae2cfaSMike Leach
446f0ae2cfaSMike Leach----
447f0ae2cfaSMike Leach
448f0ae2cfaSMike Leach:File:            ``vmid_val`` (rw)
449f0ae2cfaSMike Leach:Trace Registers: VMIDCVR[idx]
450f0ae2cfaSMike Leach:Notes:
451f0ae2cfaSMike Leach    Set the VM ID comparator value
452f0ae2cfaSMike Leach
453f0ae2cfaSMike Leach:Depends: ``vmid_idx``
454f0ae2cfaSMike Leach
455f0ae2cfaSMike Leach----
456f0ae2cfaSMike Leach
457f0ae2cfaSMike Leach:File:            ``vmid_masks`` (rw)
458f0ae2cfaSMike Leach:Trace Registers: VMIDCCTLR0, VMIDCCTLR1, VMIDCVR<0-7>
459f0ae2cfaSMike Leach:Notes:
460f0ae2cfaSMike Leach    Pair of values to set the byte masks for 1-8 VM ID comparators.
461f0ae2cfaSMike Leach    Automatically clears masked bytes to 0 in VMID value registers.
462f0ae2cfaSMike Leach
463f0ae2cfaSMike Leach:Syntax:
464f0ae2cfaSMike Leach    ``echo m3m2m1m0 [m7m6m5m4] > vmid_masks``
465f0ae2cfaSMike Leach
466f0ae2cfaSMike Leach    Where mN represents a byte mask value for VMID comparator N.
467f0ae2cfaSMike Leach    Second value not required on systems that have fewer than 4
468f0ae2cfaSMike Leach    VMID comparators.
469f0ae2cfaSMike Leach
470f0ae2cfaSMike Leach----
471f0ae2cfaSMike Leach
472f0ae2cfaSMike Leach:File:            ``numvmidc`` (ro)
473f0ae2cfaSMike Leach:Trace Registers: From IDR4
474f0ae2cfaSMike Leach:Notes:
475f0ae2cfaSMike Leach    Number of VMID comparators
476f0ae2cfaSMike Leach
477f0ae2cfaSMike Leach----
478f0ae2cfaSMike Leach
479f0ae2cfaSMike Leach:File:            ``res_idx`` (rw)
480f0ae2cfaSMike Leach:Trace Registers: None.
481f0ae2cfaSMike Leach:Notes:
482f0ae2cfaSMike Leach    Select the resource selector control to access. Must be 2 or
483f0ae2cfaSMike Leach    higher as selectors 0 and 1 are hardwired.
484f0ae2cfaSMike Leach
485f0ae2cfaSMike Leach:Syntax:
486f0ae2cfaSMike Leach    ``echo idx > res_idx``
487f0ae2cfaSMike Leach
488f0ae2cfaSMike Leach    Where 2 <= idx < nr_resource x 2
489f0ae2cfaSMike Leach
490f0ae2cfaSMike Leach----
491f0ae2cfaSMike Leach
492f0ae2cfaSMike Leach:File:            ``res_ctrl`` (rw)
493f0ae2cfaSMike Leach:Trace Registers: RSCTLR[idx]
494f0ae2cfaSMike Leach:Notes:
495f0ae2cfaSMike Leach    Set resource selector control value. Value per ETMv4 spec.
496f0ae2cfaSMike Leach
497f0ae2cfaSMike Leach:Depends: ``res_idx``
498f0ae2cfaSMike Leach:Syntax:
499f0ae2cfaSMike Leach    ``echo val > res_cntr``
500f0ae2cfaSMike Leach
501f0ae2cfaSMike Leach    Where val is per ETMv4 spec.
502f0ae2cfaSMike Leach
503f0ae2cfaSMike Leach----
504f0ae2cfaSMike Leach
505f0ae2cfaSMike Leach:File:            ``nr_resource`` (ro)
506f0ae2cfaSMike Leach:Trace Registers: From IDR4
507f0ae2cfaSMike Leach:Notes:
508f0ae2cfaSMike Leach    Number of resource selector pairs
509f0ae2cfaSMike Leach
510f0ae2cfaSMike Leach----
511f0ae2cfaSMike Leach
512f0ae2cfaSMike Leach:File:            ``event`` (rw)
513f0ae2cfaSMike Leach:Trace Registers: EVENTCTRL0R
514f0ae2cfaSMike Leach:Notes:
515f0ae2cfaSMike Leach    Set up to 4 implemented event fields.
516f0ae2cfaSMike Leach
517f0ae2cfaSMike Leach:Syntax:
518f0ae2cfaSMike Leach    ``echo ev3ev2ev1ev0 > event``
519f0ae2cfaSMike Leach
520f0ae2cfaSMike Leach    Where evN is an 8 bit event field. Up to 4 event fields make up the
521f0ae2cfaSMike Leach    32-bit input value. Number of valid fields is implementation dependent,
522f0ae2cfaSMike Leach    defined in IDR0.
523f0ae2cfaSMike Leach
524f0ae2cfaSMike Leach----
525f0ae2cfaSMike Leach
526f0ae2cfaSMike Leach:File: ``event_instren`` (rw)
527f0ae2cfaSMike Leach:Trace Registers: EVENTCTRL1R
528f0ae2cfaSMike Leach:Notes:
529f0ae2cfaSMike Leach    Choose events which insert event packets into trace stream.
530f0ae2cfaSMike Leach
531f0ae2cfaSMike Leach:Depends: EVENTCTRL0R
532f0ae2cfaSMike Leach:Syntax:
533f0ae2cfaSMike Leach    ``echo bitfield > event_instren``
534f0ae2cfaSMike Leach
535f0ae2cfaSMike Leach    Where bitfield is up to 4 bits according to number of event fields.
536f0ae2cfaSMike Leach
537f0ae2cfaSMike Leach----
538f0ae2cfaSMike Leach
539f0ae2cfaSMike Leach:File:            ``event_ts`` (rw)
540f0ae2cfaSMike Leach:Trace Registers: TSCTLR
541f0ae2cfaSMike Leach:Notes:
542f0ae2cfaSMike Leach    Set the event that will generate timestamp requests.
543f0ae2cfaSMike Leach
544f0ae2cfaSMike Leach:Depends: ``TS activated``
545f0ae2cfaSMike Leach:Syntax:
546f0ae2cfaSMike Leach    ``echo evfield > event_ts``
547f0ae2cfaSMike Leach
548f0ae2cfaSMike Leach    Where evfield is an 8 bit event selector.
549f0ae2cfaSMike Leach
550f0ae2cfaSMike Leach----
551f0ae2cfaSMike Leach
552f0ae2cfaSMike Leach:File:            ``seq_idx`` (rw)
553f0ae2cfaSMike Leach:Trace Registers: None
554f0ae2cfaSMike Leach:Notes:
555f0ae2cfaSMike Leach    Sequencer event register select - 0 to 2
556f0ae2cfaSMike Leach
557f0ae2cfaSMike Leach----
558f0ae2cfaSMike Leach
559f0ae2cfaSMike Leach:File:            ``seq_state`` (rw)
560f0ae2cfaSMike Leach:Trace Registers: SEQSTR
561f0ae2cfaSMike Leach:Notes:
562f0ae2cfaSMike Leach    Sequencer current state - 0 to 3.
563f0ae2cfaSMike Leach
564f0ae2cfaSMike Leach----
565f0ae2cfaSMike Leach
566f0ae2cfaSMike Leach:File:            ``seq_event`` (rw)
567f0ae2cfaSMike Leach:Trace Registers: SEQEVR[idx]
568f0ae2cfaSMike Leach:Notes:
569f0ae2cfaSMike Leach    State transition event registers
570f0ae2cfaSMike Leach
571f0ae2cfaSMike Leach:Depends: ``seq_idx``
572f0ae2cfaSMike Leach:Syntax:
573f0ae2cfaSMike Leach    ``echo evBevF > seq_event``
574f0ae2cfaSMike Leach
575f0ae2cfaSMike Leach    Where evBevF is a 16 bit value made up of two event selectors,
576f0ae2cfaSMike Leach
577f0ae2cfaSMike Leach    - evB : back
578f0ae2cfaSMike Leach    - evF : forwards.
579f0ae2cfaSMike Leach
580f0ae2cfaSMike Leach----
581f0ae2cfaSMike Leach
582f0ae2cfaSMike Leach:File:            ``seq_reset_event`` (rw)
583f0ae2cfaSMike Leach:Trace Registers: SEQRSTEVR
584f0ae2cfaSMike Leach:Notes:
585f0ae2cfaSMike Leach    Sequencer reset event
586f0ae2cfaSMike Leach
587f0ae2cfaSMike Leach:Syntax:
588f0ae2cfaSMike Leach    ``echo evfield > seq_reset_event``
589f0ae2cfaSMike Leach
590f0ae2cfaSMike Leach    Where evfield is an 8 bit event selector.
591f0ae2cfaSMike Leach
592f0ae2cfaSMike Leach----
593f0ae2cfaSMike Leach
594f0ae2cfaSMike Leach:File:            ``nrseqstate`` (ro)
595f0ae2cfaSMike Leach:Trace Registers: From IDR5
596f0ae2cfaSMike Leach:Notes:
597f0ae2cfaSMike Leach    Number of sequencer states (0 or 4)
598f0ae2cfaSMike Leach
599f0ae2cfaSMike Leach----
600f0ae2cfaSMike Leach
601f0ae2cfaSMike Leach:File:            ``nr_pe_cmp`` (ro)
602f0ae2cfaSMike Leach:Trace Registers: From IDR4
603f0ae2cfaSMike Leach:Notes:
604f0ae2cfaSMike Leach    Number of PE comparator inputs
605f0ae2cfaSMike Leach
606f0ae2cfaSMike Leach----
607f0ae2cfaSMike Leach
608f0ae2cfaSMike Leach:File:            ``nr_ext_inp`` (ro)
609f0ae2cfaSMike Leach:Trace Registers: From IDR5
610f0ae2cfaSMike Leach:Notes:
611f0ae2cfaSMike Leach    Number of external inputs
612f0ae2cfaSMike Leach
613f0ae2cfaSMike Leach----
614f0ae2cfaSMike Leach
615f0ae2cfaSMike Leach:File:            ``nr_ss_cmp`` (ro)
616f0ae2cfaSMike Leach:Trace Registers: From IDR4
617f0ae2cfaSMike Leach:Notes:
618f0ae2cfaSMike Leach    Number of Single Shot control registers
619f0ae2cfaSMike Leach
620f0ae2cfaSMike Leach----
621f0ae2cfaSMike Leach
622f0ae2cfaSMike Leach*Note:* When programming any address comparator the driver will tag the
623f0ae2cfaSMike Leachcomparator with a type used - i.e. RANGE, SINGLE, START, STOP. Once this tag
624f0ae2cfaSMike Leachis set, then only the values can be changed using the same sysfs file / type
625f0ae2cfaSMike Leachused to program it.
626f0ae2cfaSMike Leach
627f0ae2cfaSMike LeachThus::
628f0ae2cfaSMike Leach
629f0ae2cfaSMike Leach  % echo 0 > addr_idx		; select address comparator 0
630f0ae2cfaSMike Leach  % echo 0x1000 0x5000 0 > addr_range ; set address range on comparators 0, 1.
631f0ae2cfaSMike Leach  % echo 0x2000 > addr_start    ; error as comparator 0 is a range comparator
632f0ae2cfaSMike Leach  % echo 2 > addr_idx		; select address comparator 2
633f0ae2cfaSMike Leach  % echo 0x2000 > addr_start	; this is OK as comparator 2 is unused.
634f0ae2cfaSMike Leach  % echo 0x3000 > addr_stop	; error as comparator 2 set as start address.
635f0ae2cfaSMike Leach  % echo 2 > addr_idx		; select address comparator 3
636f0ae2cfaSMike Leach  % echo 0x3000 > addr_stop	; this is OK
637f0ae2cfaSMike Leach
638f0ae2cfaSMike LeachTo remove programming on all the comparators (and all the other hardware) use
639f0ae2cfaSMike Leachthe reset parameter::
640f0ae2cfaSMike Leach
641f0ae2cfaSMike Leach  % echo 1 > reset
642f0ae2cfaSMike Leach
643f0ae2cfaSMike Leach
644f0ae2cfaSMike Leach
645f0ae2cfaSMike LeachThe ‘mode’ sysfs parameter.
646f0ae2cfaSMike Leach---------------------------
647f0ae2cfaSMike Leach
648f0ae2cfaSMike LeachThis is a bitfield selection parameter that sets the overall trace mode for the
649f0ae2cfaSMike LeachETM. The table below describes the bits, using the defines from the driver
650f0ae2cfaSMike Leachsource file, along with a description of the feature these represent. Many
651f0ae2cfaSMike Leachfeatures are optional and therefore dependent on implementation in the
652f0ae2cfaSMike Leachhardware.
653f0ae2cfaSMike Leach
654f0ae2cfaSMike LeachBit assignments shown below:-
655f0ae2cfaSMike Leach
656f0ae2cfaSMike Leach----
657f0ae2cfaSMike Leach
658f0ae2cfaSMike Leach**bit (0):**
659f0ae2cfaSMike Leach    ETM_MODE_EXCLUDE
660f0ae2cfaSMike Leach
661f0ae2cfaSMike Leach**description:**
662f0ae2cfaSMike Leach    This is the default value for the include / exclude function when
663f0ae2cfaSMike Leach    setting address ranges. Set 1 for exclude range. When the mode
664f0ae2cfaSMike Leach    parameter is set this value is applied to the currently indexed
665f0ae2cfaSMike Leach    address range.
666f0ae2cfaSMike Leach
66732ee00d8SJames Clark.. _coresight-branch-broadcast:
668f0ae2cfaSMike Leach
669f0ae2cfaSMike Leach**bit (4):**
670f0ae2cfaSMike Leach    ETM_MODE_BB
671f0ae2cfaSMike Leach
672f0ae2cfaSMike Leach**description:**
673774daad3SJames Clark    Set to enable branch broadcast if supported in hardware [IDR0]. The primary use for this feature
674774daad3SJames Clark    is when code is patched dynamically at run time and the full program flow may not be able to be
675774daad3SJames Clark    reconstructed using only conditional branches.
676774daad3SJames Clark
677774daad3SJames Clark    There is currently no support in Perf for supplying modified binaries to the decoder, so this
678*d56b699dSBjorn Helgaas    feature is only intended to be used for debugging purposes or with a 3rd party tool.
679774daad3SJames Clark
680774daad3SJames Clark    Choosing this option will result in a significant increase in the amount of trace generated -
681774daad3SJames Clark    possible danger of overflows, or fewer instructions covered. Note, that this option also
682774daad3SJames Clark    overrides any setting of :ref:`ETM_MODE_RETURNSTACK <coresight-return-stack>`, so where a branch
683774daad3SJames Clark    broadcast range overlaps a return stack range, return stacks will not be available for that
684774daad3SJames Clark    range.
685f0ae2cfaSMike Leach
68632ee00d8SJames Clark.. _coresight-cycle-accurate:
687f0ae2cfaSMike Leach
688f0ae2cfaSMike Leach**bit (5):**
689f0ae2cfaSMike Leach    ETMv4_MODE_CYCACC
690f0ae2cfaSMike Leach
691f0ae2cfaSMike Leach**description:**
692f0ae2cfaSMike Leach    Set to enable cycle accurate trace if supported [IDR0].
693f0ae2cfaSMike Leach
694f0ae2cfaSMike Leach
695f0ae2cfaSMike Leach**bit (6):**
696f0ae2cfaSMike Leach    ETMv4_MODE_CTXID
697f0ae2cfaSMike Leach
698f0ae2cfaSMike Leach**description:**
699f0ae2cfaSMike Leach    Set to enable context ID tracing if supported in hardware [IDR2].
700f0ae2cfaSMike Leach
701f0ae2cfaSMike Leach
702f0ae2cfaSMike Leach**bit (7):**
703f0ae2cfaSMike Leach    ETM_MODE_VMID
704f0ae2cfaSMike Leach
705f0ae2cfaSMike Leach**description:**
706f0ae2cfaSMike Leach    Set to enable virtual machine ID tracing if supported [IDR2].
707f0ae2cfaSMike Leach
70832ee00d8SJames Clark.. _coresight-timestamp:
709f0ae2cfaSMike Leach
710f0ae2cfaSMike Leach**bit (11):**
711f0ae2cfaSMike Leach    ETMv4_MODE_TIMESTAMP
712f0ae2cfaSMike Leach
713f0ae2cfaSMike Leach**description:**
714f0ae2cfaSMike Leach    Set to enable timestamp generation if supported [IDR0].
715f0ae2cfaSMike Leach
71632ee00d8SJames Clark.. _coresight-return-stack:
717f0ae2cfaSMike Leach
718f0ae2cfaSMike Leach**bit (12):**
719f0ae2cfaSMike Leach    ETM_MODE_RETURNSTACK
720f0ae2cfaSMike Leach**description:**
721f0ae2cfaSMike Leach    Set to enable trace return stack use if supported [IDR0].
722f0ae2cfaSMike Leach
723f0ae2cfaSMike Leach
724f0ae2cfaSMike Leach**bit (13-14):**
725f0ae2cfaSMike Leach    ETM_MODE_QELEM(val)
726f0ae2cfaSMike Leach
727f0ae2cfaSMike Leach**description:**
728f0ae2cfaSMike Leach    ‘val’ determines level of Q element support enabled if
729f0ae2cfaSMike Leach    implemented by the ETM [IDR0]
730f0ae2cfaSMike Leach
731f0ae2cfaSMike Leach
732f0ae2cfaSMike Leach**bit (19):**
733f0ae2cfaSMike Leach    ETM_MODE_ATB_TRIGGER
734f0ae2cfaSMike Leach
735f0ae2cfaSMike Leach**description:**
736f0ae2cfaSMike Leach    Set to enable the ATBTRIGGER bit in the event control register
737f0ae2cfaSMike Leach    [EVENTCTLR1] if supported [IDR5].
738f0ae2cfaSMike Leach
739f0ae2cfaSMike Leach
740f0ae2cfaSMike Leach**bit (20):**
741f0ae2cfaSMike Leach    ETM_MODE_LPOVERRIDE
742f0ae2cfaSMike Leach
743f0ae2cfaSMike Leach**description:**
744f0ae2cfaSMike Leach    Set to enable the LPOVERRIDE bit in the event control register
745f0ae2cfaSMike Leach    [EVENTCTLR1], if supported [IDR5].
746f0ae2cfaSMike Leach
747f0ae2cfaSMike Leach
748f0ae2cfaSMike Leach**bit (21):**
749f0ae2cfaSMike Leach    ETM_MODE_ISTALL_EN
750f0ae2cfaSMike Leach
751f0ae2cfaSMike Leach**description:**
752f0ae2cfaSMike Leach    Set to enable the ISTALL bit in the stall control register
753f0ae2cfaSMike Leach    [STALLCTLR]
754f0ae2cfaSMike Leach
755f0ae2cfaSMike Leach
756f0ae2cfaSMike Leach**bit (23):**
757f0ae2cfaSMike Leach    ETM_MODE_INSTPRIO
758f0ae2cfaSMike Leach
759f0ae2cfaSMike Leach**description:**
760f0ae2cfaSMike Leach	      Set to enable the INSTPRIORITY bit in the stall control register
761f0ae2cfaSMike Leach	      [STALLCTLR] , if supported [IDR0].
762f0ae2cfaSMike Leach
763f0ae2cfaSMike Leach
764f0ae2cfaSMike Leach**bit (24):**
765f0ae2cfaSMike Leach    ETM_MODE_NOOVERFLOW
766f0ae2cfaSMike Leach
767f0ae2cfaSMike Leach**description:**
768f0ae2cfaSMike Leach    Set to enable the NOOVERFLOW bit in the stall control register
769f0ae2cfaSMike Leach    [STALLCTLR], if supported [IDR3].
770f0ae2cfaSMike Leach
771f0ae2cfaSMike Leach
772f0ae2cfaSMike Leach**bit (25):**
773f0ae2cfaSMike Leach    ETM_MODE_TRACE_RESET
774f0ae2cfaSMike Leach
775f0ae2cfaSMike Leach**description:**
776f0ae2cfaSMike Leach    Set to enable the TRCRESET bit in the viewinst control register
777f0ae2cfaSMike Leach    [VICTLR] , if supported [IDR3].
778f0ae2cfaSMike Leach
779f0ae2cfaSMike Leach
780f0ae2cfaSMike Leach**bit (26):**
781f0ae2cfaSMike Leach    ETM_MODE_TRACE_ERR
782f0ae2cfaSMike Leach
783f0ae2cfaSMike Leach**description:**
784f0ae2cfaSMike Leach    Set to enable the TRCCTRL bit in the viewinst control register
785f0ae2cfaSMike Leach    [VICTLR].
786f0ae2cfaSMike Leach
787f0ae2cfaSMike Leach
788f0ae2cfaSMike Leach**bit (27):**
789f0ae2cfaSMike Leach    ETM_MODE_VIEWINST_STARTSTOP
790f0ae2cfaSMike Leach
791f0ae2cfaSMike Leach**description:**
792f0ae2cfaSMike Leach    Set the initial state value of the ViewInst start / stop logic
793f0ae2cfaSMike Leach    in the viewinst control register [VICTLR]
794f0ae2cfaSMike Leach
795f0ae2cfaSMike Leach
796f0ae2cfaSMike Leach**bit (30):**
797f0ae2cfaSMike Leach    ETM_MODE_EXCL_KERN
798f0ae2cfaSMike Leach
799f0ae2cfaSMike Leach**description:**
800f0ae2cfaSMike Leach    Set default trace setup to exclude kernel mode trace (see note a)
801f0ae2cfaSMike Leach
802f0ae2cfaSMike Leach
803f0ae2cfaSMike Leach**bit (31):**
804f0ae2cfaSMike Leach    ETM_MODE_EXCL_USER
805f0ae2cfaSMike Leach
806f0ae2cfaSMike Leach**description:**
807f0ae2cfaSMike Leach    Set default trace setup to exclude user space trace (see note a)
808f0ae2cfaSMike Leach
809f0ae2cfaSMike Leach----
810f0ae2cfaSMike Leach
811f0ae2cfaSMike Leach*Note a)* On startup the ETM is programmed to trace the complete address space
812f0ae2cfaSMike Leachusing address range comparator 0. ‘mode’ bits 30 / 31 modify this setting to
813f0ae2cfaSMike Leachset EL exclude bits for NS state in either user space (EL0) or kernel space
814f0ae2cfaSMike Leach(EL1) in the address range comparator. (the default setting excludes all
815f0ae2cfaSMike Leachsecure EL, and NS EL2)
816f0ae2cfaSMike Leach
817f0ae2cfaSMike LeachOnce the reset parameter has been used, and/or custom programming has been
818f0ae2cfaSMike Leachimplemented - using these bits will result in the EL bits for address
819f0ae2cfaSMike Leachcomparator 0 being set in the same way.
820f0ae2cfaSMike Leach
821f0ae2cfaSMike Leach*Note b)* Bits 2-3, 8-10, 15-16, 18, 22, control features that only work with
822f0ae2cfaSMike Leachdata trace. As A-profile data trace is architecturally prohibited in ETMv4,
823f0ae2cfaSMike Leachthese have been omitted here. Possible uses could be where a kernel has
824f0ae2cfaSMike Leachsupport for control of R or M profile infrastructure as part of a heterogeneous
825f0ae2cfaSMike Leachsystem.
826f0ae2cfaSMike Leach
827f0ae2cfaSMike LeachBits 17, 28-29 are unused.
828