2023-12-06 14:15:50

by Mao Jinlong

[permalink] [raw]
Subject: [PATCH v3 0/4] arm64: dts: qcom: Fix the warnings from coresight bindings

Fix all warnings in Qualcomm boards coming from Coresight bindings.

There are warnings below after running dtbs_check. The patches are
to fix them for Qcom boards.

funnel@3023000: 'in-ports' is a required property

etm@7c40000: 'out-ports' is a required property

etf@6047000: in-ports: '#address-cells', '#size-cells', 'port@1'
do not match any of the regexes: 'pinctrl-[0-9]+'

replicator@604a000: in-ports: '#address-cells', '#size-cells',
'port@1' do not match any of the regexes: 'pinctrl-[0-9]+'

funnel@6c2d000: out-ports: '#address-cells', '#size-cells' do not
match any of the regexes: 'pinctrl-[0-9]+'

Warning (graph_child_address): /soc@0/tpda@6004000/out-ports:
graph node has single child node 'port@0', #address-cells/#size-cells
are not necessary

Warning (graph_child_address): /soc@0/funnel@6005000/in-ports: graph
node has single child node 'port@0', #address-cells/#size-cells are
not necessary

Warning (graph_child_address): /soc@0/etf@6b05000/in-ports: graph node
has single child node 'port@0', #address-cells/#size-cells are not
necessary

Warning (graph_child_address): /soc@0/funnel@7810000/in-ports: graph
node has single child node 'port@0', #address-cells/#size-cells are
not necessary

Changes since V2:
1. Remove qcom,inst-id for remote etm.
2. Modify the node name of remote etm dt node.
3. Add space between 'endpoint' and the opening brace.

Changes since V1:
1. Add new dt binding for remote etm.
2. Add new dt node modem-etm in msm8996.dtsi

Mao Jinlong (4):
dt-bindings: arm: Add remote etm dt-binding
arm64: dts: qcom: msm8996: Fix 'in-ports' is a required property
arm64: dts: qcom: msm8998: Fix 'out-ports' is a required property
arm64: dts: qcom: Fix coresight warnings in in-ports and out-ports

.../arm/qcom,coresight-remote-etm.yaml | 51 +++++++++++++++++++
arch/arm64/boot/dts/qcom/msm8996.dtsi | 21 ++++++++
arch/arm64/boot/dts/qcom/msm8998.dtsi | 32 +++++++-----
arch/arm64/boot/dts/qcom/sdm845.dtsi | 5 +-
arch/arm64/boot/dts/qcom/sm8150.dtsi | 5 +-
arch/arm64/boot/dts/qcom/sm8250.dtsi | 24 ++-------
6 files changed, 98 insertions(+), 40 deletions(-)
create mode 100644 Documentation/devicetree/bindings/arm/qcom,coresight-remote-etm.yaml

--
2.41.0


2023-12-06 14:15:58

by Mao Jinlong

[permalink] [raw]
Subject: [PATCH v3 1/4] dt-bindings: arm: Add remote etm dt-binding

Remote ETM(Embedded Trace Macrocell) is to capture information of
the executed processor instructions of remote processors like modem.
Add new coresight-remote-etm.yaml file describing the bindings
required to define coresight remote etm in the device trees.

Signed-off-by: Mao Jinlong <[email protected]>
---
.../arm/qcom,coresight-remote-etm.yaml | 51 +++++++++++++++++++
1 file changed, 51 insertions(+)
create mode 100644 Documentation/devicetree/bindings/arm/qcom,coresight-remote-etm.yaml

diff --git a/Documentation/devicetree/bindings/arm/qcom,coresight-remote-etm.yaml b/Documentation/devicetree/bindings/arm/qcom,coresight-remote-etm.yaml
new file mode 100644
index 000000000000..6ef4a572c52d
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/qcom,coresight-remote-etm.yaml
@@ -0,0 +1,51 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/qcom,coresight-remote-etm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm Coresight Remote ETM(Embedded Trace Macrocell)
+
+maintainers:
+ - Jinlong Mao <[email protected]>
+ - Tao Zhang <[email protected]>
+
+description:
+ Support for ETM trace collection on remote processor using coresight
+ framework. Enabling this will allow turning on ETM tracing on remote
+ processor like modem processor via sysfs and collecting the trace
+ via coresight TMC sinks.
+
+properties:
+ compatible:
+ const: qcom,coresight-remote-etm
+
+ out-ports:
+ $ref: /schemas/graph.yaml#/properties/ports
+ additionalProperties: false
+
+ properties:
+ port:
+ description: Output connection to the CoreSight Trace bus.
+ $ref: /schemas/graph.yaml#/properties/port
+
+required:
+ - compatible
+ - out-ports
+
+additionalProperties: false
+
+examples:
+ - |
+ etm {
+ compatible = "qcom,coresight-remote-etm";
+
+ out-ports {
+ port {
+ modem_etm0_out_funnel_modem: endpoint {
+ remote-endpoint = <&funnel_modem_in_modem_etm0>;
+ };
+ };
+ };
+ };
+...
--
2.41.0

