xref: /linux/scripts/dtc/include-prefixes/arm64/arm/morello.dtsi (revision 7b26feb436d2ef5db1e8ba82c7ecb4c1cc869502)
18fc53e26SVincenzo Frascino// SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)
28fc53e26SVincenzo Frascino/*
38fc53e26SVincenzo Frascino * Copyright (c) 2020-2024, Arm Limited. All rights reserved.
48fc53e26SVincenzo Frascino */
58fc53e26SVincenzo Frascino
68fc53e26SVincenzo Frascino#include <dt-bindings/interrupt-controller/arm-gic.h>
78fc53e26SVincenzo Frascino
88fc53e26SVincenzo Frascino/ {
98fc53e26SVincenzo Frascino	interrupt-parent = <&gic>;
108fc53e26SVincenzo Frascino
118fc53e26SVincenzo Frascino	#address-cells = <2>;
128fc53e26SVincenzo Frascino	#size-cells = <2>;
138fc53e26SVincenzo Frascino
148fc53e26SVincenzo Frascino	soc_refclk50mhz: clock-50000000 {
158fc53e26SVincenzo Frascino		compatible = "fixed-clock";
168fc53e26SVincenzo Frascino		#clock-cells = <0>;
178fc53e26SVincenzo Frascino		clock-frequency = <50000000>;
188fc53e26SVincenzo Frascino		clock-output-names = "apb_pclk";
198fc53e26SVincenzo Frascino	};
208fc53e26SVincenzo Frascino
218fc53e26SVincenzo Frascino	soc_refclk85mhz: clock-85000000 {
228fc53e26SVincenzo Frascino		compatible = "fixed-clock";
238fc53e26SVincenzo Frascino		#clock-cells = <0>;
248fc53e26SVincenzo Frascino		clock-frequency = <85000000>;
258fc53e26SVincenzo Frascino		clock-output-names = "iofpga:aclk";
268fc53e26SVincenzo Frascino	};
278fc53e26SVincenzo Frascino
288fc53e26SVincenzo Frascino	cpus {
298fc53e26SVincenzo Frascino		#address-cells = <2>;
308fc53e26SVincenzo Frascino		#size-cells = <0>;
318fc53e26SVincenzo Frascino
328fc53e26SVincenzo Frascino		cpu0: cpu@0 {
338fc53e26SVincenzo Frascino			compatible = "arm,rainier";
348fc53e26SVincenzo Frascino			reg = <0x0 0x0>;
358fc53e26SVincenzo Frascino			device_type = "cpu";
368fc53e26SVincenzo Frascino			enable-method = "psci";
378fc53e26SVincenzo Frascino			/* 4 ways set associative */
388fc53e26SVincenzo Frascino			i-cache-size = <0x10000>;
398fc53e26SVincenzo Frascino			i-cache-line-size = <64>;
408fc53e26SVincenzo Frascino			i-cache-sets = <512>;
418fc53e26SVincenzo Frascino			d-cache-size = <0x10000>;
428fc53e26SVincenzo Frascino			d-cache-line-size = <64>;
438fc53e26SVincenzo Frascino			d-cache-sets = <512>;
448fc53e26SVincenzo Frascino			next-level-cache = <&l2_0>;
458fc53e26SVincenzo Frascino			clocks = <&scmi_dvfs 0>;
468fc53e26SVincenzo Frascino
47*0c562281SRob Herring (Arm)			l2_0: l2-cache {
488fc53e26SVincenzo Frascino				compatible = "cache";
498fc53e26SVincenzo Frascino				cache-level = <2>;
508fc53e26SVincenzo Frascino				/* 8 ways set associative */
518fc53e26SVincenzo Frascino				cache-size = <0x100000>;
528fc53e26SVincenzo Frascino				cache-line-size = <64>;
538fc53e26SVincenzo Frascino				cache-sets = <2048>;
548fc53e26SVincenzo Frascino				cache-unified;
558fc53e26SVincenzo Frascino				next-level-cache = <&l3_0>;
568fc53e26SVincenzo Frascino			};
578fc53e26SVincenzo Frascino		};
588fc53e26SVincenzo Frascino
598fc53e26SVincenzo Frascino		cpu1: cpu@100 {
608fc53e26SVincenzo Frascino			compatible = "arm,rainier";
618fc53e26SVincenzo Frascino			reg = <0x0 0x100>;
628fc53e26SVincenzo Frascino			device_type = "cpu";
638fc53e26SVincenzo Frascino			enable-method = "psci";
648fc53e26SVincenzo Frascino			/* 4 ways set associative */
658fc53e26SVincenzo Frascino			i-cache-size = <0x10000>;
668fc53e26SVincenzo Frascino			i-cache-line-size = <64>;
678fc53e26SVincenzo Frascino			i-cache-sets = <512>;
688fc53e26SVincenzo Frascino			d-cache-size = <0x10000>;
698fc53e26SVincenzo Frascino			d-cache-line-size = <64>;
708fc53e26SVincenzo Frascino			d-cache-sets = <512>;
718fc53e26SVincenzo Frascino			next-level-cache = <&l2_1>;
728fc53e26SVincenzo Frascino			clocks = <&scmi_dvfs 0>;
738fc53e26SVincenzo Frascino
74*0c562281SRob Herring (Arm)			l2_1: l2-cache {
758fc53e26SVincenzo Frascino				compatible = "cache";
768fc53e26SVincenzo Frascino				cache-level = <2>;
778fc53e26SVincenzo Frascino				/* 8 ways set associative */
788fc53e26SVincenzo Frascino				cache-size = <0x100000>;
798fc53e26SVincenzo Frascino				cache-line-size = <64>;
808fc53e26SVincenzo Frascino				cache-sets = <2048>;
818fc53e26SVincenzo Frascino				cache-unified;
828fc53e26SVincenzo Frascino				next-level-cache = <&l3_0>;
838fc53e26SVincenzo Frascino			};
848fc53e26SVincenzo Frascino		};
858fc53e26SVincenzo Frascino
868fc53e26SVincenzo Frascino		cpu2: cpu@10000 {
878fc53e26SVincenzo Frascino			compatible = "arm,rainier";
888fc53e26SVincenzo Frascino			reg = <0x0 0x10000>;
898fc53e26SVincenzo Frascino			device_type = "cpu";
908fc53e26SVincenzo Frascino			enable-method = "psci";
918fc53e26SVincenzo Frascino			/* 4 ways set associative */
928fc53e26SVincenzo Frascino			i-cache-size = <0x10000>;
938fc53e26SVincenzo Frascino			i-cache-line-size = <64>;
948fc53e26SVincenzo Frascino			i-cache-sets = <512>;
958fc53e26SVincenzo Frascino			d-cache-size = <0x10000>;
968fc53e26SVincenzo Frascino			d-cache-line-size = <64>;
978fc53e26SVincenzo Frascino			d-cache-sets = <512>;
988fc53e26SVincenzo Frascino			next-level-cache = <&l2_2>;
998fc53e26SVincenzo Frascino			clocks = <&scmi_dvfs 1>;
1008fc53e26SVincenzo Frascino
101*0c562281SRob Herring (Arm)			l2_2: l2-cache {
1028fc53e26SVincenzo Frascino				compatible = "cache";
1038fc53e26SVincenzo Frascino				cache-level = <2>;
1048fc53e26SVincenzo Frascino				/* 8 ways set associative */
1058fc53e26SVincenzo Frascino				cache-size = <0x100000>;
1068fc53e26SVincenzo Frascino				cache-line-size = <64>;
1078fc53e26SVincenzo Frascino				cache-sets = <2048>;
1088fc53e26SVincenzo Frascino				cache-unified;
1098fc53e26SVincenzo Frascino				next-level-cache = <&l3_0>;
1108fc53e26SVincenzo Frascino			};
1118fc53e26SVincenzo Frascino		};
1128fc53e26SVincenzo Frascino
1138fc53e26SVincenzo Frascino		cpu3: cpu@10100 {
1148fc53e26SVincenzo Frascino			compatible = "arm,rainier";
1158fc53e26SVincenzo Frascino			reg = <0x0 0x10100>;
1168fc53e26SVincenzo Frascino			device_type = "cpu";
1178fc53e26SVincenzo Frascino			enable-method = "psci";
1188fc53e26SVincenzo Frascino			/* 4 ways set associative */
1198fc53e26SVincenzo Frascino			i-cache-size = <0x10000>;
1208fc53e26SVincenzo Frascino			i-cache-line-size = <64>;
1218fc53e26SVincenzo Frascino			i-cache-sets = <512>;
1228fc53e26SVincenzo Frascino			d-cache-size = <0x10000>;
1238fc53e26SVincenzo Frascino			d-cache-line-size = <64>;
1248fc53e26SVincenzo Frascino			d-cache-sets = <512>;
1258fc53e26SVincenzo Frascino			next-level-cache = <&l2_3>;
1268fc53e26SVincenzo Frascino			clocks = <&scmi_dvfs 1>;
1278fc53e26SVincenzo Frascino
128*0c562281SRob Herring (Arm)			l2_3: l2-cache {
1298fc53e26SVincenzo Frascino				compatible = "cache";
1308fc53e26SVincenzo Frascino				cache-level = <2>;
1318fc53e26SVincenzo Frascino				/* 8 ways set associative */
1328fc53e26SVincenzo Frascino				cache-size = <0x100000>;
1338fc53e26SVincenzo Frascino				cache-line-size = <64>;
1348fc53e26SVincenzo Frascino				cache-sets = <2048>;
1358fc53e26SVincenzo Frascino				cache-unified;
1368fc53e26SVincenzo Frascino				next-level-cache = <&l3_0>;
1378fc53e26SVincenzo Frascino			};
1388fc53e26SVincenzo Frascino		};
139*0c562281SRob Herring (Arm)
140*0c562281SRob Herring (Arm)		l3_0: l3-cache {
141*0c562281SRob Herring (Arm)			compatible = "cache";
142*0c562281SRob Herring (Arm)			cache-level = <3>;
143*0c562281SRob Herring (Arm)			cache-size = <0x100000>;
144*0c562281SRob Herring (Arm)			cache-unified;
145*0c562281SRob Herring (Arm)		};
1468fc53e26SVincenzo Frascino	};
1478fc53e26SVincenzo Frascino
1488fc53e26SVincenzo Frascino	firmware {
1498fc53e26SVincenzo Frascino		interrupt-parent = <&gic>;
1508fc53e26SVincenzo Frascino
1518fc53e26SVincenzo Frascino		scmi {
1528fc53e26SVincenzo Frascino			compatible = "arm,scmi";
1538fc53e26SVincenzo Frascino			mbox-names = "tx", "rx";
1548fc53e26SVincenzo Frascino			mboxes = <&mailbox 1 0>, <&mailbox 1 1>;
1558fc53e26SVincenzo Frascino			shmem = <&cpu_scp_hpri0>, <&cpu_scp_hpri1>;
1568fc53e26SVincenzo Frascino			#address-cells = <1>;
1578fc53e26SVincenzo Frascino			#size-cells = <0>;
1588fc53e26SVincenzo Frascino
1598fc53e26SVincenzo Frascino			scmi_dvfs: protocol@13 {
1608fc53e26SVincenzo Frascino				reg = <0x13>;
1618fc53e26SVincenzo Frascino				#clock-cells = <1>;
1628fc53e26SVincenzo Frascino			};
1638fc53e26SVincenzo Frascino
1648fc53e26SVincenzo Frascino			scmi_clk: protocol@14 {
1658fc53e26SVincenzo Frascino				reg = <0x14>;
1668fc53e26SVincenzo Frascino				#clock-cells = <1>;
1678fc53e26SVincenzo Frascino			};
1688fc53e26SVincenzo Frascino		};
1698fc53e26SVincenzo Frascino	};
1708fc53e26SVincenzo Frascino
1718fc53e26SVincenzo Frascino	/* The first bank of memory, memory map is actually provided by UEFI. */
1728fc53e26SVincenzo Frascino	memory@80000000 {
1738fc53e26SVincenzo Frascino		device_type = "memory";
1748fc53e26SVincenzo Frascino		/* [0x80000000-0xffffffff] */
1758fc53e26SVincenzo Frascino		reg = <0x00000000 0x80000000 0x0 0x7f000000>;
1768fc53e26SVincenzo Frascino	};
1778fc53e26SVincenzo Frascino
1788fc53e26SVincenzo Frascino	memory@8080000000 {
1798fc53e26SVincenzo Frascino		device_type = "memory";
1808fc53e26SVincenzo Frascino		/* [0x8080000000-0x83f7ffffff] */
1818fc53e26SVincenzo Frascino		reg = <0x00000080 0x80000000 0x3 0x78000000>;
1828fc53e26SVincenzo Frascino	};
1838fc53e26SVincenzo Frascino
1848fc53e26SVincenzo Frascino	pmu {
1858fc53e26SVincenzo Frascino		compatible = "arm,rainier-pmu";
1868fc53e26SVincenzo Frascino		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
1878fc53e26SVincenzo Frascino	};
1888fc53e26SVincenzo Frascino
1898fc53e26SVincenzo Frascino	psci {
1908fc53e26SVincenzo Frascino		compatible = "arm,psci-0.2";
1918fc53e26SVincenzo Frascino		method = "smc";
1928fc53e26SVincenzo Frascino	};
1938fc53e26SVincenzo Frascino
1948fc53e26SVincenzo Frascino	reserved-memory {
1958fc53e26SVincenzo Frascino		#address-cells = <2>;
1968fc53e26SVincenzo Frascino		#size-cells = <2>;
1978fc53e26SVincenzo Frascino		ranges;
1988fc53e26SVincenzo Frascino
1998fc53e26SVincenzo Frascino		secure-firmware@ff000000 {
2008fc53e26SVincenzo Frascino			reg = <0x0 0xff000000 0x0 0x01000000>;
2018fc53e26SVincenzo Frascino			no-map;
2028fc53e26SVincenzo Frascino		};
2038fc53e26SVincenzo Frascino	};
2048fc53e26SVincenzo Frascino
2058fc53e26SVincenzo Frascino	spe-pmu {
2068fc53e26SVincenzo Frascino		compatible = "arm,statistical-profiling-extension-v1";
2078fc53e26SVincenzo Frascino		interrupts = <GIC_PPI 5 IRQ_TYPE_LEVEL_HIGH>;
2088fc53e26SVincenzo Frascino	};
2098fc53e26SVincenzo Frascino
2108fc53e26SVincenzo Frascino	soc: soc {
2118fc53e26SVincenzo Frascino		compatible = "simple-bus";
2128fc53e26SVincenzo Frascino		#address-cells = <2>;
2138fc53e26SVincenzo Frascino		#size-cells = <2>;
2148fc53e26SVincenzo Frascino		interrupt-parent = <&gic>;
2158fc53e26SVincenzo Frascino		ranges;
2168fc53e26SVincenzo Frascino
2178fc53e26SVincenzo Frascino		uart0: serial@2a400000 {
2188fc53e26SVincenzo Frascino			compatible = "arm,pl011", "arm,primecell";
2198fc53e26SVincenzo Frascino			reg = <0x0 0x2a400000 0x0 0x1000>;
2208fc53e26SVincenzo Frascino			interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
2218fc53e26SVincenzo Frascino			clocks = <&soc_refclk50mhz>, <&soc_refclk50mhz>;
2228fc53e26SVincenzo Frascino			clock-names = "uartclk", "apb_pclk";
2238fc53e26SVincenzo Frascino
2248fc53e26SVincenzo Frascino			status = "disabled";
2258fc53e26SVincenzo Frascino		};
2268fc53e26SVincenzo Frascino
2278fc53e26SVincenzo Frascino		gic: interrupt-controller@30000000 {
2288fc53e26SVincenzo Frascino			compatible = "arm,gic-v3";
2298fc53e26SVincenzo Frascino			reg = <0x0 0x30000000 0x0 0x10000>,	/* GICD */
2308fc53e26SVincenzo Frascino			      <0x0 0x300c0000 0x0 0x80000>;	/* GICR */
2318fc53e26SVincenzo Frascino
2328fc53e26SVincenzo Frascino			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
2338fc53e26SVincenzo Frascino
2348fc53e26SVincenzo Frascino			#interrupt-cells = <3>;
2358fc53e26SVincenzo Frascino			interrupt-controller;
2368fc53e26SVincenzo Frascino
2378fc53e26SVincenzo Frascino			#address-cells = <2>;
2388fc53e26SVincenzo Frascino			#size-cells = <2>;
2398fc53e26SVincenzo Frascino			ranges;
2408fc53e26SVincenzo Frascino
2418fc53e26SVincenzo Frascino			its1: msi-controller@30040000 {
2428fc53e26SVincenzo Frascino				compatible = "arm,gic-v3-its";
2438fc53e26SVincenzo Frascino				reg = <0x0 0x30040000 0x0 0x20000>;
2448fc53e26SVincenzo Frascino
2458fc53e26SVincenzo Frascino				msi-controller;
2468fc53e26SVincenzo Frascino				#msi-cells = <1>;
2478fc53e26SVincenzo Frascino			};
2488fc53e26SVincenzo Frascino
2498fc53e26SVincenzo Frascino			its2: msi-controller@30060000 {
2508fc53e26SVincenzo Frascino				compatible = "arm,gic-v3-its";
2518fc53e26SVincenzo Frascino				reg = <0x0 0x30060000 0x0 0x20000>;
2528fc53e26SVincenzo Frascino
2538fc53e26SVincenzo Frascino				msi-controller;
2548fc53e26SVincenzo Frascino				#msi-cells = <1>;
2558fc53e26SVincenzo Frascino			};
2568fc53e26SVincenzo Frascino
2578fc53e26SVincenzo Frascino			its_ccix: msi-controller@30080000 {
2588fc53e26SVincenzo Frascino				compatible = "arm,gic-v3-its";
2598fc53e26SVincenzo Frascino				reg = <0x0 0x30080000 0x0 0x20000>;
2608fc53e26SVincenzo Frascino
2618fc53e26SVincenzo Frascino				msi-controller;
2628fc53e26SVincenzo Frascino				#msi-cells = <1>;
2638fc53e26SVincenzo Frascino			};
2648fc53e26SVincenzo Frascino
2658fc53e26SVincenzo Frascino			its_pcie: msi-controller@300a0000 {
2668fc53e26SVincenzo Frascino				compatible = "arm,gic-v3-its";
2678fc53e26SVincenzo Frascino				reg = <0x0 0x300a0000 0x0 0x20000>;
2688fc53e26SVincenzo Frascino
2698fc53e26SVincenzo Frascino				msi-controller;
2708fc53e26SVincenzo Frascino				#msi-cells = <1>;
2718fc53e26SVincenzo Frascino			};
2728fc53e26SVincenzo Frascino		};
2738fc53e26SVincenzo Frascino
2748fc53e26SVincenzo Frascino		smmu_dp: iommu@2ce00000 {
2758fc53e26SVincenzo Frascino			compatible = "arm,smmu-v3";
2768fc53e26SVincenzo Frascino			reg = <0x0 0x2ce00000 0x0 0x40000>;
2778fc53e26SVincenzo Frascino
2788fc53e26SVincenzo Frascino			interrupts = <GIC_SPI 76 IRQ_TYPE_EDGE_RISING>,
2798fc53e26SVincenzo Frascino				     <GIC_SPI 80 IRQ_TYPE_EDGE_RISING>,
2808fc53e26SVincenzo Frascino				     <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>;
2818fc53e26SVincenzo Frascino			interrupt-names = "eventq", "gerror", "cmdq-sync";
2828fc53e26SVincenzo Frascino			#iommu-cells = <1>;
2838fc53e26SVincenzo Frascino		};
2848fc53e26SVincenzo Frascino
2858fc53e26SVincenzo Frascino		mailbox: mhu@45000000 {
2868fc53e26SVincenzo Frascino			compatible = "arm,mhu-doorbell", "arm,primecell";
2878fc53e26SVincenzo Frascino			reg = <0x0 0x45000000 0x0 0x1000>;
2888fc53e26SVincenzo Frascino
2898fc53e26SVincenzo Frascino			interrupts = <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>,
2908fc53e26SVincenzo Frascino				     <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>;
2918fc53e26SVincenzo Frascino			#mbox-cells = <2>;
2928fc53e26SVincenzo Frascino			clocks = <&soc_refclk50mhz>;
2938fc53e26SVincenzo Frascino			clock-names = "apb_pclk";
2948fc53e26SVincenzo Frascino		};
2958fc53e26SVincenzo Frascino
2968fc53e26SVincenzo Frascino		sram: sram@6000000 {
2978fc53e26SVincenzo Frascino			compatible = "mmio-sram";
2988fc53e26SVincenzo Frascino			reg = <0x0 0x06000000 0x0 0x8000>;
2998fc53e26SVincenzo Frascino			ranges = <0 0x0 0x06000000 0x8000>;
3008fc53e26SVincenzo Frascino
3018fc53e26SVincenzo Frascino			#address-cells = <1>;
3028fc53e26SVincenzo Frascino			#size-cells = <1>;
3038fc53e26SVincenzo Frascino
3048fc53e26SVincenzo Frascino			cpu_scp_hpri0: scp-sram@0 {
3058fc53e26SVincenzo Frascino				compatible = "arm,scmi-shmem";
3068fc53e26SVincenzo Frascino				reg = <0x0 0x80>;
3078fc53e26SVincenzo Frascino			};
3088fc53e26SVincenzo Frascino
3098fc53e26SVincenzo Frascino			cpu_scp_hpri1: scp-sram@80 {
3108fc53e26SVincenzo Frascino				compatible = "arm,scmi-shmem";
3118fc53e26SVincenzo Frascino				reg = <0x80 0x80>;
3128fc53e26SVincenzo Frascino			};
3138fc53e26SVincenzo Frascino		};
3148fc53e26SVincenzo Frascino	};
3158fc53e26SVincenzo Frascino
3168fc53e26SVincenzo Frascino	timer {
3178fc53e26SVincenzo Frascino		compatible = "arm,armv8-timer";
3188fc53e26SVincenzo Frascino		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
3198fc53e26SVincenzo Frascino			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
3208fc53e26SVincenzo Frascino			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
3218fc53e26SVincenzo Frascino			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
3228fc53e26SVincenzo Frascino	};
3238fc53e26SVincenzo Frascino};
324