1* CoreSight Components: 2 3CoreSight components are compliant with the ARM CoreSight architecture 4specification and can be connected in various topologies to suit a particular 5SoCs tracing needs. These trace components can generally be classified as 6sinks, links and sources. Trace data produced by one or more sources flows 7through the intermediate links connecting the source to the currently selected 8sink. Each CoreSight component device should use these properties to describe 9its hardware characteristcs. 10 11* Required properties for all components *except* non-configurable replicators: 12 13 * compatible: These have to be supplemented with "arm,primecell" as 14 drivers are using the AMBA bus interface. Possible values include: 15 - "arm,coresight-etb10", "arm,primecell"; 16 - "arm,coresight-tpiu", "arm,primecell"; 17 - "arm,coresight-tmc", "arm,primecell"; 18 - "arm,coresight-funnel", "arm,primecell"; 19 - "arm,coresight-etm3x", "arm,primecell"; 20 21 * reg: physical base address and length of the register 22 set(s) of the component. 23 24 * clocks: the clock associated to this component. 25 26 * clock-names: the name of the clock as referenced by the code. 27 Since we are using the AMBA framework, the name should be 28 "apb_pclk". 29 30 * port or ports: The representation of the component's port 31 layout using the generic DT graph presentation found in 32 "bindings/graph.txt". 33 34* Required properties for devices that don't show up on the AMBA bus, such as 35 non-configurable replicators: 36 37 * compatible: Currently supported value is (note the absence of the 38 AMBA markee): 39 - "arm,coresight-replicator" 40 41 * port or ports: same as above. 42 43* Optional properties for ETM/PTMs: 44 45 * arm,cp14: must be present if the system accesses ETM/PTM management 46 registers via co-processor 14. 47 48 * cpu: the cpu phandle this ETM/PTM is affined to. When omitted the 49 source is considered to belong to CPU0. 50 51* Optional property for TMC: 52 53 * arm,buffer-size: size of contiguous buffer space for TMC ETR 54 (embedded trace router) 55 56 57Example: 58 591. Sinks 60 etb@20010000 { 61 compatible = "arm,coresight-etb10", "arm,primecell"; 62 reg = <0 0x20010000 0 0x1000>; 63 64 clocks = <&oscclk6a>; 65 clock-names = "apb_pclk"; 66 port { 67 etb_in_port: endpoint@0 { 68 slave-mode; 69 remote-endpoint = <&replicator_out_port0>; 70 }; 71 }; 72 }; 73 74 tpiu@20030000 { 75 compatible = "arm,coresight-tpiu", "arm,primecell"; 76 reg = <0 0x20030000 0 0x1000>; 77 78 clocks = <&oscclk6a>; 79 clock-names = "apb_pclk"; 80 port { 81 tpiu_in_port: endpoint@0 { 82 slave-mode; 83 remote-endpoint = <&replicator_out_port1>; 84 }; 85 }; 86 }; 87 882. Links 89 replicator { 90 /* non-configurable replicators don't show up on the 91 * AMBA bus. As such no need to add "arm,primecell". 92 */ 93 compatible = "arm,coresight-replicator"; 94 95 ports { 96 #address-cells = <1>; 97 #size-cells = <0>; 98 99 /* replicator output ports */ 100 port@0 { 101 reg = <0>; 102 replicator_out_port0: endpoint { 103 remote-endpoint = <&etb_in_port>; 104 }; 105 }; 106 107 port@1 { 108 reg = <1>; 109 replicator_out_port1: endpoint { 110 remote-endpoint = <&tpiu_in_port>; 111 }; 112 }; 113 114 /* replicator input port */ 115 port@2 { 116 reg = <0>; 117 replicator_in_port0: endpoint { 118 slave-mode; 119 remote-endpoint = <&funnel_out_port0>; 120 }; 121 }; 122 }; 123 }; 124 125 funnel@20040000 { 126 compatible = "arm,coresight-funnel", "arm,primecell"; 127 reg = <0 0x20040000 0 0x1000>; 128 129 clocks = <&oscclk6a>; 130 clock-names = "apb_pclk"; 131 ports { 132 #address-cells = <1>; 133 #size-cells = <0>; 134 135 /* funnel output port */ 136 port@0 { 137 reg = <0>; 138 funnel_out_port0: endpoint { 139 remote-endpoint = 140 <&replicator_in_port0>; 141 }; 142 }; 143 144 /* funnel input ports */ 145 port@1 { 146 reg = <0>; 147 funnel_in_port0: endpoint { 148 slave-mode; 149 remote-endpoint = <&ptm0_out_port>; 150 }; 151 }; 152 153 port@2 { 154 reg = <1>; 155 funnel_in_port1: endpoint { 156 slave-mode; 157 remote-endpoint = <&ptm1_out_port>; 158 }; 159 }; 160 161 port@3 { 162 reg = <2>; 163 funnel_in_port2: endpoint { 164 slave-mode; 165 remote-endpoint = <&etm0_out_port>; 166 }; 167 }; 168 169 }; 170 }; 171 1723. Sources 173 ptm@2201c000 { 174 compatible = "arm,coresight-etm3x", "arm,primecell"; 175 reg = <0 0x2201c000 0 0x1000>; 176 177 cpu = <&cpu0>; 178 clocks = <&oscclk6a>; 179 clock-names = "apb_pclk"; 180 port { 181 ptm0_out_port: endpoint { 182 remote-endpoint = <&funnel_in_port0>; 183 }; 184 }; 185 }; 186 187 ptm@2201d000 { 188 compatible = "arm,coresight-etm3x", "arm,primecell"; 189 reg = <0 0x2201d000 0 0x1000>; 190 191 cpu = <&cpu1>; 192 clocks = <&oscclk6a>; 193 clock-names = "apb_pclk"; 194 port { 195 ptm1_out_port: endpoint { 196 remote-endpoint = <&funnel_in_port1>; 197 }; 198 }; 199 }; 200