blob: 6bce34627ac75f83d810a765d201c4cfc1aa1c53 [file] [log] [blame]
* Decode Tree API updates.
-> Re-factor the decode tree API to:
1) remove the per decoder type creation functions - CreateETMv4Decoder(...),
replacing with a single CreateDecoder("Type").
2) Use new structure to enable custom decoders - may be proprietary / binaries to
be used in the decoder structure.
3) Make it easier to add a new decoder to the library source, without the overhead of
doing all the creation fns.
* 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