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.w...@sifive.com> --- docs/specs/riscv-aia.rst | 24 ++++++++++++++++++------ docs/system/riscv/virt.rst | 10 ++++++---- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/docs/specs/riscv-aia.rst b/docs/specs/riscv-aia.rst index 8097e2f89744..38797cca4998 100644 --- a/docs/specs/riscv-aia.rst +++ b/docs/specs/riscv-aia.rst @@ -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 diff --git a/docs/system/riscv/virt.rst b/docs/system/riscv/virt.rst index 60850970ce83..96d7ee1ebc64 100644 --- a/docs/system/riscv/virt.rst +++ b/docs/system/riscv/virt.rst @@ -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 -- 2.17.1