@@ -25,11 +25,16 @@ When running KVM:
- no m-mode is provided, so there is no m-mode APLIC or IMSIC emulation regardless of
the AIA mode chosen
- with "aia=aplic", s-mode APLIC will be emulated by userspace
-- with "aia=aplic-imsic" there are two possibilities. If no additional KVM option
- is provided there will be no APLIC or IMSIC emulation in userspace, and the virtual
- machine will use the provided in-kernel APLIC and IMSIC controllers. If the user
- chooses to use the irqchip in split mode via "-accel kvm,kernel-irqchip=split",
- s-mode APLIC will be emulated while using the s-mode IMSIC from the irqchip
+- with "aia=aplic-imsic" there are three possibilities.
+ - If no additional KVM option is provided there will be no APLIC or IMSIC emulation
+ in userspace, and the virtual machine will use the provided in-kernel APLIC and
+ IMSIC controllers.
+ - If the user chooses to use the irqchip in split mode via
+ "-accel kvm,kernel-irqchip=split", s-mode APLIC will be emulated while using
+ the s-mode IMSIC from the irqchip.
+ - If the user disables the in-kernel irqchip via "-accel kvm,kernel-irqchip=off",
+ both s-mode APLIC and IMSIC controller will be emulated.
+
The following table summarizes how the AIA and accelerator options defines what
we will emulate in userspace:
@@ -75,9 +80,16 @@ we will emulate in userspace:
- in-kernel
- in-kernel
* - kvm
- - irqchip=split
+ - kernel-irqchip=split
- aplic-imsic
- n/a
- n/a
- emul
- in-kernel
+ * - kvm
+ - kernel-irqchip=off
+ - aplic-imsic
+ - n/a
+ - n/a
+ - emul
+ - emul
@@ -129,12 +129,14 @@ The following machine-specific options are supported:
MSIs. When not specified, this option is assumed to be "none" which selects
SiFive PLIC to handle wired interrupts.
- This option also interacts with '-accel kvm'. When using "aia=aplic-imsic"
- with KVM, it is possible to set the use of the kernel irqchip in split mode
+ This option also interacts with '-accel kvm', when using "aia=aplic-imsic"
+ with KVM. It is possible to set the use of the kernel irqchip in split mode
by using "-accel kvm,kernel-irqchip=split". In this case the ``virt`` machine
will emulate the APLIC controller instead of using the APLIC controller from
- the irqchip. See :ref:`riscv-aia` for more details on all available AIA
- modes.
+ the in-kernel irqchip. Or the kernel irqchip can be disabled by using
+ "-accel kvm,kernel-irqchip=off". In this case the ``virt`` machine will
+ emulate the APLIC and IMSIC controller in user-space instead of using in-kernel
+ irqchip. See :ref:`riscv-aia` for more details on all available AIA modes.
- aia-guests=nnn
Add the description about "-accel kvm,kernel-irqchip=off" into docs/specs/riscv-aia.rst and docs/system/riscv/virt.rst. Signed-off-by: Yong-Xuan Wang <yongxuan.wang@sifive.com> --- docs/specs/riscv-aia.rst | 24 ++++++++++++++++++------ docs/system/riscv/virt.rst | 10 ++++++---- 2 files changed, 24 insertions(+), 10 deletions(-)