2023-12-06 14:16:18

by Mao Jinlong

[permalink] [raw]
Subject: [PATCH v3 3/4] arm64: dts: qcom: msm8998: Fix 'out-ports' is a required property

out-ports is a required property for coresight ETM. Add out-ports for
ETM nodes to fix the warning.

Reviewed-by: Krzysztof Kozlowski <[email protected]>
Signed-off-by: Mao Jinlong <[email protected]>
---
arch/arm64/boot/dts/qcom/msm8998.dtsi | 32 +++++++++++++++++----------
1 file changed, 20 insertions(+), 12 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/msm8998.dtsi b/arch/arm64/boot/dts/qcom/msm8998.dtsi
index b485bf925ce6..ebc5ba1b369e 100644
--- a/arch/arm64/boot/dts/qcom/msm8998.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8998.dtsi
@@ -2031,9 +2031,11 @@ etm5: etm@7c40000 {

cpu = <&CPU4>;

- port {
- etm4_out: endpoint {
- remote-endpoint = <&apss_funnel_in4>;
+ out-ports {
+ port {
+ etm4_out: endpoint {
+ remote-endpoint = <&apss_funnel_in4>;
+ };
};
};
};
@@ -2048,9 +2050,11 @@ etm6: etm@7d40000 {

cpu = <&CPU5>;

- port {
- etm5_out: endpoint {
- remote-endpoint = <&apss_funnel_in5>;
+ out-ports {
+ port {
+ etm5_out: endpoint {
+ remote-endpoint = <&apss_funnel_in5>;
+ };
};
};
};
@@ -2065,9 +2069,11 @@ etm7: etm@7e40000 {

cpu = <&CPU6>;

- port {
- etm6_out: endpoint {
- remote-endpoint = <&apss_funnel_in6>;
+ out-ports {
+ port {
+ etm6_out: endpoint {
+ remote-endpoint = <&apss_funnel_in6>;
+ };
};
};
};
@@ -2082,9 +2088,11 @@ etm8: etm@7f40000 {

cpu = <&CPU7>;

- port {
- etm7_out: endpoint {
- remote-endpoint = <&apss_funnel_in7>;
+ out-ports {
+ port {
+ etm7_out: endpoint {
+ remote-endpoint = <&apss_funnel_in7>;
+ };
};
};
};
--
2.41.0

2023-12-06 14:16:32

by Mao Jinlong

[permalink] [raw]
Subject: [PATCH v3 2/4] arm64: dts: qcom: msm8996: Fix 'in-ports' is a required property

Add the inport of funnel@3023000 to fix 'in-ports' is a required property
warning.

Signed-off-by: Mao Jinlong <[email protected]>
---
arch/arm64/boot/dts/qcom/msm8996.dtsi | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi
index 6ba9da9e6a8b..fa8ec92ce490 100644
--- a/arch/arm64/boot/dts/qcom/msm8996.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi
@@ -444,6 +444,19 @@ memory@80000000 {
reg = <0x0 0x80000000 0x0 0x0>;
};

+ etm {
+ compatible = "qcom,coresight-remote-etm";
+
+ out-ports {
+ port {
+ modem_etm_out_funnel_in2: endpoint {
+ remote-endpoint =
+ <&funnel_in2_in_modem_etm>;
+ };
+ };
+ };
+ };
+
psci {
compatible = "arm,psci-1.0";
method = "smc";
@@ -2644,6 +2657,14 @@ funnel@3023000 {
clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
clock-names = "apb_pclk", "atclk";

+ in-ports {
+ port {
+ funnel_in2_in_modem_etm: endpoint {
+ remote-endpoint =
+ <&modem_etm_out_funnel_in2>;
+ };
+ };
+ };

out-ports {
port {
--
2.41.0

2023-12-06 14:16:33

by Mao Jinlong

[permalink] [raw]
Subject: [PATCH v3 4/4] arm64: dts: qcom: Fix coresight warnings in in-ports and out-ports

When a node is only one in port or one out port, address-cells and
size-cells are not required in in-ports and out-ports. And the number
and reg of the port need to be removed.

Reviewed-by: Krzysztof Kozlowski <[email protected]>
Signed-off-by: Mao Jinlong <[email protected]>
---
arch/arm64/boot/dts/qcom/sdm845.dtsi | 5 +----
arch/arm64/boot/dts/qcom/sm8150.dtsi | 5 +----
arch/arm64/boot/dts/qcom/sm8250.dtsi | 24 ++++--------------------
3 files changed, 6 insertions(+), 28 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi
index bf5e6eb9d313..c4dbca4c15f2 100644
--- a/arch/arm64/boot/dts/qcom/sdm845.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi
@@ -3545,11 +3545,8 @@ etf_out: endpoint {
};

in-ports {
- #address-cells = <1>;
- #size-cells = <0>;

- port@1 {
- reg = <1>;
+ port {
etf_in: endpoint {
remote-endpoint =
<&merge_funnel_out>;
diff --git a/arch/arm64/boot/dts/qcom/sm8150.dtsi b/arch/arm64/boot/dts/qcom/sm8150.dtsi
index 97623af13464..7bae3bc6af06 100644
--- a/arch/arm64/boot/dts/qcom/sm8150.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8150.dtsi
@@ -2957,11 +2957,8 @@ replicator1_out: endpoint {
};

in-ports {
- #address-cells = <1>;
- #size-cells = <0>;

- port@1 {
- reg = <1>;
+ port {
replicator1_in: endpoint {
remote-endpoint = <&replicator_out1>;
};
diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
index be970472f6c4..fa4e8887d53b 100644
--- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
@@ -3095,11 +3095,8 @@ tpda@6004000 {
clock-names = "apb_pclk";

out-ports {
- #address-cells = <1>;
- #size-cells = <0>;

- port@0 {
- reg = <0>;
+ port {
tpda_out_funnel_qatb: endpoint {
remote-endpoint = <&funnel_qatb_in_tpda>;
};
@@ -3142,11 +3139,7 @@ funnel_qatb_out_funnel_in0: endpoint {
};

in-ports {
- #address-cells = <1>;
- #size-cells = <0>;
-
- port@0 {
- reg = <0>;
+ port {
funnel_qatb_in_tpda: endpoint {
remote-endpoint = <&tpda_out_funnel_qatb>;
};
@@ -3355,11 +3348,8 @@ etf_out: endpoint {
};

in-ports {
- #address-cells = <1>;
- #size-cells = <0>;

- port@0 {
- reg = <0>;
+ port {
etf_in_funnel_swao_out: endpoint {
remote-endpoint = <&funnel_swao_out_etf>;
};
@@ -3443,8 +3433,6 @@ funnel@6c2d000 {
clock-names = "apb_pclk";

out-ports {
- #address-cells = <1>;
- #size-cells = <0>;
port {
tpdm_mm_out_tpda9: endpoint {
remote-endpoint = <&tpda_9_in_tpdm_mm>;
@@ -3710,11 +3698,7 @@ funnel_apss_merg_out_funnel_in1: endpoint {
};

in-ports {
- #address-cells = <1>;
- #size-cells = <0>;
-
- port@0 {
- reg = <0>;
+ port {
funnel_apss_merg_in_funnel_apss: endpoint {
remote-endpoint = <&funnel_apss_out_funnel_apss_merg>;
};
--
2.41.0

2023-12-07 09:39:31

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v3 1/4] dt-bindings: arm: Add remote etm dt-binding

On 06/12/2023 15:14, Mao Jinlong wrote:
> Remote ETM(Embedded Trace Macrocell) is to capture information of
> the executed processor instructions of remote processors like modem.
> Add new coresight-remote-etm.yaml file describing the bindings
> required to define coresight remote etm in the device trees.
>


> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + etm {
> + compatible = "qcom,coresight-remote-etm";

Now something happened with your indentation here... was it like this
before? The guideline asks to use 2 or 4 space indentation for the
example, while 4 is preferred.

With fixed indentation in the example:

Reviewed-by: Krzysztof Kozlowski <[email protected]>


Best regards,
Krzysztof

2023-12-07 09:39:57

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v3 2/4] arm64: dts: qcom: msm8996: Fix 'in-ports' is a required property

On 06/12/2023 15:14, Mao Jinlong wrote:
> Add the inport of funnel@3023000 to fix 'in-ports' is a required property
> warning.
>
> Signed-off-by: Mao Jinlong <[email protected]>
> ---
> arch/arm64/boot/dts/qcom/msm8996.dtsi | 21 +++++++++++++++++++++
> 1 file changed, 21 insertions(+)
>

Reviewed-by: Krzysztof Kozlowski <[email protected]>

Best regards,
Krzysztof