457 lines
8.1 KiB
Plaintext
457 lines
8.1 KiB
Plaintext
|
// SPDX-License-Identifier: GPL-2.0
|
||
|
|
||
|
/*
|
||
|
* dtsi for Hisilicon Hi3660 Coresight
|
||
|
*
|
||
|
* Copyright (C) 2016-2018 HiSilicon Ltd.
|
||
|
*
|
||
|
* Author: Wanglai Shi <shiwanglai@hisilicon.com>
|
||
|
*
|
||
|
*/
|
||
|
/ {
|
||
|
soc {
|
||
|
/* A53 cluster internals */
|
||
|
etm@ecc40000 {
|
||
|
compatible = "arm,coresight-etm4x", "arm,primecell";
|
||
|
reg = <0 0xecc40000 0 0x1000>;
|
||
|
clocks = <&crg_ctrl HI3660_PCLK>;
|
||
|
clock-names = "apb_pclk";
|
||
|
cpu = <&cpu0>;
|
||
|
|
||
|
out-ports {
|
||
|
port {
|
||
|
etm0_out: endpoint {
|
||
|
remote-endpoint =
|
||
|
<&cluster0_funnel_in0>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
etm@ecd40000 {
|
||
|
compatible = "arm,coresight-etm4x", "arm,primecell";
|
||
|
reg = <0 0xecd40000 0 0x1000>;
|
||
|
clocks = <&crg_ctrl HI3660_PCLK>;
|
||
|
clock-names = "apb_pclk";
|
||
|
cpu = <&cpu1>;
|
||
|
|
||
|
out-ports {
|
||
|
port {
|
||
|
etm1_out: endpoint {
|
||
|
remote-endpoint =
|
||
|
<&cluster0_funnel_in1>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
etm@ece40000 {
|
||
|
compatible = "arm,coresight-etm4x", "arm,primecell";
|
||
|
reg = <0 0xece40000 0 0x1000>;
|
||
|
clocks = <&crg_ctrl HI3660_PCLK>;
|
||
|
clock-names = "apb_pclk";
|
||
|
cpu = <&cpu2>;
|
||
|
|
||
|
out-ports {
|
||
|
port {
|
||
|
etm2_out: endpoint {
|
||
|
remote-endpoint =
|
||
|
<&cluster0_funnel_in2>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
etm@ecf40000 {
|
||
|
compatible = "arm,coresight-etm4x", "arm,primecell";
|
||
|
reg = <0 0xecf40000 0 0x1000>;
|
||
|
clocks = <&crg_ctrl HI3660_PCLK>;
|
||
|
clock-names = "apb_pclk";
|
||
|
cpu = <&cpu3>;
|
||
|
|
||
|
out-ports {
|
||
|
port {
|
||
|
etm3_out: endpoint {
|
||
|
remote-endpoint =
|
||
|
<&cluster0_funnel_in3>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
funnel@ec801000 {
|
||
|
compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
|
||
|
reg = <0 0xec801000 0 0x1000>;
|
||
|
clocks = <&crg_ctrl HI3660_PCLK>;
|
||
|
clock-names = "apb_pclk";
|
||
|
|
||
|
out-ports {
|
||
|
port {
|
||
|
cluster0_funnel_out: endpoint {
|
||
|
remote-endpoint =
|
||
|
<&cluster0_etf_in>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
in-ports {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
|
||
|
port@0 {
|
||
|
reg = <0>;
|
||
|
cluster0_funnel_in0: endpoint {
|
||
|
remote-endpoint = <&etm0_out>;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
port@1 {
|
||
|
reg = <1>;
|
||
|
cluster0_funnel_in1: endpoint {
|
||
|
remote-endpoint = <&etm1_out>;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
port@2 {
|
||
|
reg = <2>;
|
||
|
cluster0_funnel_in2: endpoint {
|
||
|
remote-endpoint = <&etm2_out>;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
port@3 {
|
||
|
reg = <3>;
|
||
|
cluster0_funnel_in3: endpoint {
|
||
|
remote-endpoint = <&etm3_out>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
etf@ec802000 {
|
||
|
compatible = "arm,coresight-tmc", "arm,primecell";
|
||
|
reg = <0 0xec802000 0 0x1000>;
|
||
|
clocks = <&crg_ctrl HI3660_PCLK>;
|
||
|
clock-names = "apb_pclk";
|
||
|
|
||
|
in-ports {
|
||
|
port {
|
||
|
cluster0_etf_in: endpoint {
|
||
|
remote-endpoint =
|
||
|
<&cluster0_funnel_out>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
out-ports {
|
||
|
port {
|
||
|
cluster0_etf_out: endpoint {
|
||
|
remote-endpoint =
|
||
|
<&combo_funnel_in0>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
/* A73 cluster internals */
|
||
|
etm@ed440000 {
|
||
|
compatible = "arm,coresight-etm4x", "arm,primecell";
|
||
|
reg = <0 0xed440000 0 0x1000>;
|
||
|
clocks = <&crg_ctrl HI3660_PCLK>;
|
||
|
clock-names = "apb_pclk";
|
||
|
cpu = <&cpu4>;
|
||
|
|
||
|
out-ports {
|
||
|
port {
|
||
|
etm4_out: endpoint {
|
||
|
remote-endpoint =
|
||
|
<&cluster1_funnel_in0>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
etm@ed540000 {
|
||
|
compatible = "arm,coresight-etm4x", "arm,primecell";
|
||
|
reg = <0 0xed540000 0 0x1000>;
|
||
|
clocks = <&crg_ctrl HI3660_PCLK>;
|
||
|
clock-names = "apb_pclk";
|
||
|
cpu = <&cpu5>;
|
||
|
|
||
|
out-ports {
|
||
|
port {
|
||
|
etm5_out: endpoint {
|
||
|
remote-endpoint =
|
||
|
<&cluster1_funnel_in1>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
etm@ed640000 {
|
||
|
compatible = "arm,coresight-etm4x", "arm,primecell";
|
||
|
reg = <0 0xed640000 0 0x1000>;
|
||
|
clocks = <&crg_ctrl HI3660_PCLK>;
|
||
|
clock-names = "apb_pclk";
|
||
|
cpu = <&cpu6>;
|
||
|
|
||
|
out-ports {
|
||
|
port {
|
||
|
etm6_out: endpoint {
|
||
|
remote-endpoint =
|
||
|
<&cluster1_funnel_in2>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
etm@ed740000 {
|
||
|
compatible = "arm,coresight-etm4x", "arm,primecell";
|
||
|
reg = <0 0xed740000 0 0x1000>;
|
||
|
clocks = <&crg_ctrl HI3660_PCLK>;
|
||
|
clock-names = "apb_pclk";
|
||
|
cpu = <&cpu7>;
|
||
|
|
||
|
out-ports {
|
||
|
port {
|
||
|
etm7_out: endpoint {
|
||
|
remote-endpoint =
|
||
|
<&cluster1_funnel_in3>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
funnel@ed001000 {
|
||
|
compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
|
||
|
reg = <0 0xed001000 0 0x1000>;
|
||
|
clocks = <&crg_ctrl HI3660_PCLK>;
|
||
|
clock-names = "apb_pclk";
|
||
|
out-ports {
|
||
|
port {
|
||
|
cluster1_funnel_out: endpoint {
|
||
|
remote-endpoint =
|
||
|
<&cluster1_etf_in>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
in-ports {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
|
||
|
port@0 {
|
||
|
reg = <0>;
|
||
|
cluster1_funnel_in0: endpoint {
|
||
|
remote-endpoint = <&etm4_out>;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
port@1 {
|
||
|
reg = <1>;
|
||
|
cluster1_funnel_in1: endpoint {
|
||
|
remote-endpoint = <&etm5_out>;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
port@2 {
|
||
|
reg = <2>;
|
||
|
cluster1_funnel_in2: endpoint {
|
||
|
remote-endpoint = <&etm6_out>;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
port@3 {
|
||
|
reg = <3>;
|
||
|
cluster1_funnel_in3: endpoint {
|
||
|
remote-endpoint = <&etm7_out>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
etf@ed002000 {
|
||
|
compatible = "arm,coresight-tmc", "arm,primecell";
|
||
|
reg = <0 0xed002000 0 0x1000>;
|
||
|
clocks = <&crg_ctrl HI3660_PCLK>;
|
||
|
clock-names = "apb_pclk";
|
||
|
|
||
|
in-ports {
|
||
|
port {
|
||
|
cluster1_etf_in: endpoint {
|
||
|
remote-endpoint =
|
||
|
<&cluster1_funnel_out>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
out-ports {
|
||
|
port {
|
||
|
cluster1_etf_out: endpoint {
|
||
|
remote-endpoint =
|
||
|
<&combo_funnel_in1>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
/* An invisible combo funnel between clusters and top funnel */
|
||
|
funnel {
|
||
|
compatible = "arm,coresight-static-funnel";
|
||
|
clocks = <&crg_ctrl HI3660_PCLK>;
|
||
|
clock-names = "apb_pclk";
|
||
|
|
||
|
out-ports {
|
||
|
port {
|
||
|
combo_funnel_out: endpoint {
|
||
|
remote-endpoint =
|
||
|
<&top_funnel_in>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
in-ports {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
|
||
|
port@0 {
|
||
|
reg = <0>;
|
||
|
combo_funnel_in0: endpoint {
|
||
|
remote-endpoint =
|
||
|
<&cluster0_etf_out>;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
port@1 {
|
||
|
reg = <1>;
|
||
|
combo_funnel_in1: endpoint {
|
||
|
remote-endpoint =
|
||
|
<&cluster1_etf_out>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
/* Top internals */
|
||
|
funnel@ec031000 {
|
||
|
compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
|
||
|
reg = <0 0xec031000 0 0x1000>;
|
||
|
clocks = <&crg_ctrl HI3660_PCLK>;
|
||
|
clock-names = "apb_pclk";
|
||
|
|
||
|
out-ports {
|
||
|
port {
|
||
|
top_funnel_out: endpoint {
|
||
|
remote-endpoint =
|
||
|
<&top_etf_in>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
in-ports {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
|
||
|
port@0 {
|
||
|
reg = <0>;
|
||
|
top_funnel_in: endpoint {
|
||
|
remote-endpoint =
|
||
|
<&combo_funnel_out>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
etf@ec036000 {
|
||
|
compatible = "arm,coresight-tmc", "arm,primecell";
|
||
|
reg = <0 0xec036000 0 0x1000>;
|
||
|
clocks = <&crg_ctrl HI3660_PCLK>;
|
||
|
clock-names = "apb_pclk";
|
||
|
|
||
|
in-ports {
|
||
|
port {
|
||
|
top_etf_in: endpoint {
|
||
|
remote-endpoint =
|
||
|
<&top_funnel_out>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
out-ports {
|
||
|
port {
|
||
|
top_etf_out: endpoint {
|
||
|
remote-endpoint =
|
||
|
<&replicator_in>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
replicator {
|
||
|
compatible = "arm,coresight-static-replicator";
|
||
|
clocks = <&crg_ctrl HI3660_PCLK>;
|
||
|
clock-names = "apb_pclk";
|
||
|
|
||
|
in-ports {
|
||
|
port {
|
||
|
replicator_in: endpoint {
|
||
|
remote-endpoint =
|
||
|
<&top_etf_out>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
out-ports {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
|
||
|
port@0 {
|
||
|
reg = <0>;
|
||
|
replicator0_out0: endpoint {
|
||
|
remote-endpoint = <&etr_in>;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
port@1 {
|
||
|
reg = <1>;
|
||
|
replicator0_out1: endpoint {
|
||
|
remote-endpoint = <&tpiu_in>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
etr@ec033000 {
|
||
|
compatible = "arm,coresight-tmc", "arm,primecell";
|
||
|
reg = <0 0xec033000 0 0x1000>;
|
||
|
clocks = <&crg_ctrl HI3660_PCLK>;
|
||
|
clock-names = "apb_pclk";
|
||
|
|
||
|
in-ports {
|
||
|
port {
|
||
|
etr_in: endpoint {
|
||
|
remote-endpoint =
|
||
|
<&replicator0_out0>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
tpiu@ec032000 {
|
||
|
compatible = "arm,coresight-tpiu", "arm,primecell";
|
||
|
reg = <0 0xec032000 0 0x1000>;
|
||
|
clocks = <&crg_ctrl HI3660_PCLK>;
|
||
|
clock-names = "apb_pclk";
|
||
|
|
||
|
in-ports {
|
||
|
port {
|
||
|
tpiu_in: endpoint {
|
||
|
remote-endpoint =
|
||
|
<&replicator0_out1>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|