Hi,
i.MX8QXP (ARM Cortex-A35) has debug trace feature. However, I am a bit confused about:
1) The information tracing provides. Do you have a list? There is at least:
- profiling (functions duration and number of calls)
- object code coverage
- But is there other information as well? For example cache misses/hits; PMU data; other interconnect's traffic information; etc.?
2) I think there are no external ETM pins to the SoC. Hence, I understood there were 2 means to output trace data:
- on-chip: store data to DDR (can it be stored elsewhere?)
- off-chip: stream data outside of SoC. I saw on the Internet PCIe bus used for that. But does the i.MX 8X is limited to using that bus or any other would work?
3) Does trace data pass by the central SoC interconnect (DRAM Block + Big Node) or is has a dedicated internal bus? If through the SoC interconnect, then I can't see how ETM tracing can be non-intrusive. There will be application performance degradation when tracing is enabled. Am I right? Do you have examples showing the percentage of interference obtained?
4) PCIe intrusivity: same question, but for off-chip tracing through PCIe. Trace data traffic going through PCIe will collide with applicative's PCIe data. Do you have examples showing interference? Or an applicative PCIe occupation threshold (X% PCIe bandwidth) below which adding PCIe trace has no significant impact?
Thanks,
Étienne