/*
 * Copyright (C) 2022 Google LLC
 */

#include <dt-bindings/interrupt-controller/arm-gic.h>

#define PLACEHOLDER	0xffffffff
#define PLACEHOLDER2	PLACEHOLDER PLACEHOLDER
#define PLACEHOLDER4	PLACEHOLDER2 PLACEHOLDER2

#define IRQ_BASE 4

/dts-v1/;

/ {
	interrupt-parent = <&intc>;
	compatible = "linux,dummy-virt";
	#address-cells = <2>;
	#size-cells = <2>;

	chosen {
		stdout-path = "/uart@3f8";
		linux,pci-probe-only = <1>;
		kaslr-seed = <PLACEHOLDER2>;
		avf,strict-boot;
		avf,new-instance;
	};

	memory {
		device_type = "memory";
		reg = <0x00 0x80000000 PLACEHOLDER2>;
	};

	reserved-memory {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;
		swiotlb: restricted_dma_reserved {
			compatible = "restricted-dma-pool";
			reg = <PLACEHOLDER4>;
			size = <PLACEHOLDER2>;
			alignment = <PLACEHOLDER2>;
		};

		dice {
			compatible = "google,open-dice";
			no-map;
			reg = <PLACEHOLDER4>;
		};
	};

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu-map {
			cluster0 {
				core0 { cpu = <PLACEHOLDER>; };
				core1 { cpu = <PLACEHOLDER>; };
				core2 { cpu = <PLACEHOLDER>; };
				core3 { cpu = <PLACEHOLDER>; };
				core4 { cpu = <PLACEHOLDER>; };
				core5 { cpu = <PLACEHOLDER>; };
			};
			cluster1 {
				core0 { cpu = <PLACEHOLDER>; };
				core1 { cpu = <PLACEHOLDER>; };
				core2 { cpu = <PLACEHOLDER>; };
				core3 { cpu = <PLACEHOLDER>; };
				core4 { cpu = <PLACEHOLDER>; };
				core5 { cpu = <PLACEHOLDER>; };
			};
			cluster2 {
				core0 { cpu = <PLACEHOLDER>; };
				core1 { cpu = <PLACEHOLDER>; };
				core2 { cpu = <PLACEHOLDER>; };
				core3 { cpu = <PLACEHOLDER>; };
				core4 { cpu = <PLACEHOLDER>; };
				core5 { cpu = <PLACEHOLDER>; };
			};
		};

		cpu0: cpu@0 {
			device_type = "cpu";
			compatible = "arm,arm-v8";
			enable-method = "psci";
			reg = <0x0>;
			capacity-dmips-mhz = <PLACEHOLDER>;
			operating-points-v2 = <&opp_table0>;
			opp_table0: opp-table-0 {
				compatible = "operating-points-v2";

				opp1 { opp-hz = <PLACEHOLDER2>; };
				opp2 { opp-hz = <PLACEHOLDER2>; };
				opp3 { opp-hz = <PLACEHOLDER2>; };
				opp4 { opp-hz = <PLACEHOLDER2>; };
				opp5 { opp-hz = <PLACEHOLDER2>; };
				opp6 { opp-hz = <PLACEHOLDER2>; };
				opp7 { opp-hz = <PLACEHOLDER2>; };
				opp8 { opp-hz = <PLACEHOLDER2>; };
				opp9 { opp-hz = <PLACEHOLDER2>; };
				opp10 { opp-hz = <PLACEHOLDER2>; };
				opp11 { opp-hz = <PLACEHOLDER2>; };
				opp12 { opp-hz = <PLACEHOLDER2>; };
				opp13 { opp-hz = <PLACEHOLDER2>; };
				opp14 { opp-hz = <PLACEHOLDER2>; };
				opp15 { opp-hz = <PLACEHOLDER2>; };
				opp16 { opp-hz = <PLACEHOLDER2>; };
				opp17 { opp-hz = <PLACEHOLDER2>; };
				opp18 { opp-hz = <PLACEHOLDER2>; };
				opp19 { opp-hz = <PLACEHOLDER2>; };
				opp20 { opp-hz = <PLACEHOLDER2>; };
			};
		};
		cpu1: cpu@1 {
			device_type = "cpu";
			compatible = "arm,arm-v8";
			enable-method = "psci";
			reg = <0x1>;
			capacity-dmips-mhz = <PLACEHOLDER>;
			operating-points-v2 = <&opp_table1>;
			opp_table1: opp-table-1 {
				compatible = "operating-points-v2";

				opp1 { opp-hz = <PLACEHOLDER2>; };
				opp2 { opp-hz = <PLACEHOLDER2>; };
				opp3 { opp-hz = <PLACEHOLDER2>; };
				opp4 { opp-hz = <PLACEHOLDER2>; };
				opp5 { opp-hz = <PLACEHOLDER2>; };
				opp6 { opp-hz = <PLACEHOLDER2>; };
				opp7 { opp-hz = <PLACEHOLDER2>; };
				opp8 { opp-hz = <PLACEHOLDER2>; };
				opp9 { opp-hz = <PLACEHOLDER2>; };
				opp10 { opp-hz = <PLACEHOLDER2>; };
				opp11 { opp-hz = <PLACEHOLDER2>; };
				opp12 { opp-hz = <PLACEHOLDER2>; };
				opp13 { opp-hz = <PLACEHOLDER2>; };
				opp14 { opp-hz = <PLACEHOLDER2>; };
				opp15 { opp-hz = <PLACEHOLDER2>; };
				opp16 { opp-hz = <PLACEHOLDER2>; };
				opp17 { opp-hz = <PLACEHOLDER2>; };
				opp18 { opp-hz = <PLACEHOLDER2>; };
				opp19 { opp-hz = <PLACEHOLDER2>; };
				opp20 { opp-hz = <PLACEHOLDER2>; };
			};
		};
		cpu2: cpu@2 {
			device_type = "cpu";
			compatible = "arm,arm-v8";
			enable-method = "psci";
			reg = <0x2>;
			capacity-dmips-mhz = <PLACEHOLDER>;
			operating-points-v2 = <&opp_table2>;
			opp_table2: opp-table-2 {
				compatible = "operating-points-v2";

				opp1 { opp-hz = <PLACEHOLDER2>; };
				opp2 { opp-hz = <PLACEHOLDER2>; };
				opp3 { opp-hz = <PLACEHOLDER2>; };
				opp4 { opp-hz = <PLACEHOLDER2>; };
				opp5 { opp-hz = <PLACEHOLDER2>; };
				opp6 { opp-hz = <PLACEHOLDER2>; };
				opp7 { opp-hz = <PLACEHOLDER2>; };
				opp8 { opp-hz = <PLACEHOLDER2>; };
				opp9 { opp-hz = <PLACEHOLDER2>; };
				opp10 { opp-hz = <PLACEHOLDER2>; };
				opp11 { opp-hz = <PLACEHOLDER2>; };
				opp12 { opp-hz = <PLACEHOLDER2>; };
				opp13 { opp-hz = <PLACEHOLDER2>; };
				opp14 { opp-hz = <PLACEHOLDER2>; };
				opp15 { opp-hz = <PLACEHOLDER2>; };
				opp16 { opp-hz = <PLACEHOLDER2>; };
				opp17 { opp-hz = <PLACEHOLDER2>; };
				opp18 { opp-hz = <PLACEHOLDER2>; };
				opp19 { opp-hz = <PLACEHOLDER2>; };
				opp20 { opp-hz = <PLACEHOLDER2>; };
			};
		};
		cpu3: cpu@3 {
			device_type = "cpu";
			compatible = "arm,arm-v8";
			enable-method = "psci";
			reg = <0x3>;
			capacity-dmips-mhz = <PLACEHOLDER>;
			operating-points-v2 = <&opp_table3>;
			opp_table3: opp-table-3 {
				compatible = "operating-points-v2";

				opp1 { opp-hz = <PLACEHOLDER2>; };
				opp2 { opp-hz = <PLACEHOLDER2>; };
				opp3 { opp-hz = <PLACEHOLDER2>; };
				opp4 { opp-hz = <PLACEHOLDER2>; };
				opp5 { opp-hz = <PLACEHOLDER2>; };
				opp6 { opp-hz = <PLACEHOLDER2>; };
				opp7 { opp-hz = <PLACEHOLDER2>; };
				opp8 { opp-hz = <PLACEHOLDER2>; };
				opp9 { opp-hz = <PLACEHOLDER2>; };
				opp10 { opp-hz = <PLACEHOLDER2>; };
				opp11 { opp-hz = <PLACEHOLDER2>; };
				opp12 { opp-hz = <PLACEHOLDER2>; };
				opp13 { opp-hz = <PLACEHOLDER2>; };
				opp14 { opp-hz = <PLACEHOLDER2>; };
				opp15 { opp-hz = <PLACEHOLDER2>; };
				opp16 { opp-hz = <PLACEHOLDER2>; };
				opp17 { opp-hz = <PLACEHOLDER2>; };
				opp18 { opp-hz = <PLACEHOLDER2>; };
				opp19 { opp-hz = <PLACEHOLDER2>; };
				opp20 { opp-hz = <PLACEHOLDER2>; };
			};
		};
		cpu4: cpu@4 {
			device_type = "cpu";
			compatible = "arm,arm-v8";
			enable-method = "psci";
			reg = <0x4>;
			capacity-dmips-mhz = <PLACEHOLDER>;
			operating-points-v2 = <&opp_table4>;
			opp_table4: opp-table-4 {
				compatible = "operating-points-v2";

				opp1 { opp-hz = <PLACEHOLDER2>; };
				opp2 { opp-hz = <PLACEHOLDER2>; };
				opp3 { opp-hz = <PLACEHOLDER2>; };
				opp4 { opp-hz = <PLACEHOLDER2>; };
				opp5 { opp-hz = <PLACEHOLDER2>; };
				opp6 { opp-hz = <PLACEHOLDER2>; };
				opp7 { opp-hz = <PLACEHOLDER2>; };
				opp8 { opp-hz = <PLACEHOLDER2>; };
				opp9 { opp-hz = <PLACEHOLDER2>; };
				opp10 { opp-hz = <PLACEHOLDER2>; };
				opp11 { opp-hz = <PLACEHOLDER2>; };
				opp12 { opp-hz = <PLACEHOLDER2>; };
				opp13 { opp-hz = <PLACEHOLDER2>; };
				opp14 { opp-hz = <PLACEHOLDER2>; };
				opp15 { opp-hz = <PLACEHOLDER2>; };
				opp16 { opp-hz = <PLACEHOLDER2>; };
				opp17 { opp-hz = <PLACEHOLDER2>; };
				opp18 { opp-hz = <PLACEHOLDER2>; };
				opp19 { opp-hz = <PLACEHOLDER2>; };
				opp20 { opp-hz = <PLACEHOLDER2>; };
			};
		};
		cpu5: cpu@5 {
			device_type = "cpu";
			compatible = "arm,arm-v8";
			enable-method = "psci";
			reg = <0x5>;
			capacity-dmips-mhz = <PLACEHOLDER>;
			operating-points-v2 = <&opp_table5>;
			opp_table5: opp-table-5 {
				compatible = "operating-points-v2";

				opp1 { opp-hz = <PLACEHOLDER2>; };
				opp2 { opp-hz = <PLACEHOLDER2>; };
				opp3 { opp-hz = <PLACEHOLDER2>; };
				opp4 { opp-hz = <PLACEHOLDER2>; };
				opp5 { opp-hz = <PLACEHOLDER2>; };
				opp6 { opp-hz = <PLACEHOLDER2>; };
				opp7 { opp-hz = <PLACEHOLDER2>; };
				opp8 { opp-hz = <PLACEHOLDER2>; };
				opp9 { opp-hz = <PLACEHOLDER2>; };
				opp10 { opp-hz = <PLACEHOLDER2>; };
				opp11 { opp-hz = <PLACEHOLDER2>; };
				opp12 { opp-hz = <PLACEHOLDER2>; };
				opp13 { opp-hz = <PLACEHOLDER2>; };
				opp14 { opp-hz = <PLACEHOLDER2>; };
				opp15 { opp-hz = <PLACEHOLDER2>; };
				opp16 { opp-hz = <PLACEHOLDER2>; };
				opp17 { opp-hz = <PLACEHOLDER2>; };
				opp18 { opp-hz = <PLACEHOLDER2>; };
				opp19 { opp-hz = <PLACEHOLDER2>; };
				opp20 { opp-hz = <PLACEHOLDER2>; };
			};
		};
		cpu6: cpu@6 {
			device_type = "cpu";
			compatible = "arm,arm-v8";
			enable-method = "psci";
			reg = <0x6>;
			capacity-dmips-mhz = <PLACEHOLDER>;
			operating-points-v2 = <&opp_table6>;
			opp_table6: opp-table-6 {
				compatible = "operating-points-v2";

				opp1 { opp-hz = <PLACEHOLDER2>; };
				opp2 { opp-hz = <PLACEHOLDER2>; };
				opp3 { opp-hz = <PLACEHOLDER2>; };
				opp4 { opp-hz = <PLACEHOLDER2>; };
				opp5 { opp-hz = <PLACEHOLDER2>; };
				opp6 { opp-hz = <PLACEHOLDER2>; };
				opp7 { opp-hz = <PLACEHOLDER2>; };
				opp8 { opp-hz = <PLACEHOLDER2>; };
				opp9 { opp-hz = <PLACEHOLDER2>; };
				opp10 { opp-hz = <PLACEHOLDER2>; };
				opp11 { opp-hz = <PLACEHOLDER2>; };
				opp12 { opp-hz = <PLACEHOLDER2>; };
				opp13 { opp-hz = <PLACEHOLDER2>; };
				opp14 { opp-hz = <PLACEHOLDER2>; };
				opp15 { opp-hz = <PLACEHOLDER2>; };
				opp16 { opp-hz = <PLACEHOLDER2>; };
				opp17 { opp-hz = <PLACEHOLDER2>; };
				opp18 { opp-hz = <PLACEHOLDER2>; };
				opp19 { opp-hz = <PLACEHOLDER2>; };
				opp20 { opp-hz = <PLACEHOLDER2>; };
			};
		};
		cpu7: cpu@7 {
			device_type = "cpu";
			compatible = "arm,arm-v8";
			enable-method = "psci";
			reg = <0x7>;
			capacity-dmips-mhz = <PLACEHOLDER>;
			operating-points-v2 = <&opp_table7>;
			opp_table7: opp-table-7 {
				compatible = "operating-points-v2";

				opp1 { opp-hz = <PLACEHOLDER2>; };
				opp2 { opp-hz = <PLACEHOLDER2>; };
				opp3 { opp-hz = <PLACEHOLDER2>; };
				opp4 { opp-hz = <PLACEHOLDER2>; };
				opp5 { opp-hz = <PLACEHOLDER2>; };
				opp6 { opp-hz = <PLACEHOLDER2>; };
				opp7 { opp-hz = <PLACEHOLDER2>; };
				opp8 { opp-hz = <PLACEHOLDER2>; };
				opp9 { opp-hz = <PLACEHOLDER2>; };
				opp10 { opp-hz = <PLACEHOLDER2>; };
				opp11 { opp-hz = <PLACEHOLDER2>; };
				opp12 { opp-hz = <PLACEHOLDER2>; };
				opp13 { opp-hz = <PLACEHOLDER2>; };
				opp14 { opp-hz = <PLACEHOLDER2>; };
				opp15 { opp-hz = <PLACEHOLDER2>; };
				opp16 { opp-hz = <PLACEHOLDER2>; };
				opp17 { opp-hz = <PLACEHOLDER2>; };
				opp18 { opp-hz = <PLACEHOLDER2>; };
				opp19 { opp-hz = <PLACEHOLDER2>; };
				opp20 { opp-hz = <PLACEHOLDER2>; };
			};
		};
		cpu8: cpu@8 {
			device_type = "cpu";
			compatible = "arm,arm-v8";
			enable-method = "psci";
			reg = <0x8>;
			capacity-dmips-mhz = <PLACEHOLDER>;
			operating-points-v2 = <&opp_table8>;
			opp_table8: opp-table-8 {
				compatible = "operating-points-v2";

				opp1 { opp-hz = <PLACEHOLDER2>; };
				opp2 { opp-hz = <PLACEHOLDER2>; };
				opp3 { opp-hz = <PLACEHOLDER2>; };
				opp4 { opp-hz = <PLACEHOLDER2>; };
				opp5 { opp-hz = <PLACEHOLDER2>; };
				opp6 { opp-hz = <PLACEHOLDER2>; };
				opp7 { opp-hz = <PLACEHOLDER2>; };
				opp8 { opp-hz = <PLACEHOLDER2>; };
				opp9 { opp-hz = <PLACEHOLDER2>; };
				opp10 { opp-hz = <PLACEHOLDER2>; };
				opp11 { opp-hz = <PLACEHOLDER2>; };
				opp12 { opp-hz = <PLACEHOLDER2>; };
				opp13 { opp-hz = <PLACEHOLDER2>; };
				opp14 { opp-hz = <PLACEHOLDER2>; };
				opp15 { opp-hz = <PLACEHOLDER2>; };
				opp16 { opp-hz = <PLACEHOLDER2>; };
				opp17 { opp-hz = <PLACEHOLDER2>; };
				opp18 { opp-hz = <PLACEHOLDER2>; };
				opp19 { opp-hz = <PLACEHOLDER2>; };
				opp20 { opp-hz = <PLACEHOLDER2>; };
			};
		};
		cpu9: cpu@9 {
			device_type = "cpu";
			compatible = "arm,arm-v8";
			enable-method = "psci";
			reg = <0x9>;
			capacity-dmips-mhz = <PLACEHOLDER>;
			operating-points-v2 = <&opp_table9>;
			opp_table9: opp-table-9 {
				compatible = "operating-points-v2";

				opp1 { opp-hz = <PLACEHOLDER2>; };
				opp2 { opp-hz = <PLACEHOLDER2>; };
				opp3 { opp-hz = <PLACEHOLDER2>; };
				opp4 { opp-hz = <PLACEHOLDER2>; };
				opp5 { opp-hz = <PLACEHOLDER2>; };
				opp6 { opp-hz = <PLACEHOLDER2>; };
				opp7 { opp-hz = <PLACEHOLDER2>; };
				opp8 { opp-hz = <PLACEHOLDER2>; };
				opp9 { opp-hz = <PLACEHOLDER2>; };
				opp10 { opp-hz = <PLACEHOLDER2>; };
				opp11 { opp-hz = <PLACEHOLDER2>; };
				opp12 { opp-hz = <PLACEHOLDER2>; };
				opp13 { opp-hz = <PLACEHOLDER2>; };
				opp14 { opp-hz = <PLACEHOLDER2>; };
				opp15 { opp-hz = <PLACEHOLDER2>; };
				opp16 { opp-hz = <PLACEHOLDER2>; };
				opp17 { opp-hz = <PLACEHOLDER2>; };
				opp18 { opp-hz = <PLACEHOLDER2>; };
				opp19 { opp-hz = <PLACEHOLDER2>; };
				opp20 { opp-hz = <PLACEHOLDER2>; };
			};
		};
		cpu10: cpu@a {
			device_type = "cpu";
			compatible = "arm,arm-v8";
			enable-method = "psci";
			reg = <0xa>;
			capacity-dmips-mhz = <PLACEHOLDER>;
			operating-points-v2 = <&opp_table10>;
			opp_table10: opp-table-10 {
				compatible = "operating-points-v2";

				opp1 { opp-hz = <PLACEHOLDER2>; };
				opp2 { opp-hz = <PLACEHOLDER2>; };
				opp3 { opp-hz = <PLACEHOLDER2>; };
				opp4 { opp-hz = <PLACEHOLDER2>; };
				opp5 { opp-hz = <PLACEHOLDER2>; };
				opp6 { opp-hz = <PLACEHOLDER2>; };
				opp7 { opp-hz = <PLACEHOLDER2>; };
				opp8 { opp-hz = <PLACEHOLDER2>; };
				opp9 { opp-hz = <PLACEHOLDER2>; };
				opp10 { opp-hz = <PLACEHOLDER2>; };
				opp11 { opp-hz = <PLACEHOLDER2>; };
				opp12 { opp-hz = <PLACEHOLDER2>; };
				opp13 { opp-hz = <PLACEHOLDER2>; };
				opp14 { opp-hz = <PLACEHOLDER2>; };
				opp15 { opp-hz = <PLACEHOLDER2>; };
				opp16 { opp-hz = <PLACEHOLDER2>; };
				opp17 { opp-hz = <PLACEHOLDER2>; };
				opp18 { opp-hz = <PLACEHOLDER2>; };
				opp19 { opp-hz = <PLACEHOLDER2>; };
				opp20 { opp-hz = <PLACEHOLDER2>; };
			};
		};
		cpu11: cpu@b {
			device_type = "cpu";
			compatible = "arm,arm-v8";
			enable-method = "psci";
			reg = <0xb>;
			capacity-dmips-mhz = <PLACEHOLDER>;
			operating-points-v2 = <&opp_table11>;
			opp_table11: opp-table-11 {
				compatible = "operating-points-v2";

				opp1 { opp-hz = <PLACEHOLDER2>; };
				opp2 { opp-hz = <PLACEHOLDER2>; };
				opp3 { opp-hz = <PLACEHOLDER2>; };
				opp4 { opp-hz = <PLACEHOLDER2>; };
				opp5 { opp-hz = <PLACEHOLDER2>; };
				opp6 { opp-hz = <PLACEHOLDER2>; };
				opp7 { opp-hz = <PLACEHOLDER2>; };
				opp8 { opp-hz = <PLACEHOLDER2>; };
				opp9 { opp-hz = <PLACEHOLDER2>; };
				opp10 { opp-hz = <PLACEHOLDER2>; };
				opp11 { opp-hz = <PLACEHOLDER2>; };
				opp12 { opp-hz = <PLACEHOLDER2>; };
				opp13 { opp-hz = <PLACEHOLDER2>; };
				opp14 { opp-hz = <PLACEHOLDER2>; };
				opp15 { opp-hz = <PLACEHOLDER2>; };
				opp16 { opp-hz = <PLACEHOLDER2>; };
				opp17 { opp-hz = <PLACEHOLDER2>; };
				opp18 { opp-hz = <PLACEHOLDER2>; };
				opp19 { opp-hz = <PLACEHOLDER2>; };
				opp20 { opp-hz = <PLACEHOLDER2>; };
			};
		};
		cpu12: cpu@c {
			device_type = "cpu";
			compatible = "arm,arm-v8";
			enable-method = "psci";
			reg = <0xc>;
			capacity-dmips-mhz = <PLACEHOLDER>;
			operating-points-v2 = <&opp_table12>;
			opp_table12: opp-table-12 {
				compatible = "operating-points-v2";

				opp1 { opp-hz = <PLACEHOLDER2>; };
				opp2 { opp-hz = <PLACEHOLDER2>; };
				opp3 { opp-hz = <PLACEHOLDER2>; };
				opp4 { opp-hz = <PLACEHOLDER2>; };
				opp5 { opp-hz = <PLACEHOLDER2>; };
				opp6 { opp-hz = <PLACEHOLDER2>; };
				opp7 { opp-hz = <PLACEHOLDER2>; };
				opp8 { opp-hz = <PLACEHOLDER2>; };
				opp9 { opp-hz = <PLACEHOLDER2>; };
				opp10 { opp-hz = <PLACEHOLDER2>; };
				opp11 { opp-hz = <PLACEHOLDER2>; };
				opp12 { opp-hz = <PLACEHOLDER2>; };
				opp13 { opp-hz = <PLACEHOLDER2>; };
				opp14 { opp-hz = <PLACEHOLDER2>; };
				opp15 { opp-hz = <PLACEHOLDER2>; };
				opp16 { opp-hz = <PLACEHOLDER2>; };
				opp17 { opp-hz = <PLACEHOLDER2>; };
				opp18 { opp-hz = <PLACEHOLDER2>; };
				opp19 { opp-hz = <PLACEHOLDER2>; };
				opp20 { opp-hz = <PLACEHOLDER2>; };
			};
		};
		cpu13: cpu@d {
			device_type = "cpu";
			compatible = "arm,arm-v8";
			enable-method = "psci";
			reg = <0xd>;
			capacity-dmips-mhz = <PLACEHOLDER>;
			operating-points-v2 = <&opp_table13>;
			opp_table13: opp-table-13 {
				compatible = "operating-points-v2";

				opp1 { opp-hz = <PLACEHOLDER2>; };
				opp2 { opp-hz = <PLACEHOLDER2>; };
				opp3 { opp-hz = <PLACEHOLDER2>; };
				opp4 { opp-hz = <PLACEHOLDER2>; };
				opp5 { opp-hz = <PLACEHOLDER2>; };
				opp6 { opp-hz = <PLACEHOLDER2>; };
				opp7 { opp-hz = <PLACEHOLDER2>; };
				opp8 { opp-hz = <PLACEHOLDER2>; };
				opp9 { opp-hz = <PLACEHOLDER2>; };
				opp10 { opp-hz = <PLACEHOLDER2>; };
				opp11 { opp-hz = <PLACEHOLDER2>; };
				opp12 { opp-hz = <PLACEHOLDER2>; };
				opp13 { opp-hz = <PLACEHOLDER2>; };
				opp14 { opp-hz = <PLACEHOLDER2>; };
				opp15 { opp-hz = <PLACEHOLDER2>; };
				opp16 { opp-hz = <PLACEHOLDER2>; };
				opp17 { opp-hz = <PLACEHOLDER2>; };
				opp18 { opp-hz = <PLACEHOLDER2>; };
				opp19 { opp-hz = <PLACEHOLDER2>; };
				opp20 { opp-hz = <PLACEHOLDER2>; };
			};
		};
		cpu14: cpu@e {
			device_type = "cpu";
			compatible = "arm,arm-v8";
			enable-method = "psci";
			reg = <0xe>;
			capacity-dmips-mhz = <PLACEHOLDER>;
			operating-points-v2 = <&opp_table14>;
			opp_table14: opp-table-14 {
				compatible = "operating-points-v2";

				opp1 { opp-hz = <PLACEHOLDER2>; };
				opp2 { opp-hz = <PLACEHOLDER2>; };
				opp3 { opp-hz = <PLACEHOLDER2>; };
				opp4 { opp-hz = <PLACEHOLDER2>; };
				opp5 { opp-hz = <PLACEHOLDER2>; };
				opp6 { opp-hz = <PLACEHOLDER2>; };
				opp7 { opp-hz = <PLACEHOLDER2>; };
				opp8 { opp-hz = <PLACEHOLDER2>; };
				opp9 { opp-hz = <PLACEHOLDER2>; };
				opp10 { opp-hz = <PLACEHOLDER2>; };
				opp11 { opp-hz = <PLACEHOLDER2>; };
				opp12 { opp-hz = <PLACEHOLDER2>; };
				opp13 { opp-hz = <PLACEHOLDER2>; };
				opp14 { opp-hz = <PLACEHOLDER2>; };
				opp15 { opp-hz = <PLACEHOLDER2>; };
				opp16 { opp-hz = <PLACEHOLDER2>; };
				opp17 { opp-hz = <PLACEHOLDER2>; };
				opp18 { opp-hz = <PLACEHOLDER2>; };
				opp19 { opp-hz = <PLACEHOLDER2>; };
				opp20 { opp-hz = <PLACEHOLDER2>; };
			};
		};
		cpu15: cpu@f {
			device_type = "cpu";
			compatible = "arm,arm-v8";
			enable-method = "psci";
			reg = <0xf>;
			capacity-dmips-mhz = <PLACEHOLDER>;
			operating-points-v2 = <&opp_table15>;
			opp_table15: opp-table-15 {
				compatible = "operating-points-v2";

				opp1 { opp-hz = <PLACEHOLDER2>; };
				opp2 { opp-hz = <PLACEHOLDER2>; };
				opp3 { opp-hz = <PLACEHOLDER2>; };
				opp4 { opp-hz = <PLACEHOLDER2>; };
				opp5 { opp-hz = <PLACEHOLDER2>; };
				opp6 { opp-hz = <PLACEHOLDER2>; };
				opp7 { opp-hz = <PLACEHOLDER2>; };
				opp8 { opp-hz = <PLACEHOLDER2>; };
				opp9 { opp-hz = <PLACEHOLDER2>; };
				opp10 { opp-hz = <PLACEHOLDER2>; };
				opp11 { opp-hz = <PLACEHOLDER2>; };
				opp12 { opp-hz = <PLACEHOLDER2>; };
				opp13 { opp-hz = <PLACEHOLDER2>; };
				opp14 { opp-hz = <PLACEHOLDER2>; };
				opp15 { opp-hz = <PLACEHOLDER2>; };
				opp16 { opp-hz = <PLACEHOLDER2>; };
				opp17 { opp-hz = <PLACEHOLDER2>; };
				opp18 { opp-hz = <PLACEHOLDER2>; };
				opp19 { opp-hz = <PLACEHOLDER2>; };
				opp20 { opp-hz = <PLACEHOLDER2>; };
			};
		};
	};

	intc: intc {
		compatible = "arm,gic-v3";
		#address-cells = <2>;
		#size-cells = <2>;
		#interrupt-cells = <3>;
		interrupt-controller;
		reg = <0x00 0x3fff0000 0x00 0x10000>, <PLACEHOLDER4>;
	};

	timer {
		compatible = "arm,armv8-timer";
		always-on;
		/* The IRQ type needs to be OR-ed with the CPU mask */
		interrupts = <GIC_PPI 0xd IRQ_TYPE_LEVEL_LOW
		              GIC_PPI 0xe IRQ_TYPE_LEVEL_LOW
			      GIC_PPI 0xb IRQ_TYPE_LEVEL_LOW
			      GIC_PPI 0xa IRQ_TYPE_LEVEL_LOW>;
	};

	uart@2e8 {
		compatible = "ns16550a";
		reg = <0x00 0x2e8 0x00 0x8>;
		clock-frequency = <0x1c2000>;
		interrupts = <GIC_SPI 2 IRQ_TYPE_EDGE_RISING>;
	};

	uart@2f8 {
		compatible = "ns16550a";
		reg = <0x00 0x2f8 0x00 0x8>;
		clock-frequency = <0x1c2000>;
		interrupts = <GIC_SPI 2 IRQ_TYPE_EDGE_RISING>;
	};

	uart@3e8 {
		compatible = "ns16550a";
		reg = <0x00 0x3e8 0x00 0x8>;
		clock-frequency = <0x1c2000>;
		interrupts = <GIC_SPI 0 IRQ_TYPE_EDGE_RISING>;
	};

	uart@3f8 {
		compatible = "ns16550a";
		reg = <0x00 0x3f8 0x00 0x8>;
		clock-frequency = <0x1c2000>;
		interrupts = <GIC_SPI 0 IRQ_TYPE_EDGE_RISING>;
	};

	psci {
		compatible = "arm,psci-1.0";
		method = "hvc";
	};

	pci {
		compatible = "pci-host-cam-generic";
		device_type = "pci";
		#address-cells = <3>;
		#size-cells = <2>;
		#interrupt-cells = <1>;
		dma-coherent;
		memory-region = <&swiotlb>;
		ranges = <
			0x3000000 0x0 0x02000000 0x0 0x02000000 0x00 0x02000000
			0x3000000 PLACEHOLDER2   PLACEHOLDER2   PLACEHOLDER2
		>;
		bus-range = <0x00 0x00>;
		reg = <0x00 0x10000 0x00 0x1000000>;
		interrupt-map = <
			0x0800 0x0 0x0 1 &intc 0 0 GIC_SPI (IRQ_BASE + 0) IRQ_TYPE_LEVEL_HIGH
			0x1000 0x0 0x0 1 &intc 0 0 GIC_SPI (IRQ_BASE + 1) IRQ_TYPE_LEVEL_HIGH
			0x1800 0x0 0x0 1 &intc 0 0 GIC_SPI (IRQ_BASE + 2) IRQ_TYPE_LEVEL_HIGH
			0x2000 0x0 0x0 1 &intc 0 0 GIC_SPI (IRQ_BASE + 3) IRQ_TYPE_LEVEL_HIGH
			0x2800 0x0 0x0 1 &intc 0 0 GIC_SPI (IRQ_BASE + 4) IRQ_TYPE_LEVEL_HIGH
			0x3000 0x0 0x0 1 &intc 0 0 GIC_SPI (IRQ_BASE + 5) IRQ_TYPE_LEVEL_HIGH
			0x3800 0x0 0x0 1 &intc 0 0 GIC_SPI (IRQ_BASE + 6) IRQ_TYPE_LEVEL_HIGH
			0x4000 0x0 0x0 1 &intc 0 0 GIC_SPI (IRQ_BASE + 7) IRQ_TYPE_LEVEL_HIGH
			0x4800 0x0 0x0 1 &intc 0 0 GIC_SPI (IRQ_BASE + 8) IRQ_TYPE_LEVEL_HIGH
			0x5000 0x0 0x0 1 &intc 0 0 GIC_SPI (IRQ_BASE + 9) IRQ_TYPE_LEVEL_HIGH
		>;
		interrupt-map-mask = <0xf800 0x0 0x0 0x7
				      0xf800 0x0 0x0 0x7
				      0xf800 0x0 0x0 0x7
				      0xf800 0x0 0x0 0x7
				      0xf800 0x0 0x0 0x7
				      0xf800 0x0 0x0 0x7
				      0xf800 0x0 0x0 0x7
				      0xf800 0x0 0x0 0x7
				      0xf800 0x0 0x0 0x7
				      0xf800 0x0 0x0 0x7>;
	};

	clk: pclk@3M {
		compatible = "fixed-clock";
		clock-frequency = <0x2fefd8>;
		#clock-cells = <0>;
	};

	rtc@2000 {
		compatible = "arm,primecell";
		arm,primecell-periphid = <0x41030>;
		reg = <0x00 0x2000 0x00 0x1000>;
		interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
		clock-names = "apb_pclk";
		clocks = <&clk>;
	};

	vmwdt@3000 {
		compatible = "qemu,vcpu-stall-detector";
		reg = <0x00 0x3000 0x00 0x1000>;
		clock-frequency = <10>;
		timeout-sec = <8>;
	};

	cpufreq {
		compatible = "virtual,android-v-only-cpufreq";
		reg = <0x0 0x1040000 PLACEHOLDER2>;
	};

	// Keep pvIOMMUs at the last for making test happy.
	// Otherwise, phandle of other nodes are changed when unused pvIOMMU nodes
	// are removed, so hardcoded phandles in test data would mismatch.
	pviommu_0: pviommu0 {
		compatible = "pkvm,pviommu";
		id = <PLACEHOLDER>;
		#iommu-cells = <1>;
	};

	pviommu_1: pviommu1 {
		compatible = "pkvm,pviommu";
		id = <PLACEHOLDER>;
		#iommu-cells = <1>;
	};

	pviommu_2: pviommu2 {
		compatible = "pkvm,pviommu";
		id = <PLACEHOLDER>;
		#iommu-cells = <1>;
	};

	pviommu_3: pviommu3 {
		compatible = "pkvm,pviommu";
		id = <PLACEHOLDER>;
		#iommu-cells = <1>;
	};

	pviommu_4: pviommu4 {
		compatible = "pkvm,pviommu";
		id = <PLACEHOLDER>;
		#iommu-cells = <1>;
	};

	pviommu_5: pviommu5 {
		compatible = "pkvm,pviommu";
		id = <PLACEHOLDER>;
		#iommu-cells = <1>;
	};

	pviommu_6: pviommu6 {
		compatible = "pkvm,pviommu";
		id = <PLACEHOLDER>;
		#iommu-cells = <1>;
	};

	pviommu_7: pviommu7 {
		compatible = "pkvm,pviommu";
		id = <PLACEHOLDER>;
		#iommu-cells = <1>;
	};

	pviommu_8: pviommu8 {
		compatible = "pkvm,pviommu";
		id = <PLACEHOLDER>;
		#iommu-cells = <1>;
	};

	pviommu_9: pviommu9 {
		compatible = "pkvm,pviommu";
		id = <PLACEHOLDER>;
		#iommu-cells = <1>;
	};

	// Do not add new node below
};
