On 8 November 2016 at 12:27, Darius-Andrei Suciu dsuciu@cs.stonybrook.edu wrote:
Hello Mathieu,
Hi
My name is Darius Suciu, a Phd. student at Stony Brook University.
Congratulation - a PhD is a serious endeavour.
I am working on a project where I need to get tracing data from an Cortex A-9 cpu (I'm using an i.MX6 nitrogen max board). The Coresight architecure seems very complex to me.
CS is complex to anyone ramping up on it. Looking at the drivers in the kernel tree most of the complexity comes from the integration with perf. The drivers and the framework are pretty bare bone and the sysFS interface very easy to understand.
I am trying to figure out how I can read the ETB buffer from the kernel (without using a JTAG), and the Coresight driver seems to offer this functionality. On the comments on the Linux Coresight driver, it says it supports also PTM (even though the configuration seems mostly ETM specific).
In terms of configuration ETMv3 and PTM are quite similar. So far I haven't found enough discrepancies that would mandate splitting the ETMv3 driver.
Could you please help me out with some questions?
Of course.
Did you using the driver on a Cortex A-9 cpu ? Or do you know what changes are required to make it work ?
I never used CS on a cortex A9 but that is irrelevant. What is important is the kind of tracer (ETMv3/4/PTM) that is coupled with each CPU and we have support for all of them (except ITM). From there you'll need to take care of the power domains, clock and the device tree.
Do you know if the ETB buffer configuration is the same for ETM and PTM architectures (can I reuse it)
ETB and the ETM/PTM are different IP blocks and don't affect each other. The current ETB driver in the kernel tree will work with any kind of tracer.
Mathieu
Thank you for the help, Darius