cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

hi3660-coresight.dtsi (8296B)


      1// SPDX-License-Identifier: GPL-2.0
      2
      3/*
      4 * dtsi for Hisilicon Hi3660 Coresight
      5 *
      6 * Copyright (C) 2016-2018 HiSilicon Ltd.
      7 *
      8 * Author: Wanglai Shi <shiwanglai@hisilicon.com>
      9 *
     10 */
     11/ {
     12	soc {
     13		/* A53 cluster internals */
     14		etm@ecc40000 {
     15			compatible = "arm,coresight-etm4x", "arm,primecell";
     16			reg = <0 0xecc40000 0 0x1000>;
     17			clocks = <&crg_ctrl HI3660_PCLK>;
     18			clock-names = "apb_pclk";
     19			cpu = <&cpu0>;
     20
     21			out-ports {
     22				port {
     23					etm0_out: endpoint {
     24						remote-endpoint =
     25							<&cluster0_funnel_in0>;
     26					};
     27				};
     28			};
     29		};
     30
     31		etm@ecd40000 {
     32			compatible = "arm,coresight-etm4x", "arm,primecell";
     33			reg = <0 0xecd40000 0 0x1000>;
     34			clocks = <&crg_ctrl HI3660_PCLK>;
     35			clock-names = "apb_pclk";
     36			cpu = <&cpu1>;
     37
     38			out-ports {
     39				port {
     40					etm1_out: endpoint {
     41						remote-endpoint =
     42							<&cluster0_funnel_in1>;
     43					};
     44				};
     45			};
     46		};
     47
     48		etm@ece40000 {
     49			compatible = "arm,coresight-etm4x", "arm,primecell";
     50			reg = <0 0xece40000 0 0x1000>;
     51			clocks = <&crg_ctrl HI3660_PCLK>;
     52			clock-names = "apb_pclk";
     53			cpu = <&cpu2>;
     54
     55			out-ports {
     56				port {
     57					etm2_out: endpoint {
     58						remote-endpoint =
     59							<&cluster0_funnel_in2>;
     60					};
     61				};
     62			};
     63		};
     64
     65		etm@ecf40000 {
     66			compatible = "arm,coresight-etm4x", "arm,primecell";
     67			reg = <0 0xecf40000 0 0x1000>;
     68			clocks = <&crg_ctrl HI3660_PCLK>;
     69			clock-names = "apb_pclk";
     70			cpu = <&cpu3>;
     71
     72			out-ports {
     73				port {
     74					etm3_out: endpoint {
     75						remote-endpoint =
     76							<&cluster0_funnel_in3>;
     77					};
     78				};
     79			};
     80		};
     81
     82		funnel@ec801000 {
     83			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
     84			reg = <0 0xec801000 0 0x1000>;
     85			clocks = <&crg_ctrl HI3660_PCLK>;
     86			clock-names = "apb_pclk";
     87
     88			out-ports {
     89				port {
     90					cluster0_funnel_out: endpoint {
     91						remote-endpoint =
     92							<&cluster0_etf_in>;
     93					};
     94				};
     95			};
     96
     97			in-ports {
     98				#address-cells = <1>;
     99				#size-cells = <0>;
    100
    101				port@0 {
    102					reg = <0>;
    103					cluster0_funnel_in0: endpoint {
    104						remote-endpoint = <&etm0_out>;
    105					};
    106				};
    107
    108				port@1 {
    109					reg = <1>;
    110					cluster0_funnel_in1: endpoint {
    111						remote-endpoint = <&etm1_out>;
    112					};
    113				};
    114
    115				port@2 {
    116					reg = <2>;
    117					cluster0_funnel_in2: endpoint {
    118						remote-endpoint = <&etm2_out>;
    119					};
    120				};
    121
    122				port@3 {
    123					reg = <3>;
    124					cluster0_funnel_in3: endpoint {
    125						remote-endpoint = <&etm3_out>;
    126					};
    127				};
    128			};
    129		};
    130
    131		etf@ec802000 {
    132			compatible = "arm,coresight-tmc", "arm,primecell";
    133			reg = <0 0xec802000 0 0x1000>;
    134			clocks = <&crg_ctrl HI3660_PCLK>;
    135			clock-names = "apb_pclk";
    136
    137			in-ports {
    138				port {
    139					cluster0_etf_in: endpoint {
    140						remote-endpoint =
    141							<&cluster0_funnel_out>;
    142					};
    143				};
    144			};
    145
    146			out-ports {
    147				port {
    148					cluster0_etf_out: endpoint {
    149						remote-endpoint =
    150							<&combo_funnel_in0>;
    151					};
    152				};
    153			};
    154		};
    155
    156		/* A73 cluster internals */
    157		etm@ed440000 {
    158			compatible = "arm,coresight-etm4x", "arm,primecell";
    159			reg = <0 0xed440000 0 0x1000>;
    160			clocks = <&crg_ctrl HI3660_PCLK>;
    161			clock-names = "apb_pclk";
    162			cpu = <&cpu4>;
    163
    164			out-ports {
    165				port {
    166					etm4_out: endpoint {
    167						remote-endpoint =
    168							<&cluster1_funnel_in0>;
    169					};
    170				};
    171			};
    172		};
    173
    174		etm@ed540000 {
    175			compatible = "arm,coresight-etm4x", "arm,primecell";
    176			reg = <0 0xed540000 0 0x1000>;
    177			clocks = <&crg_ctrl HI3660_PCLK>;
    178			clock-names = "apb_pclk";
    179			cpu = <&cpu5>;
    180
    181			out-ports {
    182				port {
    183					etm5_out: endpoint {
    184						remote-endpoint =
    185							<&cluster1_funnel_in1>;
    186					};
    187				};
    188			};
    189		};
    190
    191		etm@ed640000 {
    192			compatible = "arm,coresight-etm4x", "arm,primecell";
    193			reg = <0 0xed640000 0 0x1000>;
    194			clocks = <&crg_ctrl HI3660_PCLK>;
    195			clock-names = "apb_pclk";
    196			cpu = <&cpu6>;
    197
    198			out-ports {
    199				port {
    200					etm6_out: endpoint {
    201						remote-endpoint =
    202							<&cluster1_funnel_in2>;
    203					};
    204				};
    205			};
    206		};
    207
    208		etm@ed740000 {
    209			compatible = "arm,coresight-etm4x", "arm,primecell";
    210			reg = <0 0xed740000 0 0x1000>;
    211			clocks = <&crg_ctrl HI3660_PCLK>;
    212			clock-names = "apb_pclk";
    213			cpu = <&cpu7>;
    214
    215			out-ports {
    216				port {
    217					etm7_out: endpoint {
    218						remote-endpoint =
    219							<&cluster1_funnel_in3>;
    220					};
    221				};
    222			};
    223		};
    224
    225		funnel@ed001000 {
    226			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
    227			reg = <0 0xed001000 0 0x1000>;
    228			clocks = <&crg_ctrl HI3660_PCLK>;
    229			clock-names = "apb_pclk";
    230			out-ports {
    231				port {
    232					cluster1_funnel_out: endpoint {
    233						remote-endpoint =
    234							<&cluster1_etf_in>;
    235					};
    236				};
    237			};
    238
    239			in-ports {
    240				#address-cells = <1>;
    241				#size-cells = <0>;
    242
    243				port@0 {
    244					reg = <0>;
    245					cluster1_funnel_in0: endpoint {
    246						remote-endpoint = <&etm4_out>;
    247					};
    248				};
    249
    250				port@1 {
    251					reg = <1>;
    252					cluster1_funnel_in1: endpoint {
    253						remote-endpoint = <&etm5_out>;
    254					};
    255				};
    256
    257				port@2 {
    258					reg = <2>;
    259					cluster1_funnel_in2: endpoint {
    260						remote-endpoint = <&etm6_out>;
    261					};
    262				};
    263
    264				port@3 {
    265					reg = <3>;
    266					cluster1_funnel_in3: endpoint {
    267						remote-endpoint = <&etm7_out>;
    268					};
    269				};
    270			};
    271		};
    272
    273		etf@ed002000 {
    274			compatible = "arm,coresight-tmc", "arm,primecell";
    275			reg = <0 0xed002000 0 0x1000>;
    276			clocks = <&crg_ctrl HI3660_PCLK>;
    277			clock-names = "apb_pclk";
    278
    279			in-ports {
    280				port {
    281					cluster1_etf_in: endpoint {
    282						remote-endpoint =
    283							<&cluster1_funnel_out>;
    284					};
    285				};
    286			};
    287
    288			out-ports {
    289				port {
    290					cluster1_etf_out: endpoint {
    291						remote-endpoint =
    292							<&combo_funnel_in1>;
    293					};
    294				};
    295			};
    296		};
    297
    298		/* An invisible combo funnel between clusters and top funnel */
    299		funnel {
    300			compatible = "arm,coresight-static-funnel";
    301			clocks = <&crg_ctrl HI3660_PCLK>;
    302			clock-names = "apb_pclk";
    303
    304			out-ports {
    305				port {
    306					combo_funnel_out: endpoint {
    307						remote-endpoint =
    308							<&top_funnel_in>;
    309					};
    310				};
    311			};
    312
    313			in-ports {
    314				#address-cells = <1>;
    315				#size-cells = <0>;
    316
    317				port@0 {
    318					reg = <0>;
    319					combo_funnel_in0: endpoint {
    320						remote-endpoint =
    321							<&cluster0_etf_out>;
    322					};
    323				};
    324
    325				port@1 {
    326					reg = <1>;
    327					combo_funnel_in1: endpoint {
    328						remote-endpoint =
    329							<&cluster1_etf_out>;
    330					};
    331				};
    332			};
    333		};
    334
    335		/* Top internals */
    336		funnel@ec031000 {
    337			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
    338			reg = <0 0xec031000 0 0x1000>;
    339			clocks = <&crg_ctrl HI3660_PCLK>;
    340			clock-names = "apb_pclk";
    341
    342			out-ports {
    343				port {
    344					top_funnel_out: endpoint {
    345						remote-endpoint =
    346							<&top_etf_in>;
    347					};
    348				};
    349			};
    350
    351			in-ports {
    352				#address-cells = <1>;
    353				#size-cells = <0>;
    354
    355				port@0 {
    356					reg = <0>;
    357					top_funnel_in: endpoint {
    358						remote-endpoint =
    359							<&combo_funnel_out>;
    360					};
    361				};
    362			};
    363		};
    364
    365		etf@ec036000 {
    366			compatible = "arm,coresight-tmc", "arm,primecell";
    367			reg = <0 0xec036000 0 0x1000>;
    368			clocks = <&crg_ctrl HI3660_PCLK>;
    369			clock-names = "apb_pclk";
    370
    371			in-ports {
    372				port {
    373					top_etf_in: endpoint {
    374						remote-endpoint =
    375							<&top_funnel_out>;
    376					};
    377				};
    378			};
    379
    380			out-ports {
    381				port {
    382					top_etf_out: endpoint {
    383						remote-endpoint =
    384							<&replicator_in>;
    385					};
    386				};
    387			};
    388		};
    389
    390		replicator {
    391			compatible = "arm,coresight-static-replicator";
    392			clocks = <&crg_ctrl HI3660_PCLK>;
    393			clock-names = "apb_pclk";
    394
    395			in-ports {
    396				port {
    397					replicator_in: endpoint {
    398						remote-endpoint =
    399							<&top_etf_out>;
    400					};
    401				};
    402			};
    403
    404			out-ports {
    405				#address-cells = <1>;
    406				#size-cells = <0>;
    407
    408				port@0 {
    409					reg = <0>;
    410					replicator0_out0: endpoint {
    411						remote-endpoint = <&etr_in>;
    412					};
    413				};
    414
    415				port@1 {
    416					reg = <1>;
    417					replicator0_out1: endpoint {
    418						remote-endpoint = <&tpiu_in>;
    419					};
    420				};
    421			};
    422		};
    423
    424		etr@ec033000 {
    425			compatible = "arm,coresight-tmc", "arm,primecell";
    426			reg = <0 0xec033000 0 0x1000>;
    427			clocks = <&crg_ctrl HI3660_PCLK>;
    428			clock-names = "apb_pclk";
    429
    430			in-ports {
    431				port {
    432					etr_in: endpoint {
    433						remote-endpoint =
    434							<&replicator0_out0>;
    435					};
    436				};
    437			};
    438		};
    439
    440		tpiu@ec032000 {
    441			compatible = "arm,coresight-tpiu", "arm,primecell";
    442			reg = <0 0xec032000 0 0x1000>;
    443			clocks = <&crg_ctrl HI3660_PCLK>;
    444			clock-names = "apb_pclk";
    445
    446			in-ports {
    447				port {
    448					tpiu_in: endpoint {
    449						remote-endpoint =
    450							<&replicator0_out1>;
    451					};
    452				};
    453			};
    454		};
    455	};
    456};