diff --git a/include/lib/aarch32/arch.h b/include/lib/aarch32/arch.h
index 3c2a517..dcc4243 100644
--- a/include/lib/aarch32/arch.h
+++ b/include/lib/aarch32/arch.h
@@ -405,11 +405,45 @@
 #define MAX_CACHE_LINE_SIZE	U(0x800) /* 2KB */
 
 /* PMCR definitions */
-#define PMCR_N_SHIFT		U(11)
-#define PMCR_N_MASK		U(0x1f)
-#define PMCR_N_BITS		(PMCR_N_MASK << PMCR_N_SHIFT)
-#define PMCR_LC_BIT		(U(1) << 6)
-#define PMCR_DP_BIT		(U(1) << 5)
+#define PMCR_EL0_N_SHIFT	U(11)
+#define PMCR_EL0_N_MASK		U(0x1f)
+#define PMCR_EL0_N_BITS		(PMCR_EL0_N_MASK << PMCR_EL0_N_SHIFT)
+#define PMCR_EL0_LC_BIT		(U(1) << 6)
+#define PMCR_EL0_DP_BIT		(U(1) << 5)
+#define PMCR_EL0_E_BIT		(U(1) << 0)
+
+/* PMCNTENSET definitions */
+#define PMCNTENSET_EL0_C_BIT		(U(1) << 31)
+#define PMCNTENSET_EL0_P_BIT(x)		(U(1) << x)
+
+/* PMEVTYPER<n> definitions */
+#define PMEVTYPER_EL0_P_BIT		(U(1) << 31)
+#define PMEVTYPER_EL0_NSK_BIT		(U(1) << 29)
+#define PMEVTYPER_EL0_NSH_BIT		(U(1) << 27)
+#define PMEVTYPER_EL0_M_BIT		(U(1) << 26)
+#define PMEVTYPER_EL0_MT_BIT		(U(1) << 25)
+#define PMEVTYPER_EL0_SH_BIT		(U(1) << 24)
+#define PMEVTYPER_EL0_EVTCOUNT_BITS	U(0x000003FF)
+
+/* PMCCFILTR definitions */
+#define PMCCFILTR_EL0_P_BIT		(U(1) << 31)
+#define PMCCFILTR_EL0_NSK_BIT		(U(1) << 29)
+#define PMCCFILTR_EL0_NSH_BIT		(U(1) << 27)
+#define PMCCFILTR_EL0_M_BIT		(U(1) << 26)
+#define PMCCFILTR_EL0_MT_BIT		(U(1) << 25)
+#define PMCCFILTR_EL0_SH_BIT		(U(1) << 24)
+
+/* PMU event counter ID definitions */
+#define PMU_EV_PC_WRITE_RETIRED		U(0x000C)
+
+/* DBGDIDR definitions */
+#define DBGDIDR_VERSION_SHIFT	U(16)
+#define DBGDIDR_VERSION_MASK	U(0xf)
+#define DBGDIDR_VERSION_BITS	(DBGDIDR_VERSION_MASK << DBGDIDR_VERSION_SHIFT)
+#define DBGDIDR_V8_DEBUG_ARCH_SUPPORTED		U(6)
+#define DBGDIDR_V8_DEBUG_ARCH_VHE_SUPPORTED	U(7)
+#define DBGDIDR_V8_2_DEBUG_ARCH_SUPPORTED	U(8)
+#define DBGDIDR_V8_4_DEBUG_ARCH_SUPPORTED	U(9)
 
 /*******************************************************************************
  * Definitions of register offsets, fields and macros for CPU system
@@ -522,6 +556,12 @@
 /* Debug register defines. The format is: coproc, opt1, CRn, CRm, opt2 */
 #define HDCR		p15, 4, c1, c1, 1
 #define PMCR		p15, 0, c9, c12, 0
+#define PMCNTENSET	p15, 0, c9, c12, 1
+#define PMCCFILTR	p15, 0, c14, c15, 7
+#define PMCCNTR		p15, 0, c9, c13, 0
+#define PMEVTYPER0	p15, 0, c14, c12, 0
+#define PMEVCNTR0	p15, 0, c14, c8, 0
+#define DBGDIDR		p14, 0, c0, c0, 0
 #define CNTHP_TVAL	p15, 4, c14, c2, 0
 #define CNTHP_CTL	p15, 4, c14, c2, 1
 
