~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/scripts/dtc/include-prefixes/arm64/broadcom/bcm2712.dtsi

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 // SPDX-License-Identifier: (GPL-2.0 OR MIT)
  2 #include <dt-bindings/interrupt-controller/arm-gic.h>
  3 
  4 / {
  5         compatible = "brcm,bcm2712";
  6 
  7         #address-cells = <2>;
  8         #size-cells = <2>;
  9 
 10         interrupt-parent = <&gicv2>;
 11 
 12         clocks {
 13                 /* The oscillator is the root of the clock tree. */
 14                 clk_osc: clk-osc {
 15                         compatible = "fixed-clock";
 16                         #clock-cells = <0>;
 17                         clock-output-names = "osc";
 18                         clock-frequency = <54000000>;
 19                 };
 20 
 21                 clk_vpu: clk-vpu {
 22                         compatible = "fixed-clock";
 23                         #clock-cells = <0>;
 24                         clock-frequency = <750000000>;
 25                         clock-output-names = "vpu-clock";
 26                 };
 27 
 28                 clk_uart: clk-uart {
 29                         compatible = "fixed-clock";
 30                         #clock-cells = <0>;
 31                         clock-frequency = <9216000>;
 32                         clock-output-names = "uart-clock";
 33                 };
 34 
 35                 clk_emmc2: clk-emmc2 {
 36                         compatible = "fixed-clock";
 37                         #clock-cells = <0>;
 38                         clock-frequency = <200000000>;
 39                         clock-output-names = "emmc2-clock";
 40                 };
 41         };
 42 
 43         cpus: cpus {
 44                 #address-cells = <1>;
 45                 #size-cells = <0>;
 46 
 47                 /* Source for L1 d/i cache-line-size, cache-sets, cache-size
 48                  * https://developer.arm.com/documentation/100798/0401/L1-memory-system/About-the-L1-memory-system?lang=en
 49                  * Source for L2 cache-line-size and cache-sets:
 50                  * https://developer.arm.com/documentation/100798/0401/L2-memory-system/About-the-L2-memory-system?lang=en
 51                  * and for cache-size:
 52                  * https://www.raspberrypi.com/documentation/computers/processors.html#bcm2712
 53                  */
 54                 cpu0: cpu@0 {
 55                         device_type = "cpu";
 56                         compatible = "arm,cortex-a76";
 57                         reg = <0x000>;
 58                         enable-method = "psci";
 59                         d-cache-size = <0x10000>;
 60                         d-cache-line-size = <64>;
 61                         d-cache-sets = <256>; // 64KiB(size)/64(line-size)=1024ways/4-way set
 62                         i-cache-size = <0x10000>;
 63                         i-cache-line-size = <64>;
 64                         i-cache-sets = <256>; // 64KiB(size)/64(line-size)=1024ways/4-way set
 65                         next-level-cache = <&l2_cache_l0>;
 66 
 67                         l2_cache_l0: l2-cache-l0 {
 68                                 compatible = "cache";
 69                                 cache-size = <0x80000>;
 70                                 cache-line-size = <128>;
 71                                 cache-sets = <1024>; //512KiB(size)/64(line-size)=8192ways/8-way set
 72                                 cache-level = <2>;
 73                                 cache-unified;
 74                                 next-level-cache = <&l3_cache>;
 75                         };
 76                 };
 77 
 78                 cpu1: cpu@1 {
 79                         device_type = "cpu";
 80                         compatible = "arm,cortex-a76";
 81                         reg = <0x100>;
 82                         enable-method = "psci";
 83                         d-cache-size = <0x10000>;
 84                         d-cache-line-size = <64>;
 85                         d-cache-sets = <256>; // 64KiB(size)/64(line-size)=1024ways/4-way set
 86                         i-cache-size = <0x10000>;
 87                         i-cache-line-size = <64>;
 88                         i-cache-sets = <256>; // 64KiB(size)/64(line-size)=1024ways/4-way set
 89                         next-level-cache = <&l2_cache_l1>;
 90 
 91                         l2_cache_l1: l2-cache-l1 {
 92                                 compatible = "cache";
 93                                 cache-size = <0x80000>;
 94                                 cache-line-size = <128>;
 95                                 cache-sets = <1024>; //512KiB(size)/64(line-size)=8192ways/8-way set
 96                                 cache-level = <2>;
 97                                 cache-unified;
 98                                 next-level-cache = <&l3_cache>;
 99                         };
100                 };
101 
102                 cpu2: cpu@2 {
103                         device_type = "cpu";
104                         compatible = "arm,cortex-a76";
105                         reg = <0x200>;
106                         enable-method = "psci";
107                         d-cache-size = <0x10000>;
108                         d-cache-line-size = <64>;
109                         d-cache-sets = <256>; // 64KiB(size)/64(line-size)=1024ways/4-way set
110                         i-cache-size = <0x10000>;
111                         i-cache-line-size = <64>;
112                         i-cache-sets = <256>; // 64KiB(size)/64(line-size)=1024ways/4-way set
113                         next-level-cache = <&l2_cache_l2>;
114 
115                         l2_cache_l2: l2-cache-l2 {
116                                 compatible = "cache";
117                                 cache-size = <0x80000>;
118                                 cache-line-size = <128>;
119                                 cache-sets = <1024>; //512KiB(size)/64(line-size)=8192ways/8-way set
120                                 cache-level = <2>;
121                                 cache-unified;
122                                 next-level-cache = <&l3_cache>;
123                         };
124                 };
125 
126                 cpu3: cpu@3 {
127                         device_type = "cpu";
128                         compatible = "arm,cortex-a76";
129                         reg = <0x300>;
130                         enable-method = "psci";
131                         d-cache-size = <0x10000>;
132                         d-cache-line-size = <64>;
133                         d-cache-sets = <256>; // 64KiB(size)/64(line-size)=1024ways/4-way set
134                         i-cache-size = <0x10000>;
135                         i-cache-line-size = <64>;
136                         i-cache-sets = <256>; // 64KiB(size)/64(line-size)=1024ways/4-way set
137                         next-level-cache = <&l2_cache_l3>;
138 
139                         l2_cache_l3: l2-cache-l3 {
140                                 compatible = "cache";
141                                 cache-size = <0x80000>;
142                                 cache-line-size = <128>;
143                                 cache-sets = <1024>; //512KiB(size)/64(line-size)=8192ways/8-way set
144                                 cache-level = <2>;
145                                 cache-unified;
146                                 next-level-cache = <&l3_cache>;
147                         };
148                 };
149 
150                 /* Source for cache-line-size and cache-sets:
151                  * https://developer.arm.com/documentation/100453/0401/L3-cache?lang=en
152                  * Source for cache-size:
153                  * https://www.raspberrypi.com/documentation/computers/processors.html#bcm2712
154                  */
155                 l3_cache: l3-cache {
156                         compatible = "cache";
157                         cache-size = <0x200000>;
158                         cache-line-size = <64>;
159                         cache-sets = <2048>; // 2MiB(size)/64(line-size)=32768ways/16-way set
160                         cache-level = <3>;
161                         cache-unified;
162                 };
163         };
164 
165         psci {
166                 method = "smc";
167                 compatible = "arm,psci-1.0", "arm,psci-0.2";
168         };
169 
170         rmem: reserved-memory {
171                 ranges;
172                 #address-cells = <2>;
173                 #size-cells = <2>;
174 
175                 atf@0 {
176                         reg = <0x0 0x0 0x0 0x80000>;
177                         no-map;
178                 };
179 
180                 cma: linux,cma {
181                         compatible = "shared-dma-pool";
182                         size = <0x0 0x4000000>; /* 64MB */
183                         reusable;
184                         linux,cma-default;
185                         alloc-ranges = <0x0 0x00000000 0x0 0x40000000>;
186                 };
187         };
188 
189         soc: soc@107c000000 {
190                 compatible = "simple-bus";
191                 ranges = <0x00000000  0x10 0x00000000  0x80000000>;
192                 #address-cells = <1>;
193                 #size-cells = <1>;
194 
195                 sdio1: mmc@fff000 {
196                         compatible = "brcm,bcm2712-sdhci",
197                                      "brcm,sdhci-brcmstb";
198                         reg = <0x00fff000 0x260>,
199                               <0x00fff400 0x200>;
200                         reg-names = "host", "cfg";
201                         interrupts = <GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH>;
202                         clocks = <&clk_emmc2>;
203                         clock-names = "sw_sdio";
204                         mmc-ddr-3_3v;
205                 };
206 
207                 system_timer: timer@7c003000 {
208                         compatible = "brcm,bcm2835-system-timer";
209                         reg = <0x7c003000 0x1000>;
210                         interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>,
211                                      <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
212                                      <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
213                                      <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
214                         clock-frequency = <1000000>;
215                 };
216 
217                 mailbox: mailbox@7c013880 {
218                         compatible = "brcm,bcm2835-mbox";
219                         reg = <0x7c013880 0x40>;
220                         interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
221                         #mbox-cells = <0>;
222                 };
223 
224                 local_intc: interrupt-controller@7cd00000 {
225                         compatible = "brcm,bcm2836-l1-intc";
226                         reg = <0x7cd00000 0x100>;
227                 };
228 
229                 uart10: serial@7d001000 {
230                         compatible = "arm,pl011", "arm,primecell";
231                         reg = <0x7d001000 0x200>;
232                         interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
233                         clocks = <&clk_uart>, <&clk_vpu>;
234                         clock-names = "uartclk", "apb_pclk";
235                         arm,primecell-periphid = <0x00241011>;
236                         status = "disabled";
237                 };
238 
239                 interrupt-controller@7d517000 {
240                         compatible = "brcm,bcm7271-l2-intc";
241                         reg = <0x7d517000 0x10>;
242                         interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>;
243                         interrupt-controller;
244                         #interrupt-cells = <1>;
245                 };
246 
247                 gio_aon: gpio@7d517c00 {
248                         compatible = "brcm,bcm7445-gpio", "brcm,brcmstb-gpio";
249                         reg = <0x7d517c00 0x40>;
250                         gpio-controller;
251                         #gpio-cells = <2>;
252                         brcm,gpio-bank-widths = <17 6>;
253                         /* The lack of 'interrupt-controller' property here is intended:
254                          * don't use GIO_AON as an interrupt controller because it will
255                          * clash with the firmware monitoring the PMIC interrupt via the VPU.
256                          */
257                 };
258 
259                 gicv2: interrupt-controller@7fff9000 {
260                         compatible = "arm,gic-400";
261                         reg = <0x7fff9000 0x1000>,
262                               <0x7fffa000 0x2000>,
263                               <0x7fffc000 0x2000>,
264                               <0x7fffe000 0x2000>;
265                         interrupt-controller;
266                         #interrupt-cells = <3>;
267                 };
268         };
269 
270         timer {
271                 compatible = "arm,armv8-timer";
272                 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) |
273                                           IRQ_TYPE_LEVEL_LOW)>,
274                              <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) |
275                                           IRQ_TYPE_LEVEL_LOW)>,
276                              <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) |
277                                           IRQ_TYPE_LEVEL_LOW)>,
278                              <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) |
279                                           IRQ_TYPE_LEVEL_LOW)>,
280                              <GIC_PPI 12 (GIC_CPU_MASK_SIMPLE(4) |
281                                           IRQ_TYPE_LEVEL_LOW)>;
282         };
283 };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php