Skip to content

Commit b6ba1a8

Browse files
pccctmarinas
authored andcommitted
arm64: document the boot requirements for MTE
When booting the kernel we access system registers such as GCR_EL1 if MTE is supported. These accesses are defined to trap to EL3 if SCR_EL3.ATA is disabled. Furthermore, tag accesses will not behave as expected if SCR_EL3.ATA is not set, or if HCR_EL2.ATA is not set and we were booted at EL1. Therefore, require that these bits are enabled when appropriate. Signed-off-by: Peter Collingbourne <[email protected]> Reviewed-by: Mark Brown <[email protected]> Link: https://linux-review.googlesource.com/id/Iadcfd4dcd9ba3279b2813970b44d7485b0116709 Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Catalin Marinas <[email protected]>
1 parent 2a2848e commit b6ba1a8

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

Documentation/arm64/booting.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,16 @@ Before jumping into the kernel, the following conditions must be met:
350350

351351
- SMCR_EL2.FA64 (bit 31) must be initialised to 0b1.
352352

353+
For CPUs with the Memory Tagging Extension feature (FEAT_MTE2):
354+
355+
- If EL3 is present:
356+
357+
- SCR_EL3.ATA (bit 26) must be initialised to 0b1.
358+
359+
- If the kernel is entered at EL1 and EL2 is present:
360+
361+
- HCR_EL2.ATA (bit 56) must be initialised to 0b1.
362+
353363
The requirements described above for CPU mode, caches, MMUs, architected
354364
timers, coherency and system registers apply to all CPUs. All CPUs must
355365
enter the kernel in the same exception level. Where the values documented

0 commit comments

Comments
 (0)