linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 1/1] ARM: dts: imx7d: add cortex-a7 coresight component
@ 2015-06-30 14:58 Frank.Li at freescale.com
  2015-07-08 15:49 ` Zhi Li
  2015-07-13 14:07 ` Shawn Guo
  0 siblings, 2 replies; 3+ messages in thread
From: Frank.Li at freescale.com @ 2015-06-30 14:58 UTC (permalink / raw)
  To: linux-arm-kernel

From: Frank Li <Frank.Li@freescale.com>

Added etm, etb, funnel and replicator

usage example:

    echo 1 >/sys/bus/coresight/devices/30086000.etr/enable_sink
    echo 1 >/sys/bus/coresight/devices/3007c000.etm/enable_source

        coresight-tmc 30086000.etr: TMC enabled
        coresight-replicator replicator.1: REPLICATOR enabled
        coresight-tmc 30084000.tmc: TMC enabled
        coresight-funnel 30083000.funnel: FUNNEL inport 0 enabled
        coresight-funnel 30041000.funnel: FUNNEL inport 0 enabled
        coresight-etm3x 3007c000.etm: ETM tracing enabled

    etm enable here.
    trace data save at /dev/30086000.etr

    cat /dev/30086000.etr > trace.data

        coresight-tmc 30086000.etr: TMC read start
        coresight-tmc 30086000.etr: TMC read end

    use ptm2human(https://github.com/hwangcc23/ptm2human) to show trace data

    ptm2human -i trace.data

Signed-off-by: Frank Li <Frank.Li@freescale.com>
---
Change from v2 to v3
 - fix multiline comments
 - remove some reduntant space line
 - remove extra space after =
 - Remove @0

Change from V1 to V2
 - remove "0" after @
 - add comments about unused funnel input port
 - add comments about add  arm,primecell-periphid

 arch/arm/boot/dts/imx7d.dtsi | 203 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 203 insertions(+)

diff --git a/arch/arm/boot/dts/imx7d.dtsi b/arch/arm/boot/dts/imx7d.dtsi
index b4cd8fd..9014b80 100644
--- a/arch/arm/boot/dts/imx7d.dtsi
+++ b/arch/arm/boot/dts/imx7d.dtsi
@@ -121,6 +121,209 @@
 		clock-output-names = "osc";
 	};
 
