Skip to content

Commit a8caaa2

Browse files
brooniectmarinas
authored andcommitted
arm64/sme: Document boot requirements for SME
Document our requirements for initialisation of the Scalable Matrix Extension (SME) at kernel start. While we do have the ability to handle mismatched vector lengths we will reject any late CPUs that can't support the minimum set we determine at boot so for clarity we document a requirement that all CPUs make the same vector length available. Signed-off-by: Mark Brown <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Catalin Marinas <[email protected]>
1 parent 2806556 commit a8caaa2

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

Documentation/arm64/booting.rst

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,28 @@ Before jumping into the kernel, the following conditions must be met:
311311
- ZCR_EL2.LEN must be initialised to the same value for all CPUs the
312312
kernel will execute on.
313313

314+
For CPUs with the Scalable Matrix Extension (FEAT_SME):
315+
316+
- If EL3 is present:
317+
318+
- CPTR_EL3.ESM (bit 12) must be initialised to 0b1.
319+
320+
- SCR_EL3.EnTP2 (bit 41) must be initialised to 0b1.
321+
322+
- SMCR_EL3.LEN must be initialised to the same value for all CPUs the
323+
kernel will execute on.
324+
325+
- If the kernel is entered at EL1 and EL2 is present:
326+
327+
- CPTR_EL2.TSM (bit 12) must be initialised to 0b0.
328+
329+
- CPTR_EL2.SMEN (bits 25:24) must be initialised to 0b11.
330+
331+
- SCTLR_EL2.EnTP2 (bit 60) must be initialised to 0b1.
332+
333+
- SMCR_EL2.LEN must be initialised to the same value for all CPUs the
334+
kernel will execute on.
335+
314336
The requirements described above for CPU mode, caches, MMUs, architected
315337
timers, coherency and system registers apply to all CPUs. All CPUs must
316338
enter the kernel in the same exception level. Where the values documented

0 commit comments

Comments
 (0)