mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
docs/riscv: sync required ISA extensions with required_extensions[]
booting.txt listed only H, Zbb, Zihintpause and Svpbmt as required, while required_extensions[] in cpufeature.c also checks for I, M, A, Zicsr, Zifencei and, with CONFIG_RISCV_ISA_C=y, C. As the panic message printed for a missing extension points to booting.txt, document the missing ones. Also add a section pointing to riscv_isa_ext[] for the optional extensions Xen recognises, and a comment above required_extensions[] to keep it in sync with the document. No functional change. Suggested-by: Baptiste Le Duc <baptiste.le-duc@vates.tech> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com> Signed-off-by: Baptiste Le Duc <baptiste.le-duc@vates.tech> Acked-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
1 parent
2f67b00dde
commit
469d83d42f
2 files changed
+21
-4
No files matched your search
@@ -1,8 +1,12 @@
|
||||
System requirements
|
||||
===================
|
||||
|
||||
The following extensions are expected to be supported by a system on which
|
||||
Xen is run:
|
||||
The following extensions are required by Xen. Xen panics at boot if any of
|
||||
them is missing from the riscv,isa property of the CPU nodes:
|
||||
- I, M, A, Zicsr, Zifencei:
|
||||
Base ISA Xen is compiled for.
|
||||
- C:
|
||||
Required only when Xen is built with CONFIG_RISCV_ISA_C=y.
|
||||
- H:
|
||||
Provides additional instructions and CSRs that control the new stage of
|
||||
address translation and support hosting a guest OS in virtual S-mode
|
||||
@@ -18,7 +22,19 @@ Xen is run:
|
||||
- Zihintpause:
|
||||
On a system that doesn't have this extension, cpu_relax() should be
|
||||
implemented properly.
|
||||
- SVPBMT is mandatory to enable changing the memory attributes of a page.
|
||||
For platforms that do not support SVPBMT, it is necessary to introduce a
|
||||
- Svpbmt:
|
||||
Mandatory to enable changing the memory attributes of a page.
|
||||
For platforms that do not support Svpbmt, it is necessary to introduce a
|
||||
similar mechanism as described in:
|
||||
https://lore.kernel.org/all/20241102000843.1301099-1-samuel.holland@sifive.com/
|
||||
|
||||
Note: this list must be kept in sync with required_extensions[] in
|
||||
xen/arch/riscv/cpufeature.c.
|
||||
|
||||
Optional extensions
|
||||
===================
|
||||
|
||||
Other extensions recognised by Xen are listed in riscv_isa_ext[] in
|
||||
xen/arch/riscv/cpufeature.c. Xen uses them when present, but they are not
|
||||
needed to boot. The second column of that table says whether the extension
|
||||
is also exposed to guests.
|
||||
@@ -203,6 +203,7 @@ static const struct riscv_isa_ext_entry __initconstrel riscv_isa_ext[] = {
|
||||
RISCV_ISA_EXT_ENTRY(svpbmt, NONE),
|
||||
};
|
||||
|
||||
/* Keep in sync with docs/misc/riscv/booting.txt. */
|
||||
static const struct riscv_isa_ext_data __initconst required_extensions[] = {
|
||||
RISCV_ISA_EXT_DATA(i),
|
||||
RISCV_ISA_EXT_DATA(m),
|
||||
|
||||