arch/arm64/boot/dts/qcom/sm8650.dtsi | 165 +++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+)
Add coresight components: Funnel, ETE and ETF for SM8650.
Signed-off-by: Yuanfang Zhang <quic_yuanfang@quicinc.com>
---
Changes in v2:
- Update compatible for funnel and etf.
- remove unnecessary property: reg-names and arm,primecell-periphid.
- Link to v1: https://lore.kernel.org/r/20241210-sm8650-cs-dt-v1-1-269693451584@quicinc.com
---
arch/arm64/boot/dts/qcom/sm8650.dtsi | 165 +++++++++++++++++++++++++++++++++++
1 file changed, 165 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sm8650.dtsi b/arch/arm64/boot/dts/qcom/sm8650.dtsi
index 25e47505adcb790d09f1d2726386438487255824..76620d478e872a2b725693dc32364e2a183572b7 100644
--- a/arch/arm64/boot/dts/qcom/sm8650.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8650.dtsi
@@ -5654,6 +5654,171 @@ compute-cb@12 {
};
};
};
+
+ ete0 {
+ compatible = "arm,embedded-trace-extension";
+
+ cpu = <&cpu0>;
+ qcom,skip-power-up;
+
+ out-ports {
+ port {
+ ete0_out_funnel_ete: endpoint {
+ remote-endpoint = <&funnel_ete_in_ete0>;
+ };
+ };
+ };
+ };
+
+ funnel_ete {
+ compatible = "arm,coresight-static-funnel";
+
+ in-ports {
+ port@0 {
+ reg = <0>;
+
+ funnel_ete_in_ete0: endpoint {
+ remote-endpoint = <&ete0_out_funnel_ete>;
+ };
+ };
+ };
+
+ out-ports {
+ port {
+ funnel_ete_out_funnel_apss: endpoint {
+ remote-endpoint = <&funnel_apss_in_funnel_ete>;
+ };
+ };
+ };
+ };
+
+ funnel@13810000 {
+ compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
+
+ reg = <0x0 0x13810000 0x0 0x1000>;
+
+ clocks = <&aoss_qmp>;
+ clock-names = "apb_pclk";
+
+ in-ports {
+ port@0 {
+ reg = <0>;
+
+ funnel_apss_in_funnel_ete: endpoint {
+ remote-endpoint = <&funnel_ete_out_funnel_apss>;
+ };
+ };
+ };
+
+ out-ports {
+ port {
+ funnel_apss_out_funnel_in1: endpoint {
+ remote-endpoint = <&funnel_in1_in_funnel_apss>;
+ };
+ };
+ };
+ };
+
+ funnel@10042000 {
+ compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
+
+ reg = <0x0 0x10042000 0x0 0x1000>;
+
+ clocks = <&aoss_qmp>;
+ clock-names = "apb_pclk";
+
+ in-ports {
+ port@4 {
+ reg = <4>;
+
+ funnel_in1_in_funnel_apss: endpoint {
+ remote-endpoint = <&funnel_apss_out_funnel_in1>;
+ };
+ };
+ };
+
+ out-ports {
+ port {
+ funnel_in1_out_funnel_qdss: endpoint {
+ remote-endpoint = <&funnel_qdss_in_funnel_in1>;
+ };
+ };
+ };
+ };
+
+ funnel@10045000 {
+ compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
+
+ reg = <0x0 0x10045000 0x0 0x1000>;
+
+ clocks = <&aoss_qmp>;
+ clock-names = "apb_pclk";
+
+ in-ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@1 {
+ reg = <1>;
+
+ funnel_qdss_in_funnel_in1: endpoint {
+ remote-endpoint = <&funnel_in1_out_funnel_qdss>;
+ };
+ };
+ };
+
+ out-ports {
+ port {
+ funnel_qdss_out_funnel_aoss: endpoint {
+ remote-endpoint = <&funnel_aoss_in_funnel_qdss>;
+ };
+ };
+ };
+ };
+
+ funnel@10b04000 {
+ compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
+
+ reg = <0x0 0x10b04000 0x0 0x1000>;
+
+ clocks = <&aoss_qmp>;
+ clock-names = "apb_pclk";
+
+ in-ports {
+ port@7 {
+ reg = <7>;
+
+ funnel_aoss_in_funnel_qdss: endpoint {
+ remote-endpoint = <&funnel_qdss_out_funnel_aoss>;
+ };
+ };
+ };
+
+ out-ports {
+ port {
+ funnel_aoss_out_tmc_etf: endpoint {
+ remote-endpoint = <&tmc_etf_in_funnel_aoss>;
+ };
+ };
+ };
+ };
+
+ tmc@10b05000 {
+ compatible = "arm,coresight-tmc", "arm,primecell";
+
+ reg = <0x0 0x10b05000 0x0 0x1000>;
+
+ clocks = <&aoss_qmp>;
+ clock-names = "apb_pclk";
+
+ in-ports {
+ port {
+ tmc_etf_in_funnel_aoss: endpoint {
+ remote-endpoint = <&funnel_aoss_out_tmc_etf>;
+ };
+ };
+ };
+ };
};
thermal-zones {
---
base-commit: fac04efc5c793dccbd07e2d59af9f90b7fc0dca4
change-id: 20241209-sm8650-cs-dt-ad649dcfa5e8
Best regards,
--
Yuanfang Zhang <quic_yuanfang@quicinc.com>
On 10/12/2024 09:23, Yuanfang Zhang wrote: > Add coresight components: Funnel, ETE and ETF for SM8650. > > Signed-off-by: Yuanfang Zhang <quic_yuanfang@quicinc.com> > --- Please use subject prefixes matching the subsystem. You can get them for example with `git log --oneline -- DIRECTORY_OR_FILE` on the directory your patch is touching. For bindings, the preferred subjects are explained here: https://www.kernel.org/doc/html/latest/devicetree/bindings/submitting-patches.html#i-for-patch-submitters > Changes in v2: > - Update compatible for funnel and etf. > - remove unnecessary property: reg-names and arm,primecell-periphid. > - Link to v1: https://lore.kernel.org/r/20241210-sm8650-cs-dt-v1-1-269693451584@quicinc.com > --- > arch/arm64/boot/dts/qcom/sm8650.dtsi | 165 +++++++++++++++++++++++++++++++++++ > 1 file changed, 165 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/sm8650.dtsi b/arch/arm64/boot/dts/qcom/sm8650.dtsi > index 25e47505adcb790d09f1d2726386438487255824..76620d478e872a2b725693dc32364e2a183572b7 100644 > --- a/arch/arm64/boot/dts/qcom/sm8650.dtsi > +++ b/arch/arm64/boot/dts/qcom/sm8650.dtsi > @@ -5654,6 +5654,171 @@ compute-cb@12 { > }; > }; > }; > + > + ete0 { ete or ete-0 > + compatible = "arm,embedded-trace-extension"; > + > + cpu = <&cpu0>; > + qcom,skip-power-up; > + > + out-ports { > + port { > + ete0_out_funnel_ete: endpoint { > + remote-endpoint = <&funnel_ete_in_ete0>; > + }; > + }; > + }; > + }; > + > + funnel_ete { Follow DTS coding style. Don't send us your downstream code. > + compatible = "arm,coresight-static-funnel"; > + > + in-ports { > + port@0 { > + reg = <0>; > + > + funnel_ete_in_ete0: endpoint { > + remote-endpoint = <&ete0_out_funnel_ete>; > + }; > + }; > + }; > + > + out-ports { > + port { > + funnel_ete_out_funnel_apss: endpoint { > + remote-endpoint = <&funnel_apss_in_funnel_ete>; > + }; > + }; > + }; > + }; > + > + funnel@13810000 { This is all wrongly placed. And tools would tell you that. But anyway, do not introduce different style. Look how all other nodes are placed. It does not look like you tested the DTS against bindings. Please run `make dtbs_check W=1` (see Documentation/devicetree/bindings/writing-schema.rst or https://www.linaro.org/blog/tips-and-tricks-for-validating-devicetree-sources-with-the-devicetree-schema/ for instructions). > + compatible = "arm,coresight-dynamic-funnel", "arm,primecell"; > + > + reg = <0x0 0x13810000 0x0 0x1000>; > + > + clocks = <&aoss_qmp>; > + clock-names = "apb_pclk"; > + > + in-ports { > + port@0 { > + reg = <0>; > + > + funnel_apss_in_funnel_ete: endpoint { > + remote-endpoint = <&funnel_ete_out_funnel_apss>; > + }; > + }; > + }; > + > + out-ports { > + port { > + funnel_apss_out_funnel_in1: endpoint { > + remote-endpoint = <&funnel_in1_in_funnel_apss>; > + }; > + }; > + }; > + }; > + > + funnel@10042000 { > + compatible = "arm,coresight-dynamic-funnel", "arm,primecell"; > + > + reg = <0x0 0x10042000 0x0 0x1000>; > + > + clocks = <&aoss_qmp>; > + clock-names = "apb_pclk"; > + > + in-ports { > + port@4 { > + reg = <4>; > + > + funnel_in1_in_funnel_apss: endpoint { > + remote-endpoint = <&funnel_apss_out_funnel_in1>; > + }; > + }; > + }; > + > + out-ports { > + port { > + funnel_in1_out_funnel_qdss: endpoint { > + remote-endpoint = <&funnel_qdss_in_funnel_in1>; > + }; > + }; > + }; > + }; > + > + funnel@10045000 { > + compatible = "arm,coresight-dynamic-funnel", "arm,primecell"; > + > + reg = <0x0 0x10045000 0x0 0x1000>; > + > + clocks = <&aoss_qmp>; > + clock-names = "apb_pclk"; > + > + in-ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@1 { > + reg = <1>; > + > + funnel_qdss_in_funnel_in1: endpoint { > + remote-endpoint = <&funnel_in1_out_funnel_qdss>; > + }; > + }; > + }; > + > + out-ports { > + port { > + funnel_qdss_out_funnel_aoss: endpoint { > + remote-endpoint = <&funnel_aoss_in_funnel_qdss>; > + }; > + }; > + }; > + }; > + > + funnel@10b04000 { > + compatible = "arm,coresight-dynamic-funnel", "arm,primecell"; > + > + reg = <0x0 0x10b04000 0x0 0x1000>; > + > + clocks = <&aoss_qmp>; > + clock-names = "apb_pclk"; > + > + in-ports { It does not look like you tested the DTS against bindings. Please run `make dtbs_check W=1` (see Documentation/devicetree/bindings/writing-schema.rst or https://www.linaro.org/blog/tips-and-tricks-for-validating-devicetree-sources-with-the-devicetree-schema/ for instructions). > + port@7 { > + reg = <7>; > + > + funnel_aoss_in_funnel_qdss: endpoint { > + remote-endpoint = <&funnel_qdss_out_funnel_aoss>; > + }; > + }; > + }; > + Best regards, Krzysztof
On 10.12.2024 9:23 AM, Yuanfang Zhang wrote: > Add coresight components: Funnel, ETE and ETF for SM8650. > > Signed-off-by: Yuanfang Zhang <quic_yuanfang@quicinc.com> > --- > Changes in v2: > - Update compatible for funnel and etf. > - remove unnecessary property: reg-names and arm,primecell-periphid. > - Link to v1: https://lore.kernel.org/r/20241210-sm8650-cs-dt-v1-1-269693451584@quicinc.com > --- > arch/arm64/boot/dts/qcom/sm8650.dtsi | 165 +++++++++++++++++++++++++++++++++++ > 1 file changed, 165 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/sm8650.dtsi b/arch/arm64/boot/dts/qcom/sm8650.dtsi > index 25e47505adcb790d09f1d2726386438487255824..76620d478e872a2b725693dc32364e2a183572b7 100644 > --- a/arch/arm64/boot/dts/qcom/sm8650.dtsi > +++ b/arch/arm64/boot/dts/qcom/sm8650.dtsi > @@ -5654,6 +5654,171 @@ compute-cb@12 { > }; > }; > }; > + > + ete0 { > + compatible = "arm,embedded-trace-extension"; > + > + cpu = <&cpu0>; > + qcom,skip-power-up; > + > + out-ports { > + port { > + ete0_out_funnel_ete: endpoint { > + remote-endpoint = <&funnel_ete_in_ete0>; > + }; > + }; > + }; > + }; > + > + funnel_ete { Node names must not contain underscores, use '-' instead Also, nodes without a reg property/unit address don't belong under /soc Konrad
Hi, On 10/12/2024 09:23, Yuanfang Zhang wrote: > Add coresight components: Funnel, ETE and ETF for SM8650. Is there a way to validate those are working fine ? Thanks, Neil > > Signed-off-by: Yuanfang Zhang <quic_yuanfang@quicinc.com> > --- > Changes in v2: > - Update compatible for funnel and etf. > - remove unnecessary property: reg-names and arm,primecell-periphid. > - Link to v1: https://lore.kernel.org/r/20241210-sm8650-cs-dt-v1-1-269693451584@quicinc.com > --- > arch/arm64/boot/dts/qcom/sm8650.dtsi | 165 +++++++++++++++++++++++++++++++++++ > 1 file changed, 165 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/sm8650.dtsi b/arch/arm64/boot/dts/qcom/sm8650.dtsi > index 25e47505adcb790d09f1d2726386438487255824..76620d478e872a2b725693dc32364e2a183572b7 100644 > --- a/arch/arm64/boot/dts/qcom/sm8650.dtsi > +++ b/arch/arm64/boot/dts/qcom/sm8650.dtsi > @@ -5654,6 +5654,171 @@ compute-cb@12 { > }; > }; > }; > + > + ete0 { > + compatible = "arm,embedded-trace-extension"; > + > + cpu = <&cpu0>; > + qcom,skip-power-up; > + > + out-ports { > + port { > + ete0_out_funnel_ete: endpoint { > + remote-endpoint = <&funnel_ete_in_ete0>; > + }; > + }; > + }; > + }; > + > + funnel_ete { > + compatible = "arm,coresight-static-funnel"; > + > + in-ports { > + port@0 { > + reg = <0>; > + > + funnel_ete_in_ete0: endpoint { > + remote-endpoint = <&ete0_out_funnel_ete>; > + }; > + }; > + }; > + > + out-ports { > + port { > + funnel_ete_out_funnel_apss: endpoint { > + remote-endpoint = <&funnel_apss_in_funnel_ete>; > + }; > + }; > + }; > + }; > + > + funnel@13810000 { > + compatible = "arm,coresight-dynamic-funnel", "arm,primecell"; > + > + reg = <0x0 0x13810000 0x0 0x1000>; > + > + clocks = <&aoss_qmp>; > + clock-names = "apb_pclk"; > + > + in-ports { > + port@0 { > + reg = <0>; > + > + funnel_apss_in_funnel_ete: endpoint { > + remote-endpoint = <&funnel_ete_out_funnel_apss>; > + }; > + }; > + }; > + > + out-ports { > + port { > + funnel_apss_out_funnel_in1: endpoint { > + remote-endpoint = <&funnel_in1_in_funnel_apss>; > + }; > + }; > + }; > + }; > + > + funnel@10042000 { > + compatible = "arm,coresight-dynamic-funnel", "arm,primecell"; > + > + reg = <0x0 0x10042000 0x0 0x1000>; > + > + clocks = <&aoss_qmp>; > + clock-names = "apb_pclk"; > + > + in-ports { > + port@4 { > + reg = <4>; > + > + funnel_in1_in_funnel_apss: endpoint { > + remote-endpoint = <&funnel_apss_out_funnel_in1>; > + }; > + }; > + }; > + > + out-ports { > + port { > + funnel_in1_out_funnel_qdss: endpoint { > + remote-endpoint = <&funnel_qdss_in_funnel_in1>; > + }; > + }; > + }; > + }; > + > + funnel@10045000 { > + compatible = "arm,coresight-dynamic-funnel", "arm,primecell"; > + > + reg = <0x0 0x10045000 0x0 0x1000>; > + > + clocks = <&aoss_qmp>; > + clock-names = "apb_pclk"; > + > + in-ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@1 { > + reg = <1>; > + > + funnel_qdss_in_funnel_in1: endpoint { > + remote-endpoint = <&funnel_in1_out_funnel_qdss>; > + }; > + }; > + }; > + > + out-ports { > + port { > + funnel_qdss_out_funnel_aoss: endpoint { > + remote-endpoint = <&funnel_aoss_in_funnel_qdss>; > + }; > + }; > + }; > + }; > + > + funnel@10b04000 { > + compatible = "arm,coresight-dynamic-funnel", "arm,primecell"; > + > + reg = <0x0 0x10b04000 0x0 0x1000>; > + > + clocks = <&aoss_qmp>; > + clock-names = "apb_pclk"; > + > + in-ports { > + port@7 { > + reg = <7>; > + > + funnel_aoss_in_funnel_qdss: endpoint { > + remote-endpoint = <&funnel_qdss_out_funnel_aoss>; > + }; > + }; > + }; > + > + out-ports { > + port { > + funnel_aoss_out_tmc_etf: endpoint { > + remote-endpoint = <&tmc_etf_in_funnel_aoss>; > + }; > + }; > + }; > + }; > + > + tmc@10b05000 { > + compatible = "arm,coresight-tmc", "arm,primecell"; > + > + reg = <0x0 0x10b05000 0x0 0x1000>; > + > + clocks = <&aoss_qmp>; > + clock-names = "apb_pclk"; > + > + in-ports { > + port { > + tmc_etf_in_funnel_aoss: endpoint { > + remote-endpoint = <&funnel_aoss_out_tmc_etf>; > + }; > + }; > + }; > + }; > }; > > thermal-zones { > > --- > base-commit: fac04efc5c793dccbd07e2d59af9f90b7fc0dca4 > change-id: 20241209-sm8650-cs-dt-ad649dcfa5e8 > > Best regards,
On 12/11/2024 6:48 PM, neil.armstrong@linaro.org wrote: > Hi, > > On 10/12/2024 09:23, Yuanfang Zhang wrote: >> Add coresight components: Funnel, ETE and ETF for SM8650. > > Is there a way to validate those are working fine ? > > Thanks, > Neil > Yes, these can be verified on Snapdragon 8Gen3 platforms, after boot up, these nodes can be found under /sys/bus/coresight/devices/. thanks, yuanfang >> >> Signed-off-by: Yuanfang Zhang <quic_yuanfang@quicinc.com> >> --- >> Changes in v2: >> - Update compatible for funnel and etf. >> - remove unnecessary property: reg-names and arm,primecell-periphid. >> - Link to v1: https://lore.kernel.org/r/20241210-sm8650-cs-dt-v1-1-269693451584@quicinc.com >> --- >> arch/arm64/boot/dts/qcom/sm8650.dtsi | 165 +++++++++++++++++++++++++++++++++++ >> 1 file changed, 165 insertions(+) >> >> diff --git a/arch/arm64/boot/dts/qcom/sm8650.dtsi b/arch/arm64/boot/dts/qcom/sm8650.dtsi >> index 25e47505adcb790d09f1d2726386438487255824..76620d478e872a2b725693dc32364e2a183572b7 100644 >> --- a/arch/arm64/boot/dts/qcom/sm8650.dtsi >> +++ b/arch/arm64/boot/dts/qcom/sm8650.dtsi >> @@ -5654,6 +5654,171 @@ compute-cb@12 { >> }; >> }; >> }; >> + >> + ete0 { >> + compatible = "arm,embedded-trace-extension"; >> + >> + cpu = <&cpu0>; >> + qcom,skip-power-up; >> + >> + out-ports { >> + port { >> + ete0_out_funnel_ete: endpoint { >> + remote-endpoint = <&funnel_ete_in_ete0>; >> + }; >> + }; >> + }; >> + }; >> + >> + funnel_ete { >> + compatible = "arm,coresight-static-funnel"; >> + >> + in-ports { >> + port@0 { >> + reg = <0>; >> + >> + funnel_ete_in_ete0: endpoint { >> + remote-endpoint = <&ete0_out_funnel_ete>; >> + }; >> + }; >> + }; >> + >> + out-ports { >> + port { >> + funnel_ete_out_funnel_apss: endpoint { >> + remote-endpoint = <&funnel_apss_in_funnel_ete>; >> + }; >> + }; >> + }; >> + }; >> + >> + funnel@13810000 { >> + compatible = "arm,coresight-dynamic-funnel", "arm,primecell"; >> + >> + reg = <0x0 0x13810000 0x0 0x1000>; >> + >> + clocks = <&aoss_qmp>; >> + clock-names = "apb_pclk"; >> + >> + in-ports { >> + port@0 { >> + reg = <0>; >> + >> + funnel_apss_in_funnel_ete: endpoint { >> + remote-endpoint = <&funnel_ete_out_funnel_apss>; >> + }; >> + }; >> + }; >> + >> + out-ports { >> + port { >> + funnel_apss_out_funnel_in1: endpoint { >> + remote-endpoint = <&funnel_in1_in_funnel_apss>; >> + }; >> + }; >> + }; >> + }; >> + >> + funnel@10042000 { >> + compatible = "arm,coresight-dynamic-funnel", "arm,primecell"; >> + >> + reg = <0x0 0x10042000 0x0 0x1000>; >> + >> + clocks = <&aoss_qmp>; >> + clock-names = "apb_pclk"; >> + >> + in-ports { >> + port@4 { >> + reg = <4>; >> + >> + funnel_in1_in_funnel_apss: endpoint { >> + remote-endpoint = <&funnel_apss_out_funnel_in1>; >> + }; >> + }; >> + }; >> + >> + out-ports { >> + port { >> + funnel_in1_out_funnel_qdss: endpoint { >> + remote-endpoint = <&funnel_qdss_in_funnel_in1>; >> + }; >> + }; >> + }; >> + }; >> + >> + funnel@10045000 { >> + compatible = "arm,coresight-dynamic-funnel", "arm,primecell"; >> + >> + reg = <0x0 0x10045000 0x0 0x1000>; >> + >> + clocks = <&aoss_qmp>; >> + clock-names = "apb_pclk"; >> + >> + in-ports { >> + #address-cells = <1>; >> + #size-cells = <0>; >> + >> + port@1 { >> + reg = <1>; >> + >> + funnel_qdss_in_funnel_in1: endpoint { >> + remote-endpoint = <&funnel_in1_out_funnel_qdss>; >> + }; >> + }; >> + }; >> + >> + out-ports { >> + port { >> + funnel_qdss_out_funnel_aoss: endpoint { >> + remote-endpoint = <&funnel_aoss_in_funnel_qdss>; >> + }; >> + }; >> + }; >> + }; >> + >> + funnel@10b04000 { >> + compatible = "arm,coresight-dynamic-funnel", "arm,primecell"; >> + >> + reg = <0x0 0x10b04000 0x0 0x1000>; >> + >> + clocks = <&aoss_qmp>; >> + clock-names = "apb_pclk"; >> + >> + in-ports { >> + port@7 { >> + reg = <7>; >> + >> + funnel_aoss_in_funnel_qdss: endpoint { >> + remote-endpoint = <&funnel_qdss_out_funnel_aoss>; >> + }; >> + }; >> + }; >> + >> + out-ports { >> + port { >> + funnel_aoss_out_tmc_etf: endpoint { >> + remote-endpoint = <&tmc_etf_in_funnel_aoss>; >> + }; >> + }; >> + }; >> + }; >> + >> + tmc@10b05000 { >> + compatible = "arm,coresight-tmc", "arm,primecell"; >> + >> + reg = <0x0 0x10b05000 0x0 0x1000>; >> + >> + clocks = <&aoss_qmp>; >> + clock-names = "apb_pclk"; >> + >> + in-ports { >> + port { >> + tmc_etf_in_funnel_aoss: endpoint { >> + remote-endpoint = <&funnel_aoss_out_tmc_etf>; >> + }; >> + }; >> + }; >> + }; >> }; >> thermal-zones { >> >> --- >> base-commit: fac04efc5c793dccbd07e2d59af9f90b7fc0dca4 >> change-id: 20241209-sm8650-cs-dt-ad649dcfa5e8 >> >> Best regards, >
© 2016 - 2024 Red Hat, Inc.