refactor(amu): conditionally compile auxiliary counter support

This change reduces preprocessor dependencies on the
`AMU_GROUP1_NR_COUNTERS` and `AMU_GROUP1_COUNTERS_MASK` definitions, as
these values will eventually be discovered dynamically.

In their stead, we introduce the `ENABLE_AMU_AUXILIARY_COUNTERS` build
option, which will enable support for dynamically detecting and
enabling auxiliary AMU counters.

This substantially reduces the amount of memory used by platforms that
know ahead of time that they do not have any auxiliary AMU counters.

Change-Id: I3d998aff44ed5489af4857e337e97634d06e3ea1
Signed-off-by: Chris Kay <chris.kay@arm.com>
diff --git a/include/lib/extensions/amu_private.h b/include/lib/extensions/amu_private.h
index 9fe1644..db44e64 100644
--- a/include/lib/extensions/amu_private.h
+++ b/include/lib/extensions/amu_private.h
@@ -19,6 +19,7 @@
 #define AMU_GROUP0_COUNTERS_MASK	U(0xf)
 #define AMU_GROUP0_NR_COUNTERS		U(4)
 
+#if ENABLE_AMU_AUXILIARY_COUNTERS
 #define AMU_GROUP1_COUNTERS_MASK	U(0)
 
 /* Calculate number of group 1 counters */
@@ -59,6 +60,7 @@
 #endif
 
 CASSERT(AMU_GROUP1_COUNTERS_MASK <= 0xffff, invalid_amu_group1_counters_mask);
+#endif
 
 struct amu_ctx {
 	uint64_t group0_cnts[AMU_GROUP0_NR_COUNTERS];
@@ -67,7 +69,7 @@
 	uint64_t group0_voffsets[AMU_GROUP0_NR_COUNTERS-1];
 #endif
 
-#if AMU_GROUP1_NR_COUNTERS
+#if ENABLE_AMU_AUXILIARY_COUNTERS
 	uint64_t group1_cnts[AMU_GROUP1_NR_COUNTERS];
 #if __aarch64__
 	uint64_t group1_voffsets[AMU_GROUP1_NR_COUNTERS];
@@ -78,16 +80,20 @@
 uint64_t amu_group0_cnt_read_internal(unsigned int idx);
 void amu_group0_cnt_write_internal(unsigned int idx, uint64_t val);
 
+#if ENABLE_AMU_AUXILIARY_COUNTERS
 uint64_t amu_group1_cnt_read_internal(unsigned int idx);
 void amu_group1_cnt_write_internal(unsigned int idx, uint64_t val);
 void amu_group1_set_evtype_internal(unsigned int idx, unsigned int val);
+#endif
 
 #if __aarch64__
 uint64_t amu_group0_voffset_read_internal(unsigned int idx);
 void amu_group0_voffset_write_internal(unsigned int idx, uint64_t val);
 
+#if ENABLE_AMU_AUXILIARY_COUNTERS
 uint64_t amu_group1_voffset_read_internal(unsigned int idx);
 void amu_group1_voffset_write_internal(unsigned int idx, uint64_t val);
 #endif
+#endif
 
 #endif /* AMU_PRIVATE_H */