GNU Linux-libre 6.1.90-gnu
[releases.git] / arch / arm / boot / dts / bcm2835.dtsi
1 // SPDX-License-Identifier: GPL-2.0
2 #include "bcm283x.dtsi"
3 #include "bcm2835-common.dtsi"
4 #include "bcm2835-rpi-common.dtsi"
5
6 / {
7         compatible = "brcm,bcm2835";
8
9         cpus {
10                 #address-cells = <1>;
11                 #size-cells = <0>;
12
13                 cpu@0 {
14                         device_type = "cpu";
15                         compatible = "arm,arm1176jzf-s";
16                         reg = <0x0>;
17                         /* Source for d/i-cache-line-size and d/i-cache-sets
18                          * https://developer.arm.com/documentation/ddi0301
19                          * /h/level-one-memory-system/cache-organization?lang=en
20                          *
21                          * Source for d/i-cache-size
22                          * https://forums.raspberrypi.com/viewtopic.php?t=98428
23                          *
24                          * NOTE: The BCM2835 has a L2 cache but it is dedicated to the GPU
25                          * It can be shared with the CPU through fw settings,
26                          * but this is not recommended.
27                          */
28                         d-cache-size = <0x4000>;
29                         d-cache-line-size = <16>;
30                         d-cache-sets = <256>; // 16KiB(size)/16(line-size)=1024ways/4-way set
31                         i-cache-size = <0x4000>;
32                         i-cache-line-size = <16>;
33                         i-cache-sets = <256>; // 16KiB(size)/16(line-size)=1024ways/4-way set
34                 };
35         };
36
37         soc {
38                 ranges = <0x7e000000 0x20000000 0x02000000>;
39                 dma-ranges = <0x40000000 0x00000000 0x20000000>;
40         };
41
42         arm-pmu {
43                 compatible = "arm,arm1176-pmu";
44         };
45 };
46
47 &cpu_thermal {
48         coefficients = <(-538)  407000>;
49 };
50
51 /* enable thermal sensor with the correct compatible property set */
52 &thermal {
53         compatible = "brcm,bcm2835-thermal";
54         status = "okay";
55 };