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