* [PATCH v7 0/5] Fix traceNoC probe issue on multiple QCOM platforms
@ 2026-11-10 1:21 Jie Gan
2026-11-10 1:21 ` [PATCH v7 1/5] dt-bindings: arm: coresight-tnoc: Bind on platform bus instead of AMBA Jie Gan
` (6 more replies)
0 siblings, 7 replies; 9+ messages in thread
From: Jie Gan @ 2026-11-10 1:21 UTC (permalink / raw)
To: Suzuki K Poulose, Mike Leach, James Clark, Leo Yan, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Tingwei Zhang, Yuanfang Zhang,
Alexander Shishkin, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Jingyi Wang
Cc: Jie Gan, linux-arm-msm, coresight, linux-arm-kernel, devicetree,
linux-kernel, Konrad Dybcio, Krzysztof Kozlowski
The CoreSight TNOC (Trace Network-On-Chip) binding so far only allowed the
two-string AMBA form "qcom,coresight-tnoc", "arm,primecell". That form
forces the device onto the AMBA bus, where the driver must read the
peripheral ID from the device registers during probe. On several QCOM
platforms this AMBA peripheral-ID probing fails, so the traceNoC device
never probes and its trace path is unavailable.
This series drops the "arm,primecell" entry and turns "qcom,coresight-tnoc"
into a standalone platform compatible. Without "arm,primecell" the device
is created on the platform bus and probes through the platform driver by
compatible string, bypassing the AMBA peripheral-ID read while remaining a
fully functional Aggregator TNOC that allocates a system trace ID (ATID).
The series is organized as: binding first, then the driver support for the
platform-bus compatible, followed by the per-platform DT fixes that switch
the affected nodes over to it.
- Patch 1 (dt-bindings) drops "arm,primecell" and makes
"qcom,coresight-tnoc" a single standalone compatible, and updates the
example node accordingly.
- Patch 2 (driver) adds "qcom,coresight-tnoc" to the platform driver's
match table and renames the itnoc-specific names to generic tnoc names,
since the platform driver now serves both the Interconnect and Aggregator
TNOC. It also restricts the ATID-unsupported handling to
"qcom,coresight-itnoc" only, so the Aggregator TNOC on the platform bus is
no longer wrongly covered and correctly allocates a trace ID.
- Patches 3-4 (kaanapali, sm8750) drop the "arm,primecell" entry on the
traceNoC nodes and use the standalone "qcom,coresight-tnoc" compatible,
fixing the probe failure on those platforms.
- Patch 5 (glymur) switches the node from "qcom,coresight-itnoc" to
"qcom,coresight-tnoc". This node is actually an Aggregator TNOC (its
tn_ag_* endpoints show aggregation), so it should expose a system trace
ID rather than being treated as an Interconnect TNOC.
Signed-off-by: Jie Gan <jie.gan@oss.qualcomm.com>
---
Changes in v7:
- rebased on next-20261109
- collect reviewed-by tags.
- Link to v6: https://lore.kernel.org/all/20260710-fix-tracenoc-probe-issue-v6-0-41eb36fef8d9@oss.qualcomm.com/
Changes in v6:
- update commit message for all commits to focus on describe the
hardware itself and the hardware issue we are facing on.
- Link to v5: https://lore.kernel.org/r/20260707-fix-tracenoc-probe-issue-v5-0-bf733ed9ebd0@oss.qualcomm.com
Changes in v5:
- Drop the separate "qcom,coresight-agtnoc" compatible. Instead drop the
"arm,primecell" entry and reuse the existing "qcom,coresight-tnoc" as a
standalone platform compatible.
- Update the binding, driver match table, and per-platform DT nodes to the
standalone "qcom,coresight-tnoc" compatible accordingly.
- Rewrite the commit messages to describe dropping "arm,primecell" and
binding on the platform bus.
- Link to v4: https://lore.kernel.org/r/20260701-fix-tracenoc-probe-issue-v4-0-aefab449a470@oss.qualcomm.com
Changes in v4:
- rewrite the commit message for the patch 3 - patch 5.
- free the allocated ATID in remove path.
- Link to v3: https://lore.kernel.org/r/20260630-fix-tracenoc-probe-issue-v3-0-7201e1841e94@oss.qualcomm.com
Changes in v3:
- add standalone compatible for AG traceNoC device, allow it to be
probed with platform driver.
- add fix patches for sm8750 and Glymur platforms
- Link to v2: https://lore.kernel.org/r/20260624-fix-tracenoc-probe-issue-v2-0-786520f62f21@oss.qualcomm.com
Changes in v2:
- address the ATID issue reported by Sashiko.
- update binding to accept arm,primecell-periphid property.
- Link to v1: https://lore.kernel.org/r/20260624-fix-tracenoc-probe-issue-v1-1-bcc785198fc5@oss.qualcomm.com
To: Suzuki K Poulose <suzuki.poulose@arm.com>
To: Mike Leach <mike.leach@arm.com>
To: James Clark <james.clark@linaro.org>
To: Leo Yan <leo.yan@arm.com>
To: Rob Herring <robh@kernel.org>
To: Krzysztof Kozlowski <krzk+dt@kernel.org>
To: Conor Dooley <conor+dt@kernel.org>
To: Tingwei Zhang <tingwei.zhang@oss.qualcomm.com>
To: Yuanfang Zhang <yuanfang.zhang@oss.qualcomm.com>
To: Alexander Shishkin <alexander.shishkin@linux.intel.com>
To: Bjorn Andersson <andersson@kernel.org>
To: Konrad Dybcio <konradybcio@kernel.org>
To: Abel Vesa <abelvesa@kernel.org>
To: Jingyi Wang <jingyi.wang@oss.qualcomm.com>
Cc: linux-arm-msm@vger.kernel.org
Cc: coresight@lists.linaro.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: devicetree@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Jie Gan <jie.gan@oss.qualcomm.com>
---
Jie Gan (5):
dt-bindings: arm: coresight-tnoc: Bind on platform bus instead of AMBA
coresight: tnoc: Bind Aggregator TNOC on the platform bus
arm64: dts: qcom: kaanapali: bind traceNoC on the platform bus
arm64: dts: qcom: sm8750: bind traceNoC on the platform bus
arm64: dts: qcom: glymur: use Aggregator TNOC compatible
.../bindings/arm/qcom,coresight-tnoc.yaml | 16 ++--------
arch/arm64/boot/dts/qcom/glymur.dtsi | 6 ++--
arch/arm64/boot/dts/qcom/kaanapali.dtsi | 2 +-
arch/arm64/boot/dts/qcom/sm8750.dtsi | 2 +-
drivers/hwtracing/coresight/coresight-tnoc.c | 37 ++++++++++++----------
5 files changed, 27 insertions(+), 36 deletions(-)
---
base-commit: 630059a5a632377b9b7b487baccde92b7ae1dd47
change-id: 20261110-fix-trace-noc-probe-issue-e75c5a649fd9
Best regards,
--
Jie Gan <jie.gan@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v7 1/5] dt-bindings: arm: coresight-tnoc: Bind on platform bus instead of AMBA
2026-11-10 1:21 [PATCH v7 0/5] Fix traceNoC probe issue on multiple QCOM platforms Jie Gan
@ 2026-11-10 1:21 ` Jie Gan
2026-11-10 1:21 ` [PATCH v7 2/5] coresight: tnoc: Bind Aggregator TNOC on the platform bus Jie Gan
` (5 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Jie Gan @ 2026-11-10 1:21 UTC (permalink / raw)
To: Suzuki K Poulose, Mike Leach, James Clark, Leo Yan, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Tingwei Zhang, Yuanfang Zhang,
Alexander Shishkin, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Jingyi Wang
Cc: Jie Gan, linux-arm-msm, coresight, linux-arm-kernel, devicetree,
linux-kernel, Konrad Dybcio, Krzysztof Kozlowski
The Aggregator TraceNoC hardware exposes CID registers, but the Component
ID value returned by the hardware is 0x00000000 instead of a valid AMBA
Component ID. As a result, the device cannot be identified on the AMBA
bus.
Describe the Aggregator TraceNoC with a dedicated single
"qcom,coresight-tnoc" compatible instead of the two-string AMBA form
"qcom,coresight-tnoc", "arm,primecell". This creates the device on the
platform bus so it is bound by the platform driver through its compatible
string rather than as an AMBA device.
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Jie Gan <jie.gan@oss.qualcomm.com>
---
.../devicetree/bindings/arm/qcom,coresight-tnoc.yaml | 16 ++--------------
1 file changed, 2 insertions(+), 14 deletions(-)
diff --git a/Documentation/devicetree/bindings/arm/qcom,coresight-tnoc.yaml b/Documentation/devicetree/bindings/arm/qcom,coresight-tnoc.yaml
index 37147124449e..625801e3d3bb 100644
--- a/Documentation/devicetree/bindings/arm/qcom,coresight-tnoc.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom,coresight-tnoc.yaml
@@ -22,24 +22,12 @@ description: >
Note this binding is specifically intended for Aggregator TNOC instances.
-# Need a custom select here or 'arm,primecell' will match on lots of nodes
-select:
- properties:
- compatible:
- contains:
- enum:
- - qcom,coresight-tnoc
- required:
- - compatible
-
properties:
$nodename:
pattern: "^tn(@[0-9a-f]+)$"
compatible:
- items:
- - const: qcom,coresight-tnoc
- - const: arm,primecell
+ const: qcom,coresight-tnoc
reg:
maxItems: 1
@@ -83,7 +71,7 @@ additionalProperties: false
examples:
- |
tn@109ab000 {
- compatible = "qcom,coresight-tnoc", "arm,primecell";
+ compatible = "qcom,coresight-tnoc";
reg = <0x109ab000 0x4200>;
clocks = <&aoss_qmp>;
--
2.34.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v7 2/5] coresight: tnoc: Bind Aggregator TNOC on the platform bus
2026-11-10 1:21 [PATCH v7 0/5] Fix traceNoC probe issue on multiple QCOM platforms Jie Gan
2026-11-10 1:21 ` [PATCH v7 1/5] dt-bindings: arm: coresight-tnoc: Bind on platform bus instead of AMBA Jie Gan
@ 2026-11-10 1:21 ` Jie Gan
2026-11-10 1:21 ` [PATCH v7 3/5] arm64: dts: qcom: kaanapali: bind traceNoC " Jie Gan
` (4 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Jie Gan @ 2026-11-10 1:21 UTC (permalink / raw)
To: Suzuki K Poulose, Mike Leach, James Clark, Leo Yan, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Tingwei Zhang, Yuanfang Zhang,
Alexander Shishkin, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Jingyi Wang
Cc: Jie Gan, linux-arm-msm, coresight, linux-arm-kernel, devicetree,
linux-kernel, Konrad Dybcio
The Aggregator TNOC is bound as an AMBA device through the
"qcom,coresight-tnoc", "arm,primecell" compatible. The AMBA bus reads the
peripheral and component ID registers to identify and probe the device.
Although the Aggregator TNOC exposes the CID registers, the Component ID
value returned by the hardware is 0x00000000 instead of a valid AMBA
Component ID, so the AMBA match fails and the device never comes up.
Bind the Aggregator TNOC on the platform bus instead, where the device is
matched by its compatible string and no component-ID probing is performed.
Add "qcom,coresight-tnoc" to the platform driver's match table, and rename
the platform driver and its callbacks from the "itnoc"-specific names to
generic "tnoc" names, since the driver now serves both the Interconnect
and Aggregator TNOC. Update the platform driver name to "coresight-tnoc"
accordingly.
The ATID-unsupported handling keyed off dev_is_amba(), which disabled ATID
allocation for every platform-bus device. With the Aggregator TNOC now on
the platform bus, that check would wrongly disable its ATID, even though
the Aggregator TNOC owns the ATID that tags the whole aggregation path.
The Interconnect TNOC aggregates trace within its subsystem but carries no
ATID of its own, because the downstream Aggregator TNOC already owns the
ATID for the path. So base the check on the "qcom,coresight-itnoc"
compatible and let every other form allocate a trace ID.
Reviewed-by: Leo Yan <leo.yan@arm.com>
Signed-off-by: Jie Gan <jie.gan@oss.qualcomm.com>
---
drivers/hwtracing/coresight/coresight-tnoc.c | 37 +++++++++++++++-------------
1 file changed, 20 insertions(+), 17 deletions(-)
diff --git a/drivers/hwtracing/coresight/coresight-tnoc.c b/drivers/hwtracing/coresight/coresight-tnoc.c
index a0ab99df5db1..4b46ce995862 100644
--- a/drivers/hwtracing/coresight/coresight-tnoc.c
+++ b/drivers/hwtracing/coresight/coresight-tnoc.c
@@ -130,7 +130,7 @@ static int trace_noc_init_default_data(struct trace_noc_drvdata *drvdata)
{
int atid;
- if (!dev_is_amba(drvdata->dev))
+ if (of_device_is_compatible(drvdata->dev->of_node, "qcom,coresight-itnoc"))
return 0;
atid = coresight_trace_id_get_system_id();
@@ -276,7 +276,7 @@ static struct amba_driver trace_noc_driver = {
.id_table = trace_noc_ids,
};
-static int itnoc_probe(struct platform_device *pdev)
+static int tnoc_platform_probe(struct platform_device *pdev)
{
struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
int ret;
@@ -293,7 +293,7 @@ static int itnoc_probe(struct platform_device *pdev)
return ret;
}
-static void itnoc_remove(struct platform_device *pdev)
+static void tnoc_platform_remove(struct platform_device *pdev)
{
struct trace_noc_drvdata *drvdata = platform_get_drvdata(pdev);
@@ -307,10 +307,12 @@ static void itnoc_remove(struct platform_device *pdev)
pm_runtime_disable(&pdev->dev);
pm_runtime_set_suspended(&pdev->dev);
pm_runtime_put_noidle(&pdev->dev);
+ if (drvdata->atid > 0)
+ coresight_trace_id_put_system_id(drvdata->atid);
}
#ifdef CONFIG_PM
-static int itnoc_runtime_suspend(struct device *dev)
+static int tnoc_runtime_suspend(struct device *dev)
{
struct trace_noc_drvdata *drvdata = dev_get_drvdata(dev);
@@ -319,7 +321,7 @@ static int itnoc_runtime_suspend(struct device *dev)
return 0;
}
-static int itnoc_runtime_resume(struct device *dev)
+static int tnoc_runtime_resume(struct device *dev)
{
struct trace_noc_drvdata *drvdata = dev_get_drvdata(dev);
@@ -327,35 +329,36 @@ static int itnoc_runtime_resume(struct device *dev)
}
#endif
-static const struct dev_pm_ops itnoc_dev_pm_ops = {
- SET_RUNTIME_PM_OPS(itnoc_runtime_suspend, itnoc_runtime_resume, NULL)
+static const struct dev_pm_ops tnoc_dev_pm_ops = {
+ SET_RUNTIME_PM_OPS(tnoc_runtime_suspend, tnoc_runtime_resume, NULL)
};
-static const struct of_device_id itnoc_of_match[] = {
+static const struct of_device_id tnoc_of_match[] = {
{ .compatible = "qcom,coresight-itnoc" },
+ { .compatible = "qcom,coresight-tnoc" },
{}
};
-MODULE_DEVICE_TABLE(of, itnoc_of_match);
+MODULE_DEVICE_TABLE(of, tnoc_of_match);
-static struct platform_driver itnoc_driver = {
- .probe = itnoc_probe,
- .remove = itnoc_remove,
+static struct platform_driver tnoc_platform_driver = {
+ .probe = tnoc_platform_probe,
+ .remove = tnoc_platform_remove,
.driver = {
- .name = "coresight-itnoc",
- .of_match_table = itnoc_of_match,
+ .name = "coresight-tnoc",
+ .of_match_table = tnoc_of_match,
.suppress_bind_attrs = true,
- .pm = &itnoc_dev_pm_ops,
+ .pm = &tnoc_dev_pm_ops,
},
};
static int __init tnoc_init(void)
{
- return coresight_init_driver("tnoc", &trace_noc_driver, &itnoc_driver);
+ return coresight_init_driver("tnoc", &trace_noc_driver, &tnoc_platform_driver);
}
static void __exit tnoc_exit(void)
{
- coresight_remove_driver(&trace_noc_driver, &itnoc_driver);
+ coresight_remove_driver(&trace_noc_driver, &tnoc_platform_driver);
}
module_init(tnoc_init);
module_exit(tnoc_exit);
--
2.34.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v7 3/5] arm64: dts: qcom: kaanapali: bind traceNoC on the platform bus
2026-11-10 1:21 [PATCH v7 0/5] Fix traceNoC probe issue on multiple QCOM platforms Jie Gan
2026-11-10 1:21 ` [PATCH v7 1/5] dt-bindings: arm: coresight-tnoc: Bind on platform bus instead of AMBA Jie Gan
2026-11-10 1:21 ` [PATCH v7 2/5] coresight: tnoc: Bind Aggregator TNOC on the platform bus Jie Gan
@ 2026-11-10 1:21 ` Jie Gan
2026-11-10 1:21 ` [PATCH v7 4/5] arm64: dts: qcom: sm8750: " Jie Gan
` (3 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Jie Gan @ 2026-11-10 1:21 UTC (permalink / raw)
To: Suzuki K Poulose, Mike Leach, James Clark, Leo Yan, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Tingwei Zhang, Yuanfang Zhang,
Alexander Shishkin, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Jingyi Wang
Cc: Jie Gan, linux-arm-msm, coresight, linux-arm-kernel, devicetree,
linux-kernel, Konrad Dybcio
The traceNoC node used the "qcom,coresight-tnoc", "arm,primecell"
compatible, which places the device on the AMBA bus. To bind an AMBA
device, the bus reads the peripheral and component ID registers (PID/CID)
at the top of the device's register block and matches them against the
primecell ID. The traceNoC exposes the CID registers, but the Component ID
value returned by the hardware is 0x00000000 instead of a valid AMBA
Component ID, so the match never succeeds, the AMBA probe fails, and the
device is left stuck in deferred probe indefinitely.
Drop the "arm,primecell" entry and use the standalone "qcom,coresight-tnoc"
compatible, which binds via the platform driver by compatible string and
does not rely on the component ID register at all. This lets the device
probe on hardware that does not return a valid CID, while remaining an
Aggregator TNOC that retains ATID functionality.
Fixes: f73959d86c15 ("arm64: dts: qcom: kaanapali: add coresight nodes")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Jie Gan <jie.gan@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/kaanapali.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/kaanapali.dtsi b/arch/arm64/boot/dts/qcom/kaanapali.dtsi
index e48a179d0722..de135eee0aed 100644
--- a/arch/arm64/boot/dts/qcom/kaanapali.dtsi
+++ b/arch/arm64/boot/dts/qcom/kaanapali.dtsi
@@ -5414,7 +5414,7 @@ tpdm_pcie_rscc_out: endpoint {
};
tn@111b8000 {
- compatible = "qcom,coresight-tnoc", "arm,primecell";
+ compatible = "qcom,coresight-tnoc";
reg = <0x0 0x111b8000 0x0 0x4200>;
clocks = <&aoss_qmp>;
--
2.34.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v7 4/5] arm64: dts: qcom: sm8750: bind traceNoC on the platform bus
2026-11-10 1:21 [PATCH v7 0/5] Fix traceNoC probe issue on multiple QCOM platforms Jie Gan
` (2 preceding siblings ...)
2026-11-10 1:21 ` [PATCH v7 3/5] arm64: dts: qcom: kaanapali: bind traceNoC " Jie Gan
@ 2026-11-10 1:21 ` Jie Gan
2026-11-10 1:21 ` [PATCH v7 5/5] arm64: dts: qcom: glymur: use Aggregator TNOC compatible Jie Gan
` (2 subsequent siblings)
6 siblings, 0 replies; 9+ messages in thread
From: Jie Gan @ 2026-11-10 1:21 UTC (permalink / raw)
To: Suzuki K Poulose, Mike Leach, James Clark, Leo Yan, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Tingwei Zhang, Yuanfang Zhang,
Alexander Shishkin, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Jingyi Wang
Cc: Jie Gan, linux-arm-msm, coresight, linux-arm-kernel, devicetree,
linux-kernel, Konrad Dybcio
The traceNoC node used the "qcom,coresight-tnoc", "arm,primecell"
compatible, which places the device on the AMBA bus. To bind an AMBA
device, the bus reads the peripheral and component ID registers (PID/CID)
at the top of the device's register block and matches them against the
primecell ID. The traceNoC exposes the CID registers, but the Component ID
value returned by the hardware is 0x00000000 instead of a valid AMBA
Component ID, so the match never succeeds, the AMBA probe fails, and the
device is left stuck in deferred probe indefinitely.
Drop the "arm,primecell" entry and use the standalone "qcom,coresight-tnoc"
compatible, which binds via the platform driver by compatible string and
does not rely on the component ID register at all. This lets the device
probe on hardware that does not return a valid CID, while remaining an
Aggregator TNOC that retains ATID functionality.
Fixes: ebd1eb365cae ("arm64: qcom: dts: sm8750: add coresight nodes")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Jie Gan <jie.gan@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/sm8750.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/sm8750.dtsi b/arch/arm64/boot/dts/qcom/sm8750.dtsi
index cf947acc5760..13f05c0d67f6 100644
--- a/arch/arm64/boot/dts/qcom/sm8750.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8750.dtsi
@@ -5172,7 +5172,7 @@ tpdm_rdpm_cmb2_out: endpoint {
};
tn@109ab000 {
- compatible = "qcom,coresight-tnoc", "arm,primecell";
+ compatible = "qcom,coresight-tnoc";
reg = <0x0 0x109ab000 0x0 0x4200>;
clocks = <&aoss_qmp>;
--
2.34.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v7 5/5] arm64: dts: qcom: glymur: use Aggregator TNOC compatible
2026-11-10 1:21 [PATCH v7 0/5] Fix traceNoC probe issue on multiple QCOM platforms Jie Gan
` (3 preceding siblings ...)
2026-11-10 1:21 ` [PATCH v7 4/5] arm64: dts: qcom: sm8750: " Jie Gan
@ 2026-11-10 1:21 ` Jie Gan
2026-11-10 9:44 ` Abel Vesa
2026-11-10 11:46 ` [PATCH v7 0/5] Fix traceNoC probe issue on multiple QCOM platforms Suzuki K Poulose
2026-11-10 15:46 ` Rob Herring
6 siblings, 1 reply; 9+ messages in thread
From: Jie Gan @ 2026-11-10 1:21 UTC (permalink / raw)
To: Suzuki K Poulose, Mike Leach, James Clark, Leo Yan, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Tingwei Zhang, Yuanfang Zhang,
Alexander Shishkin, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Jingyi Wang
Cc: Jie Gan, linux-arm-msm, coresight, linux-arm-kernel, devicetree,
linux-kernel, Konrad Dybcio
The traceNoC node is the system-level Aggregator TNOC, so it must own a
valid ATID that tags the whole aggregation path. It was marked compatible
with "qcom,coresight-itnoc", an Interconnect TNOC, which is never assigned
an ATID. As a result the aggregator had no trace ID and could not tag the
merged trace.
An Interconnect TNOC is a subsystem-level aggregator: it merges trace from
the ATB sources within its subsystem (TPDMs and other ATB masters) and
forwards the combined stream to the system-level Aggregator TNOC. It
carries no ATID of its own, because the Aggregator TNOC downstream in the
path already owns the ATID.
Switch the node to "qcom,coresight-tnoc" so it is described as the
Aggregator TNOC it is and is assigned a system trace ID. Rename the node
to "tn" and use the "apb_pclk" clock name as required by the Aggregator
TNOC binding.
Fixes: 1f7d0c42a08d ("arm64: dts: qcom: glymur: add coresight nodes")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Jie Gan <jie.gan@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/glymur.dtsi | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/glymur.dtsi b/arch/arm64/boot/dts/qcom/glymur.dtsi
index 65a398c0a992..d94068aaa342 100644
--- a/arch/arm64/boot/dts/qcom/glymur.dtsi
+++ b/arch/arm64/boot/dts/qcom/glymur.dtsi
@@ -7269,12 +7269,12 @@ qm_tpdm_out: endpoint {
};
};
- itnoc@11200000 {
- compatible = "qcom,coresight-itnoc";
+ tn@11200000 {
+ compatible = "qcom,coresight-tnoc";
reg = <0x0 0x11200000 0x0 0x3c00>;
clocks = <&aoss_qmp>;
- clock-names = "apb";
+ clock-names = "apb_pclk";
in-ports {
#address-cells = <1>;
--
2.34.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v7 5/5] arm64: dts: qcom: glymur: use Aggregator TNOC compatible
2026-11-10 1:21 ` [PATCH v7 5/5] arm64: dts: qcom: glymur: use Aggregator TNOC compatible Jie Gan
@ 2026-11-10 9:44 ` Abel Vesa
0 siblings, 0 replies; 9+ messages in thread
From: Abel Vesa @ 2026-11-10 9:44 UTC (permalink / raw)
To: Jie Gan
Cc: Suzuki K Poulose, Mike Leach, James Clark, Leo Yan, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Tingwei Zhang, Yuanfang Zhang,
Alexander Shishkin, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Jingyi Wang, linux-arm-msm, coresight, linux-arm-kernel,
devicetree, linux-kernel, Konrad Dybcio
On 26-11-10 09:21:18, Jie Gan wrote:
> The traceNoC node is the system-level Aggregator TNOC, so it must own a
> valid ATID that tags the whole aggregation path. It was marked compatible
> with "qcom,coresight-itnoc", an Interconnect TNOC, which is never assigned
> an ATID. As a result the aggregator had no trace ID and could not tag the
> merged trace.
>
> An Interconnect TNOC is a subsystem-level aggregator: it merges trace from
> the ATB sources within its subsystem (TPDMs and other ATB masters) and
> forwards the combined stream to the system-level Aggregator TNOC. It
> carries no ATID of its own, because the Aggregator TNOC downstream in the
> path already owns the ATID.
>
> Switch the node to "qcom,coresight-tnoc" so it is described as the
> Aggregator TNOC it is and is assigned a system trace ID. Rename the node
> to "tn" and use the "apb_pclk" clock name as required by the Aggregator
> TNOC binding.
>
> Fixes: 1f7d0c42a08d ("arm64: dts: qcom: glymur: add coresight nodes")
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> Signed-off-by: Jie Gan <jie.gan@oss.qualcomm.com>
Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v7 0/5] Fix traceNoC probe issue on multiple QCOM platforms
2026-11-10 1:21 [PATCH v7 0/5] Fix traceNoC probe issue on multiple QCOM platforms Jie Gan
` (4 preceding siblings ...)
2026-11-10 1:21 ` [PATCH v7 5/5] arm64: dts: qcom: glymur: use Aggregator TNOC compatible Jie Gan
@ 2026-11-10 11:46 ` Suzuki K Poulose
2026-11-10 15:46 ` Rob Herring
6 siblings, 0 replies; 9+ messages in thread
From: Suzuki K Poulose @ 2026-11-10 11:46 UTC (permalink / raw)
To: Mike Leach, James Clark, Leo Yan, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Tingwei Zhang, Yuanfang Zhang,
Alexander Shishkin, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Jingyi Wang, Jie Gan
Cc: Suzuki K Poulose, linux-arm-msm, coresight, linux-arm-kernel,
devicetree, linux-kernel, Konrad Dybcio, Krzysztof Kozlowski
On Tue, 10 Nov 2026 09:21:13 +0800, Jie Gan wrote:
> The CoreSight TNOC (Trace Network-On-Chip) binding so far only allowed the
> two-string AMBA form "qcom,coresight-tnoc", "arm,primecell". That form
> forces the device onto the AMBA bus, where the driver must read the
> peripheral ID from the device registers during probe. On several QCOM
> platforms this AMBA peripheral-ID probing fails, so the traceNoC device
> never probes and its trace path is unavailable.
>
> [...]
Applied, thanks!
[1/5] dt-bindings: arm: coresight-tnoc: Bind on platform bus instead of AMBA
https://git.kernel.org/coresight/c/76e192f4d40a
[2/5] coresight: tnoc: Bind Aggregator TNOC on the platform bus
https://git.kernel.org/coresight/c/4d443f2e0956
[3/5] arm64: dts: qcom: kaanapali: bind traceNoC on the platform bus
https://git.kernel.org/coresight/c/50e7796ab751
[4/5] arm64: dts: qcom: sm8750: bind traceNoC on the platform bus
https://git.kernel.org/coresight/c/f599d281541e
[5/5] arm64: dts: qcom: glymur: use Aggregator TNOC compatible
https://git.kernel.org/coresight/c/1352ce9c99bd
Best regards,
--
Suzuki K Poulose <suzuki.poulose@arm.com>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v7 0/5] Fix traceNoC probe issue on multiple QCOM platforms
2026-11-10 1:21 [PATCH v7 0/5] Fix traceNoC probe issue on multiple QCOM platforms Jie Gan
` (5 preceding siblings ...)
2026-11-10 11:46 ` [PATCH v7 0/5] Fix traceNoC probe issue on multiple QCOM platforms Suzuki K Poulose
@ 2026-11-10 15:46 ` Rob Herring
6 siblings, 0 replies; 9+ messages in thread
From: Rob Herring @ 2026-11-10 15:46 UTC (permalink / raw)
To: Jie Gan
Cc: Suzuki K Poulose, Mike Leach, James Clark, Leo Yan,
Krzysztof Kozlowski, Conor Dooley, Tingwei Zhang, Yuanfang Zhang,
Alexander Shishkin, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Jingyi Wang, linux-arm-msm, coresight, linux-arm-kernel,
devicetree, linux-kernel, Konrad Dybcio, Krzysztof Kozlowski
On Tue, Nov 10, 2026 at 09:21:13AM +0800, Jie Gan wrote:
> The CoreSight TNOC (Trace Network-On-Chip) binding so far only allowed the
> two-string AMBA form "qcom,coresight-tnoc", "arm,primecell". That form
> forces the device onto the AMBA bus, where the driver must read the
> peripheral ID from the device registers during probe. On several QCOM
> platforms this AMBA peripheral-ID probing fails, so the traceNoC device
> never probes and its trace path is unavailable.
But it works fine on some platforms? We have a property to override the
peripheral-ID which would solve your issue. That would be much simpler
and avoid the ABI break on any of the working platforms.
But this is already applied and it's not any platform I use, so I don't
really care.
Rob
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2026-11-10 15:46 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-10 1:21 [PATCH v7 0/5] Fix traceNoC probe issue on multiple QCOM platforms Jie Gan
2026-11-10 1:21 ` [PATCH v7 1/5] dt-bindings: arm: coresight-tnoc: Bind on platform bus instead of AMBA Jie Gan
2026-11-10 1:21 ` [PATCH v7 2/5] coresight: tnoc: Bind Aggregator TNOC on the platform bus Jie Gan
2026-11-10 1:21 ` [PATCH v7 3/5] arm64: dts: qcom: kaanapali: bind traceNoC " Jie Gan
2026-11-10 1:21 ` [PATCH v7 4/5] arm64: dts: qcom: sm8750: " Jie Gan
2026-11-10 1:21 ` [PATCH v7 5/5] arm64: dts: qcom: glymur: use Aggregator TNOC compatible Jie Gan
2026-11-10 9:44 ` Abel Vesa
2026-11-10 11:46 ` [PATCH v7 0/5] Fix traceNoC probe issue on multiple QCOM platforms Suzuki K Poulose
2026-11-10 15:46 ` Rob Herring
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®