+	etr at 30086000 {
+		compatible = "arm,coresight-tmc", "arm,primecell";
+		reg = <0x30086000 0x1000>;
+		clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
+		clock-names = "apb_pclk";
+
+		port {
+			etr_in_port: endpoint {
+				slave-mode;
+				remote-endpoint = <&replicator_out_port1>;
+			};
+		};
+	};
+
+	tpiu at 30087000 {
+		compatible = "arm,coresight-tpiu", "arm,primecell";
+		reg = <0x30087000 0x1000>;
+		clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
+		clock-names = "apb_pclk";
+
+		port {
+			tpiu_in_port: endpoint {
+				slave-mode;
+				remote-endpoint = <&replicator_out_port1>;
+			};
+		};
+	};
+
+	replicator {
+		/*
+		 * non-configurable replicators don't show up on the
+		 * AMBA bus.  As such no need to add "arm,primecell"
+		 */
+		compatible = "arm,coresight-replicator";
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			/* replicator output ports */
+			port at 0 {
+				reg = <0>;
+				replicator_out_port0: endpoint {
+					remote-endpoint = <&tpiu_in_port>;
+				};
+			};
+
+			port at 1 {
+				reg = <1>;
+				replicator_out_port1: endpoint {
+					remote-endpoint = <&etr_in_port>;
+				};
+			};
+
+			/* replicator input port */
+			port at 2 {
+				reg = <0>;
+				replicator_in_port0: endpoint {
+					slave-mode;
+					remote-endpoint = <&etf_out_port>;
+				};
+			};
+		};
+	};
+
+	etf at 30084000 {
+		compatible = "arm,coresight-tmc", "arm,primecell";
+		reg = <0x30084000 0x1000>;
+		clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
+		clock-names = "apb_pclk";
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port at 0 {
+				reg = <0>;
+				etf_in_port: endpoint {
+					slave-mode;
+					remote-endpoint = <&hugo_funnel_out_port0>;
+				};
+			};
+
+			port at 1 {
+				reg = <0>;
+				etf_out_port: endpoint {
+					remote-endpoint = <&replicator_in_port0>;
+				};
+			};
+		};
+	};
+
+	funnel at 30083000 {
+		compatible = "arm,coresight-funnel", "arm,primecell";
+		reg = <0x30083000 0x1000>;
+		clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
+		clock-names = "apb_pclk";
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			/* funnel input ports */
+			port at 0 {
+				reg = <0>;
+				hugo_funnel_in_port0: endpoint {
+					slave-mode;
+					remote-endpoint = <&ca_funnel_out_port0>;
+				};
+			};
+
+			port at 1 {
+				reg = <1>;
+				hugo_funnel_in_port1: endpoint {
+					slave-mode; /* M4 input */
+				};
+			};
+
+			port at 2 {
+				reg = <0>;
+				hugo_funnel_out_port0: endpoint {
+					remote-endpoint = <&etf_in_port>;
+				};
+			};
+
+			/* the other input ports are not connect to anything */
+		};
+	};
+
+	funnel at 30041000 {
+		compatible = "arm,coresight-funnel", "arm,primecell";
+		reg = <0x30041000 0x1000>;
+		clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
+		clock-names = "apb_pclk";
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			/* funnel input ports */
+			port at 0 {
+				reg = <0>;
+				ca_funnel_in_port0: endpoint {
+					slave-mode;
+					remote-endpoint = <&etm0_out_port>;
+				};
+			};
+
+			port at 1 {
+				reg = <1>;
+				ca_funnel_in_port1: endpoint {
+					slave-mode;
+					remote-endpoint = <&etm1_out_port>;
+				};
+			};
+
+			/* funnel output port */
+			port at 2 {
+				reg = <0>;
+				ca_funnel_out_port0: endpoint {
+					remote-endpoint = <&hugo_funnel_in_port0>;
+				};
+			};
+
+			/* the other input ports are not connect to anything */
+		};
+	};
+
+	etm at 3007c000 {
+		compatible = "arm,coresight-etm3x", "arm,primecell";
+		reg = <0x3007c000 0x1000>;
+		cpu = <&cpu0>;
+		clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
+		clock-names = "apb_pclk";
+
+		port {
+			etm0_out_port: endpoint {
+				remote-endpoint = <&ca_funnel_in_port0>;
+			};
+		};
+	};
+
+	etm at 3007d000 {
+		compatible = "arm,coresight-etm3x", "arm,primecell";
+		reg = <0x3007d000 0x1000>;
+
+		/*
+		 * System will hang if added nosmp in kernel command line
+		 * without arm,primecell-periphid because amba bus try to
+		 * read id and core1 power off at this time.
+		 */
+		arm,primecell-periphid = <0xbb956>;
+		cpu = <&cpu1>;
+		clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
+		clock-names = "apb_pclk";
+
+		port {
+			etm1_out_port: endpoint {
+				remote-endpoint = <&ca_funnel_in_port1>;
+			};
+		};
+	};
+
 	soc {
 		#address-cells = <1>;
 		#size-cells = <1>;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH v3 1/1] ARM: dts: imx7d: add cortex-a7 coresight component
  2015-06-30 14:58 [PATCH v3 1/1] ARM: dts: imx7d: add cortex-a7 coresight component Frank.Li at freescale.com
@ 2015-07-08 15:49 ` Zhi Li
  2015-07-13 14:07 ` Shawn Guo
  1 sibling, 0 replies; 3+ messages in thread
From: Zhi Li @ 2015-07-08 15:49 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Jun 30, 2015 at 9:58 AM,  <Frank.Li@freescale.com> wrote:
> From: Frank Li <Frank.Li@freescale.com>
>
> Added etm, etb, funnel and replicator
>
> usage example:
>
>     echo 1 >/sys/bus/coresight/devices/30086000.etr/enable_sink
>     echo 1 >/sys/bus/coresight/devices/3007c000.etm/enable_source
>
>         coresight-tmc 30086000.etr: TMC enabled
>         coresight-replicator replicator.1: REPLICATOR enabled
>         coresight-tmc 30084000.tmc: TMC enabled
>         coresight-funnel 30083000.funnel: FUNNEL inport 0 enabled
>         coresight-funnel 30041000.funnel: FUNNEL inport 0 enabled
>         coresight-etm3x 3007c000.etm: ETM tracing enabled
>
>     etm enable here.
>     trace data save at /dev/30086000.etr
>
>     cat /dev/30086000.etr > trace.data
>
>         coresight-tmc 30086000.etr: TMC read start
>         coresight-tmc 30086000.etr: TMC read end
>
>     use ptm2human(https://github.com/hwangcc23/ptm2human) to show trace data
>
>     ptm2human -i trace.data
>
> Signed-off-by: Frank Li <Frank.Li@freescale.com>

Ping.

> ---
> Change from v2 to v3
>  - fix multiline comments
>  - remove some reduntant space line
>  - remove extra space after =
>  - Remove @0
>
> Change from V1 to V2
>  - remove "0" after @
>  - add comments about unused funnel input port
>  - add comments about add  arm,primecell-periphid
>
>  arch/arm/boot/dts/imx7d.dtsi | 203 +++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 203 insertions(+)
>
> diff --git a/arch/arm/boot/dts/imx7d.dtsi b/arch/arm/boot/dts/imx7d.dtsi
> index b4cd8fd..9014b80 100644
> --- a/arch/arm/boot/dts/imx7d.dtsi
> +++ b/arch/arm/boot/dts/imx7d.dtsi
> @@ -121,6 +121,209 @@
>                 clock-output-names = "osc";
>         };
>
> +       etr at 30086000 {
> +               compatible = "arm,coresight-tmc", "arm,primecell";
> +               reg = <0x30086000 0x1000>;
> +               clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
> +               clock-names = "apb_pclk";
> +
> +               port {
> +                       etr_in_port: endpoint {
> +                               slave-mode;
> +                               remote-endpoint = <&replicator_out_port1>;
> +                       };
> +               };
> +       };
> +
> +       tpiu at 30087000 {
> +               compatible = "arm,coresight-tpiu", "arm,primecell";
> +               reg = <0x30087000 0x1000>;
> +               clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
> +               clock-names = "apb_pclk";
> +
> +               port {
> +                       tpiu_in_port: endpoint {
> +                               slave-mode;
> +                               remote-endpoint = <&replicator_out_port1>;
> +                       };
> +               };
> +       };
> +
> +       replicator {
> +               /*
> +                * non-configurable replicators don't show up on the
> +                * AMBA bus.  As such no need to add "arm,primecell"
> +                */
> +               compatible = "arm,coresight-replicator";
> +
> +               ports {
> +                       #address-cells = <1>;
> +                       #size-cells = <0>;
> +
> +                       /* replicator output ports */
> +                       port at 0 {
> +                               reg = <0>;
> +                               replicator_out_port0: endpoint {
> +                                       remote-endpoint = <&tpiu_in_port>;
> +                               };
> +                       };
> +
> +                       port at 1 {
> +                               reg = <1>;
> +                               replicator_out_port1: endpoint {
> +                                       remote-endpoint = <&etr_in_port>;
> +                               };
> +                       };
> +
> +                       /* replicator input port */
> +                       port at 2 {
> +                               reg = <0>;
> +                               replicator_in_port0: endpoint {
> +                                       slave-mode;
> +                                       remote-endpoint = <&etf_out_port>;
> +                               };
> +                       };
> +               };
> +       };
> +
> +       etf at 30084000 {
> +               compatible = "arm,coresight-tmc", "arm,primecell";
> +               reg = <0x30084000 0x1000>;
> +               clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
> +               clock-names = "apb_pclk";
> +
> +               ports {
> +                       #address-cells = <1>;
> +                       #size-cells = <0>;
> +
> +                       port at 0 {
> +                               reg = <0>;
> +                               etf_in_port: endpoint {
> +                                       slave-mode;
> +                                       remote-endpoint = <&hugo_funnel_out_port0>;
> +                               };
> +                       };
> +
> +                       port at 1 {
> +                               reg = <0>;
> +                               etf_out_port: endpoint {
> +                                       remote-endpoint = <&replicator_in_port0>;
> +                               };
> +                       };
> +               };
> +       };
> +
> +       funnel at 30083000 {
> +               compatible = "arm,coresight-funnel", "arm,primecell";
> +               reg = <0x30083000 0x1000>;
> +               clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
> +               clock-names = "apb_pclk";
> +
> +               ports {
> +                       #address-cells = <1>;
> +                       #size-cells = <0>;
> +
> +                       /* funnel input ports */
> +                       port at 0 {
> +                               reg = <0>;
> +                               hugo_funnel_in_port0: endpoint {
> +                                       slave-mode;
> +                                       remote-endpoint = <&ca_funnel_out_port0>;
> +                               };
> +                       };
> +
> +                       port at 1 {
> +                               reg = <1>;
> +                               hugo_funnel_in_port1: endpoint {
> +                                       slave-mode; /* M4 input */
> +                               };
> +                       };
> +
> +                       port at 2 {
> +                               reg = <0>;
> +                               hugo_funnel_out_port0: endpoint {
> +                                       remote-endpoint = <&etf_in_port>;
> +                               };
> +                       };
> +
> +                       /* the other input ports are not connect to anything */
> +               };
> +       };
> +
> +       funnel at 30041000 {
> +               compatible = "arm,coresight-funnel", "arm,primecell";
> +               reg = <0x30041000 0x1000>;
> +               clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
> +               clock-names = "apb_pclk";
> +
> +               ports {
> +                       #address-cells = <1>;
> +                       #size-cells = <0>;
> +
> +                       /* funnel input ports */
> +                       port at 0 {
> +                               reg = <0>;
> +                               ca_funnel_in_port0: endpoint {
> +                                       slave-mode;
> +                                       remote-endpoint = <&etm0_out_port>;
> +                               };
> +                       };
> +
> +                       port at 1 {
> +                               reg = <1>;
> +                               ca_funnel_in_port1: endpoint {
> +                                       slave-mode;
> +                                       remote-endpoint = <&etm1_out_port>;
> +                               };
> +                       };
> +
> +                       /* funnel output port */
> +                       port at 2 {
> +                               reg = <0>;
> +                               ca_funnel_out_port0: endpoint {
> +                                       remote-endpoint = <&hugo_funnel_in_port0>;
> +                               };
> +                       };
> +
> +                       /* the other input ports are not connect to anything */
> +               };
> +       };
> +
> +       etm at 3007c000 {
> +               compatible = "arm,coresight-etm3x", "arm,primecell";
> +               reg = <0x3007c000 0x1000>;
> +               cpu = <&cpu0>;
> +               clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
> +               clock-names = "apb_pclk";
> +
> +               port {
> +                       etm0_out_port: endpoint {
> +                               remote-endpoint = <&ca_funnel_in_port0>;
> +                       };
> +               };
> +       };
> +
> +       etm at 3007d000 {
> +               compatible = "arm,coresight-etm3x", "arm,primecell";
> +               reg = <0x3007d000 0x1000>;
> +
> +               /*
> +                * System will hang if added nosmp in kernel command line
> +                * without arm,primecell-periphid because amba bus try to
> +                * read id and core1 power off at this time.
> +                */
> +               arm,primecell-periphid = <0xbb956>;
> +               cpu = <&cpu1>;
> +               clocks = <&clks IMX7D_MAIN_AXI_ROOT_CLK>;
> +               clock-names = "apb_pclk";
> +
> +               port {
> +                       etm1_out_port: endpoint {
> +                               remote-endpoint = <&ca_funnel_in_port1>;
> +                       };
> +               };
> +       };
> +
>         soc {
>                 #address-cells = <1>;
>                 #size-cells = <1>;
> --
> 1.9.1
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH v3 1/1] ARM: dts: imx7d: add cortex-a7 coresight component
  2015-06-30 14:58 [PATCH v3 1/1] ARM: dts: imx7d: add cortex-a7 coresight component Frank.Li at freescale.com
  2015-07-08 15:49 ` Zhi Li
@ 2015-07-13 14:07 ` Shawn Guo
  1 sibling, 0 replies; 3+ messages in thread
From: Shawn Guo @ 2015-07-13 14:07 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Jun 30, 2015 at 10:58:11PM +0800, Frank.Li at freescale.com wrote:
> From: Frank Li <Frank.Li@freescale.com>
> 
> Added etm, etb, funnel and replicator
> 
> usage example:
> 
>     echo 1 >/sys/bus/coresight/devices/30086000.etr/enable_sink
>     echo 1 >/sys/bus/coresight/devices/3007c000.etm/enable_source
> 
>         coresight-tmc 30086000.etr: TMC enabled
>         coresight-replicator replicator.1: REPLICATOR enabled
>         coresight-tmc 30084000.tmc: TMC enabled
>         coresight-funnel 30083000.funnel: FUNNEL inport 0 enabled
>         coresight-funnel 30041000.funnel: FUNNEL inport 0 enabled
>         coresight-etm3x 3007c000.etm: ETM tracing enabled
> 
>     etm enable here.
>     trace data save at /dev/30086000.etr
> 
>     cat /dev/30086000.etr > trace.data
> 
>         coresight-tmc 30086000.etr: TMC read start
>         coresight-tmc 30086000.etr: TMC read end
> 
>     use ptm2human(https://github.com/hwangcc23/ptm2human) to show trace data
> 
>     ptm2human -i trace.data
> 
> Signed-off-by: Frank Li <Frank.Li@freescale.com>

Mathieu gave his ACK on your v2 of the patch.  You should add his ACK on
v3.  Applied with Mathieu's ACK added.

Shawn

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-07-13 14:07 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-30 14:58 [PATCH v3 1/1] ARM: dts: imx7d: add cortex-a7 coresight component Frank.Li at freescale.com
2015-07-08 15:49 ` Zhi Li
2015-07-13 14:07 ` Shawn Guo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).