aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorAnshuman Khandual <anshuman.khandual@arm.com>2024-12-11 12:24:25 +0530
committerWill Deacon <will@kernel.org>2024-12-19 17:01:07 +0000
commit1e4a5e3679cc4d037982bfc822d939d5ba954e70 (patch)
tree0b27a53881d0118c5f677e88736c8c44aaae35cf
parentdocs: arm64: Document EL3 requirements for cpu debug architecture (diff)
downloadwireguard-linux-1e4a5e3679cc4d037982bfc822d939d5ba954e70.tar.xz
wireguard-linux-1e4a5e3679cc4d037982bfc822d939d5ba954e70.zip
docs: arm64: Document EL3 requirements for FEAT_PMUv3
This documents EL3 requirements for FEAT_PMUv3. The register field MDCR_EL3 .TPM needs to be cleared for accesses into PMU registers without any trap being generated into EL3. PMUv3 registers like PMCCFILTR_EL0, PMCCNTR_EL0 PMCNTENCLR_EL0, PMCNTENSET_EL0, PMCR_EL0, PMEVCNTR<n>_EL0, PMEVTYPER<n>_EL0 etc are already being accessed for perf HW PMU implementation. Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Will Deacon <will@kernel.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Jonathan Corbet <corbet@lwn.net> Cc: linux-arm-kernel@lists.infradead.org Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com> Link: https://lore.kernel.org/r/20241211065425.1106683-3-anshuman.khandual@arm.com Signed-off-by: Will Deacon <will@kernel.org>
-rw-r--r--Documentation/arch/arm64/booting.rst6
1 files changed, 6 insertions, 0 deletions
diff --git a/Documentation/arch/arm64/booting.rst b/Documentation/arch/arm64/booting.rst
index 1b3ac1394e5f..cad6fdc96b98 100644
--- a/Documentation/arch/arm64/booting.rst
+++ b/Documentation/arch/arm64/booting.rst
@@ -455,6 +455,12 @@ Before jumping into the kernel, the following conditions must be met:
- MDCR_EL3.TDA (bit 9) must be initialized to 0b0
+ - For CPUs with FEAT_PMUv3:
+
+ - If EL3 is present:
+
+ - MDCR_EL3.TPM (bit 6) must be initialized to 0b0
+
The requirements described above for CPU mode, caches, MMUs, architected
timers, coherency and system registers apply to all CPUs. All CPUs must
enter the kernel in the same exception level. Where the values documented