diff --git a/include/lib/aarch32/arch_features.h b/include/lib/aarch32/arch_features.h
index b953db7..e2c2f2c 100644
--- a/include/lib/aarch32/arch_features.h
+++ b/include/lib/aarch32/arch_features.h
@@ -29,4 +29,10 @@
 		ID_MMFR4_CNP_MASK) != 0U;
 }
 
+static inline uint32_t arch_get_debug_version(void)
+{
+	return ((read_dbgdidr() & DBGDIDR_VERSION_BITS) >>
+		DBGDIDR_VERSION_SHIFT);
+}
+
 #endif /* ARCH_FEATURES_H */
diff --git a/include/lib/aarch32/arch_helpers.h b/include/lib/aarch32/arch_helpers.h
index e983554..f2e3e00 100644
--- a/include/lib/aarch32/arch_helpers.h
+++ b/include/lib/aarch32/arch_helpers.h
@@ -277,7 +277,13 @@
 
 DEFINE_COPROCR_RW_FUNCS(hdcr, HDCR)
 DEFINE_COPROCR_RW_FUNCS(cnthp_ctl, CNTHP_CTL)
-DEFINE_COPROCR_READ_FUNC(pmcr, PMCR)
+DEFINE_COPROCR_RW_FUNCS(pmcr, PMCR)
+DEFINE_COPROCR_RW_FUNCS(pmcntenset, PMCNTENSET)
+DEFINE_COPROCR_RW_FUNCS(pmccfiltr, PMCCFILTR)
+DEFINE_COPROCR_READ_FUNC(pmccntr, PMCCNTR)
+DEFINE_COPROCR_RW_FUNCS(pmevtyper0, PMEVTYPER0)
+DEFINE_COPROCR_READ_FUNC(pmevcntr0, PMEVCNTR0)
+DEFINE_COPROCR_READ_FUNC(dbgdidr, DBGDIDR)
 
 /*
  * Address translation
@@ -377,6 +383,22 @@
 
 #define read_ctr_el0()		read_ctr()
 
+#define read_pmcr_el0()			read_pmcr()
+#define write_pmcr_el0(_v)		write_pmcr(_v)
+
+#define read_pmcntenset_el0()		read_pmcntenset()
+#define write_pmcntenset_el0(_v)	write_pmcntenset(_v)
+
+#define read_pmccfiltr_el0()		read_pmccfiltr()
+#define write_pmccfiltr_el0(_v)		write_pmccfiltr(_v)
+
+#define read_pmevtyper0_el0()		read_pmevtyper0()
+#define write_pmevtyper0_el0(_v)	write_pmevtyper0(_v)
+
+#define read_pmccntr_el0		read_pmccntr
+
+#define read_pmevcntr0_el0		read_pmevcntr0
+
 #define write_icc_sgi0r_el1(_v)	write64_icc_sgi0r_el1(_v)
 
 #define read_daif()		read_cpsr()
diff --git a/include/lib/aarch64/arch.h b/include/lib/aarch64/arch.h
index 1d5cc11..4e9c03b 100644
--- a/include/lib/aarch64/arch.h
+++ b/include/lib/aarch64/arch.h
@@ -152,6 +152,8 @@
 #define ID_AA64DFR0_DEBUG_SHIFT			U(0)
 #define ID_AA64DFR0_DEBUG_LENGTH		U(4)
 #define ID_AA64DFR0_DEBUG_MASK			ULL(0xf)
+#define ID_AA64DFR0_DEBUG_BITS			(ID_AA64DFR0_DEBUG_MASK << \
+						 ID_AA64DFR0_DEBUG_SHIFT)
 #define ID_AA64DFR0_V8_DEBUG_ARCH_SUPPORTED	U(6)
 #define ID_AA64DFR0_V8_DEBUG_ARCH_VHE_SUPPORTED	U(7)
 #define ID_AA64DFR0_V8_2_DEBUG_ARCH_SUPPORTED	U(8)
diff --git a/include/lib/aarch64/arch_features.h b/include/lib/aarch64/arch_features.h
index 86c0763..20433fd 100644
--- a/include/lib/aarch64/arch_features.h
+++ b/include/lib/aarch64/arch_features.h
@@ -68,4 +68,10 @@
 		ID_AA64PFR1_EL1_MTE_MASK);
 }
 
+static inline uint32_t arch_get_debug_version(void)
+{
+	return ((read_id_aa64dfr0_el1() & ID_AA64DFR0_DEBUG_BITS) >>
+		ID_AA64DFR0_DEBUG_SHIFT);
+}
+
 #endif /* ARCH_FEATURES_H */
