diff --git a/pvmfw/platform.dts b/pvmfw/platform.dts
index 92ab19c..68acf13 100644
--- a/pvmfw/platform.dts
+++ b/pvmfw/platform.dts
@@ -8,6 +8,42 @@
 #define PLACEHOLDER2	PLACEHOLDER PLACEHOLDER
 #define PLACEHOLDER4	PLACEHOLDER2 PLACEHOLDER2
 
+#define PLACEHOLDER_CPU_MAP_CORE(n) core##n { cpu = <PLACEHOLDER>; };
+#define PLACEHOLDER_CPU_MAP_CLUSTER \
+	PLACEHOLDER_CPU_MAP_CORE(0) \
+	PLACEHOLDER_CPU_MAP_CORE(1) \
+	PLACEHOLDER_CPU_MAP_CORE(2) \
+	PLACEHOLDER_CPU_MAP_CORE(3) \
+	PLACEHOLDER_CPU_MAP_CORE(4) \
+	PLACEHOLDER_CPU_MAP_CORE(5) \
+	PLACEHOLDER_CPU_MAP_CORE(6) \
+	PLACEHOLDER_CPU_MAP_CORE(7) \
+	PLACEHOLDER_CPU_MAP_CORE(8) \
+	PLACEHOLDER_CPU_MAP_CORE(9)
+
+#define PLACEHOLDER_OPP_TABLE_ENTRY(n) opp##n { opp-hz = <PLACEHOLDER2>; };
+#define PLACEHOLDER_OPP_TABLE \
+	PLACEHOLDER_OPP_TABLE_ENTRY(1) \
+	PLACEHOLDER_OPP_TABLE_ENTRY(2) \
+	PLACEHOLDER_OPP_TABLE_ENTRY(3) \
+	PLACEHOLDER_OPP_TABLE_ENTRY(4) \
+	PLACEHOLDER_OPP_TABLE_ENTRY(5) \
+	PLACEHOLDER_OPP_TABLE_ENTRY(6) \
+	PLACEHOLDER_OPP_TABLE_ENTRY(7) \
+	PLACEHOLDER_OPP_TABLE_ENTRY(8) \
+	PLACEHOLDER_OPP_TABLE_ENTRY(9) \
+	PLACEHOLDER_OPP_TABLE_ENTRY(10) \
+	PLACEHOLDER_OPP_TABLE_ENTRY(11) \
+	PLACEHOLDER_OPP_TABLE_ENTRY(12) \
+	PLACEHOLDER_OPP_TABLE_ENTRY(13) \
+	PLACEHOLDER_OPP_TABLE_ENTRY(14) \
+	PLACEHOLDER_OPP_TABLE_ENTRY(15) \
+	PLACEHOLDER_OPP_TABLE_ENTRY(16) \
+	PLACEHOLDER_OPP_TABLE_ENTRY(17) \
+	PLACEHOLDER_OPP_TABLE_ENTRY(18) \
+	PLACEHOLDER_OPP_TABLE_ENTRY(19) \
+	PLACEHOLDER_OPP_TABLE_ENTRY(20)
+
 #define IRQ_BASE 4
 
 /dts-v1/;
@@ -54,42 +90,9 @@
 		#size-cells = <0>;
 
 		cpu-map {
-			cluster0 {
-				core0 { cpu = <PLACEHOLDER>; };
-				core1 { cpu = <PLACEHOLDER>; };
-				core2 { cpu = <PLACEHOLDER>; };
-				core3 { cpu = <PLACEHOLDER>; };
-				core4 { cpu = <PLACEHOLDER>; };
-				core5 { cpu = <PLACEHOLDER>; };
-				core6 { cpu = <PLACEHOLDER>; };
-				core7 { cpu = <PLACEHOLDER>; };
-				core8 { cpu = <PLACEHOLDER>; };
-				core9 { cpu = <PLACEHOLDER>; };
-			};
-			cluster1 {
-				core0 { cpu = <PLACEHOLDER>; };
-				core1 { cpu = <PLACEHOLDER>; };
-				core2 { cpu = <PLACEHOLDER>; };
-				core3 { cpu = <PLACEHOLDER>; };
-				core4 { cpu = <PLACEHOLDER>; };
-				core5 { cpu = <PLACEHOLDER>; };
-				core6 { cpu = <PLACEHOLDER>; };
-				core7 { cpu = <PLACEHOLDER>; };
-				core8 { cpu = <PLACEHOLDER>; };
-				core9 { cpu = <PLACEHOLDER>; };
-			};
-			cluster2 {
-				core0 { cpu = <PLACEHOLDER>; };
-				core1 { cpu = <PLACEHOLDER>; };
-				core2 { cpu = <PLACEHOLDER>; };
-				core3 { cpu = <PLACEHOLDER>; };
-				core4 { cpu = <PLACEHOLDER>; };
-				core5 { cpu = <PLACEHOLDER>; };
-				core6 { cpu = <PLACEHOLDER>; };
-				core7 { cpu = <PLACEHOLDER>; };
-				core8 { cpu = <PLACEHOLDER>; };
-				core9 { cpu = <PLACEHOLDER>; };
-			};
+			cluster0 { PLACEHOLDER_CPU_MAP_CLUSTER };
+			cluster1 { PLACEHOLDER_CPU_MAP_CLUSTER };
+			cluster2 { PLACEHOLDER_CPU_MAP_CLUSTER };
 		};
 
 		cpu0: cpu@0 {
@@ -101,27 +104,7 @@
 			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>; };
