| In about this order (assuming PTM decode pushed quite soon). |
| |
| * ETMv3 full decode. |
| |
| * STM "full decode". |
| -> This is simply to come up with a generic packet format that will consist of |
| Master+Channel+<payload>, where <payload> is [data]+[TS]+[marker/flag]. This |
| combines a number of packets from the raw STPv2 format. |
| |
| * ETMv4/PTM - decoder updates to handle advanced configuration. |
| -> Certain (currently unused by perf / current hardware) configuration settings |
| can alter the format of the trace output. One example is Return Stack - |
| settable in the control registers for PTM/ETMv4, and removes some inline |
| addresses. Decoder must use a follower to correctly trace when this is set. |
| |
| * ITM packet processing and decode. |
| -> ITM is primarily an M class SW trace module. I wouldn't expect to see it on |
| systems with STM, unless a companion M class was present. |
| |
| *Data trace - ETMv4 / ETMv3 |
| -> Differing solutions to data trace in v4/v3 - v4 is separate trace stream |
| completely, output at trace ID <instruction_trace_ID>+1. ETMv3 is inline with |
| the instruction trace. |
| |
| Cortex-A cores do not support this architecturally. On R and M profile cores it |
| is an option. There are scenrios in future that could see linux on R cores, plus |
| on something like Juno it is possible to switch on trace for the SCP |
| (M class processor). So at some point data trace |