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

TOMOYO Linux Cross Reference
Linux/arch/arm/boot/dts/broadcom/bcm2837.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.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 #include "bcm283x.dtsi"
  2 #include "bcm2835-common.dtsi"
  3 
  4 / {
  5         compatible = "brcm,bcm2837";
  6 
  7         soc {
  8                 ranges = <0x7e000000 0x3f000000 0x1000000>,
  9                          <0x40000000 0x40000000 0x00001000>;
 10                 dma-ranges = <0xc0000000 0x00000000 0x3f000000>;
 11 
 12                 local_intc: interrupt-controller@40000000 {
 13                         compatible = "brcm,bcm2836-l1-intc";
 14                         reg = <0x40000000 0x100>;
 15                         interrupt-controller;
 16                         #interrupt-cells = <2>;
 17                         interrupt-parent = <&local_intc>;
 18                 };
 19         };
 20 
 21         arm-pmu {
 22                 compatible = "arm,cortex-a53-pmu";
 23                 interrupt-parent = <&local_intc>;
 24                 interrupts = <9 IRQ_TYPE_LEVEL_HIGH>;
 25         };
 26 
 27         timer {
 28                 compatible = "arm,armv7-timer";
 29                 interrupt-parent = <&local_intc>;
 30                 interrupts = <0 IRQ_TYPE_LEVEL_HIGH>, // PHYS_SECURE_PPI
 31                              <1 IRQ_TYPE_LEVEL_HIGH>, // PHYS_NONSECURE_PPI
 32                              <3 IRQ_TYPE_LEVEL_HIGH>, // VIRT_PPI
 33                              <2 IRQ_TYPE_LEVEL_HIGH>; // HYP_PPI
 34                 always-on;
 35         };
 36 
 37         cpus: cpus {
 38                 #address-cells = <1>;
 39                 #size-cells = <0>;
 40                 enable-method = "brcm,bcm2836-smp"; // for ARM 32-bit
 41 
 42                 /* Source for d/i-cache-line-size and d/i-cache-sets
 43                  * https://developer.arm.com/documentation/ddi0500/e/level-1-memory-system
 44                  * /about-the-l1-memory-system?lang=en
 45                  *
 46                  * Source for d/i-cache-size
 47                  * https://magpi.raspberrypi.com/articles/raspberry-pi-3-specs-benchmarks
 48                  */
 49                 cpu0: cpu@0 {
 50                         device_type = "cpu";
 51                         compatible = "arm,cortex-a53";
 52                         reg = <0>;
 53                         enable-method = "spin-table";
 54                         cpu-release-addr = <0x0 0x000000d8>;
 55                         d-cache-size = <0x8000>;
 56                         d-cache-line-size = <64>;
 57                         d-cache-sets = <128>; // 32KiB(size)/64(line-size)=512ways/4-way set
 58                         i-cache-size = <0x8000>;
 59                         i-cache-line-size = <64>;
 60                         i-cache-sets = <256>; // 32KiB(size)/64(line-size)=512ways/2-way set
 61                         next-level-cache = <&l2>;
 62                 };
 63 
 64                 cpu1: cpu@1 {
 65                         device_type = "cpu";
 66                         compatible = "arm,cortex-a53";
 67                         reg = <1>;
 68                         enable-method = "spin-table";
 69                         cpu-release-addr = <0x0 0x000000e0>;
 70                         d-cache-size = <0x8000>;
 71                         d-cache-line-size = <64>;
 72                         d-cache-sets = <128>; // 32KiB(size)/64(line-size)=512ways/4-way set
 73                         i-cache-size = <0x8000>;
 74                         i-cache-line-size = <64>;
 75                         i-cache-sets = <256>; // 32KiB(size)/64(line-size)=512ways/2-way set
 76                         next-level-cache = <&l2>;
 77                 };
 78 
 79                 cpu2: cpu@2 {
 80                         device_type = "cpu";
 81                         compatible = "arm,cortex-a53";
 82                         reg = <2>;
 83                         enable-method = "spin-table";
 84                         cpu-release-addr = <0x0 0x000000e8>;
 85                         d-cache-size = <0x8000>;
 86                         d-cache-line-size = <64>;
 87                         d-cache-sets = <128>; // 32KiB(size)/64(line-size)=512ways/4-way set
 88                         i-cache-size = <0x8000>;
 89                         i-cache-line-size = <64>;
 90                         i-cache-sets = <256>; // 32KiB(size)/64(line-size)=512ways/2-way set
 91                         next-level-cache = <&l2>;
 92                 };
 93 
 94                 cpu3: cpu@3 {
 95                         device_type = "cpu";
 96                         compatible = "arm,cortex-a53";
 97                         reg = <3>;
 98                         enable-method = "spin-table";
 99                         cpu-release-addr = <0x0 0x000000f0>;
100                         d-cache-size = <0x8000>;
101                         d-cache-line-size = <64>;
102                         d-cache-sets = <128>; // 32KiB(size)/64(line-size)=512ways/4-way set
103                         i-cache-size = <0x8000>;
104                         i-cache-line-size = <64>;
105                         i-cache-sets = <256>; // 32KiB(size)/64(line-size)=512ways/2-way set
106                         next-level-cache = <&l2>;
107                 };
108 
109                 /* Source for cache-line-size + cache-sets
110                  * https://developer.arm.com/documentation/ddi0500
111                  * /e/level-2-memory-system/about-the-l2-memory-system?lang=en
112                  * Source for cache-size
113                  * https://datasheets.raspberrypi.com/cm/cm1-and-cm3-datasheet.pdf
114                  */
115                 l2: l2-cache0 {
116                         compatible = "cache";
117                         cache-unified;
118                         cache-size = <0x80000>;
119                         cache-line-size = <64>;
120                         cache-sets = <512>; // 512KiB(size)/64(line-size)=8192ways/16-way set
121                         cache-level = <2>;
122                 };
123         };
124 };
125 
126 /* Make the BCM2835-style global interrupt controller be a child of the
127  * CPU-local interrupt controller.
128  */
129 &intc {
130         compatible = "brcm,bcm2836-armctrl-ic";
131         reg = <0x7e00b200 0x200>;
132         interrupt-parent = <&local_intc>;
133         interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
134 };
135 
136 &cpu_thermal {
137         coefficients = <(-538)  412000>;
138 };
139 
140 /* enable thermal sensor with the correct compatible property set */
141 &thermal {
142         compatible = "brcm,bcm2837-thermal";
143         status = "okay";
144 };

~ [ 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