+				PLACEHOLDER_OPP_TABLE
 			};
 		};
 		cpu1: cpu@1 {
@@ -133,27 +116,7 @@
 			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>; };
+				PLACEHOLDER_OPP_TABLE
 			};
 		};
 		cpu2: cpu@2 {
@@ -165,27 +128,7 @@
 			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>; };
+				PLACEHOLDER_OPP_TABLE
 			};
 		};
 		cpu3: cpu@3 {
@@ -197,27 +140,7 @@
 			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>; };
+				PLACEHOLDER_OPP_TABLE
 			};
 		};
 		cpu4: cpu@4 {
@@ -229,27 +152,7 @@
 			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>; };
+				PLACEHOLDER_OPP_TABLE
 			};
 		};
 		cpu5: cpu@5 {
@@ -261,27 +164,7 @@
 			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>; };
+				PLACEHOLDER_OPP_TABLE
 			};
 		};
 		cpu6: cpu@6 {
@@ -293,27 +176,7 @@
 			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>; };
+				PLACEHOLDER_OPP_TABLE
 			};
 		};
 		cpu7: cpu@7 {
@@ -325,27 +188,7 @@
 			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>; };
+				PLACEHOLDER_OPP_TABLE
 			};
 		};
 		cpu8: cpu@8 {
@@ -357,27 +200,7 @@
 			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>; };
+				PLACEHOLDER_OPP_TABLE
 			};
 		};
 		cpu9: cpu@9 {
@@ -389,27 +212,7 @@
 			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>; };
+				PLACEHOLDER_OPP_TABLE
 			};
 		};
 		cpu10: cpu@a {
@@ -421,27 +224,7 @@
 			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>; };
+				PLACEHOLDER_OPP_TABLE
 			};
 		};
 		cpu11: cpu@b {
@@ -453,27 +236,7 @@
 			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>; };
+				PLACEHOLDER_OPP_TABLE
 			};
 		};
 		cpu12: cpu@c {
@@ -485,27 +248,7 @@
 			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>; };
+				PLACEHOLDER_OPP_TABLE
 			};
 		};
 		cpu13: cpu@d {
@@ -517,27 +260,7 @@
 			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>; };
+				PLACEHOLDER_OPP_TABLE
 			};
 		};
 		cpu14: cpu@e {
@@ -549,27 +272,7 @@
 			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>; };
+				PLACEHOLDER_OPP_TABLE
 			};
 		};
 		cpu15: cpu@f {
@@ -581,27 +284,7 @@
 			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>; };
+				PLACEHOLDER_OPP_TABLE
 			};
 		};
 	};
diff --git a/tests/helper/src/java/com/android/microdroid/test/common/DeviceProperties.java b/tests/helper/src/java/com/android/microdroid/test/common/DeviceProperties.java
index 2ea748b..69527be 100644
--- a/tests/helper/src/java/com/android/microdroid/test/common/DeviceProperties.java
+++ b/tests/helper/src/java/com/android/microdroid/test/common/DeviceProperties.java
@@ -32,6 +32,7 @@
     private static final String KEY_METRICS_TAG = "debug.hypervisor.metrics_tag";
 
     private static final String CUTTLEFISH_DEVICE_PREFIX = "vsoc_";
+    private static final String CUTTLEFISH_ARM64_DEVICE_PREFIX = "vsoc_arm64";
     private static final String USER_BUILD_TYPE = "user";
     private static final String HWASAN_SUFFIX = "_hwasan";
 
@@ -55,6 +56,15 @@
     }
 
     /**
+     * @return whether the device is a cuttlefish device running on 64 bit Arm.
+     */
+    public boolean isCuttlefishArm64() {
+        String vendorDeviceName = getProperty(KEY_VENDOR_DEVICE);
+        return vendorDeviceName != null
+                && vendorDeviceName.startsWith(CUTTLEFISH_ARM64_DEVICE_PREFIX);
+    }
+
+    /**
      * @return whether the build is HWASAN.
      */
     public boolean isHwasan() {
diff --git a/tests/helper/src/java/com/android/microdroid/test/device/MicrodroidDeviceTestBase.java b/tests/helper/src/java/com/android/microdroid/test/device/MicrodroidDeviceTestBase.java
index d3f6093..6040531 100644
--- a/tests/helper/src/java/com/android/microdroid/test/device/MicrodroidDeviceTestBase.java
+++ b/tests/helper/src/java/com/android/microdroid/test/device/MicrodroidDeviceTestBase.java
@@ -75,6 +75,10 @@
         return getDeviceProperties().isCuttlefish();
     }
 
+    private static boolean isCuttlefishArm64() {
+        return getDeviceProperties().isCuttlefishArm64();
+    }
+
     public static boolean isHwasan() {
         return getDeviceProperties().isHwasan();
     }
@@ -222,6 +226,12 @@
         assume().withMessage("Skip on 5.4 kernel. b/218303240")
                 .that(KERNEL_VERSION)
                 .isNotEqualTo("5.4");
+
+        // Cuttlefish on Arm 64 doesn't and cannot support any form of virtualization, so there's
+        // no point running any of these tests.
+        assume().withMessage("Virtualization not supported on Arm64 Cuttlefish. b/341889915")
+                .that(isCuttlefishArm64())
+                .isFalse();
     }
 
     protected void assumeNoUpdatableVmSupport() throws VirtualMachineException {
