On 23/05/2025 09:56, Leo Yan wrote:
On Fri, May 23, 2025 at 04:08:58PM +0800, Yuanfang Zhang wrote:
[...]
+static int trace_noc_init_default_data(struct trace_noc_drvdata *drvdata) +{ + int atid;
+ atid = coresight_trace_id_get_system_id(); + if (atid < 0) + return atid;
+ drvdata->atid = atid;
Do you need to expose this via sysfs ? Otherwise, how can you map a trace to a TNOC at decoding ?
yes, need to expose the atid via sysfs, but it better to expose it on source driver which connect with this TNOC. so dont expose it on this driver.
But why ? How does that work ? The packets that come via TNOC (irrespective of the source(s)) will have the same ATID as that of the TNOC. So :
1) How does it help if the source exports the ID that was allocated in the TNOC driver ?
2) How does the source driver know the TraceID for exposing via sysfs ? Does it expose its own traceid ?
If so, why the ID is not maintained in coresight_path::trace_id?
A source device allocates ID and maintains in coresight path, then this ID is passed (when enabling the link) to TNOC driver to consume it.
Good question, since we have the "path" maintaining the TraceID, we should use that here for the TNOC. But the other question is, can there be multiple sources connected to a single TNOC ? (I am guessing, yes!. And thus it may not work with what you are proposing.
Cheers Suzuki
Thanks, Leo