Skip to content

Commit 74967aa

Browse files
committed
RISC-V: KVM: Add in-kernel emulation of AIA APLIC
There is no virtualization support in AIA APLIC so we add in-kernel emulation of AIA APLIC which only supports MSI-mode (i.e. wired interrupts forwarded to AIA IMSIC as MSIs). Signed-off-by: Anup Patel <apatel@ventanamicro.com> Reviewed-by: Atish Patra <atishp@rivosinc.com> Signed-off-by: Anup Patel <anup@brainfault.org>
1 parent 89d0130 commit 74967aa

3 files changed

Lines changed: 580 additions & 14 deletions

File tree

arch/riscv/include/asm/kvm_aia.h

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -129,20 +129,9 @@ static inline void kvm_riscv_vcpu_aia_imsic_cleanup(struct kvm_vcpu *vcpu)
129129
{
130130
}
131131

132-
static inline int kvm_riscv_aia_aplic_inject(struct kvm *kvm,
133-
u32 source, bool level)
134-
{
135-
return 0;
136-
}
137-
138-
static inline int kvm_riscv_aia_aplic_init(struct kvm *kvm)
139-
{
140-
return 0;
141-
}
142-
143-
static inline void kvm_riscv_aia_aplic_cleanup(struct kvm *kvm)
144-
{
145-
}
132+
int kvm_riscv_aia_aplic_inject(struct kvm *kvm, u32 source, bool level);
133+
int kvm_riscv_aia_aplic_init(struct kvm *kvm);
134+
void kvm_riscv_aia_aplic_cleanup(struct kvm *kvm);
146135

147136
#ifdef CONFIG_32BIT
148137
void kvm_riscv_vcpu_aia_flush_interrupts(struct kvm_vcpu *vcpu);

arch/riscv/kvm/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,4 @@ kvm-y += vcpu_timer.o
2828
kvm-$(CONFIG_RISCV_PMU_SBI) += vcpu_pmu.o vcpu_sbi_pmu.o
2929
kvm-y += aia.o
3030
kvm-y += aia_device.o
31+
kvm-y += aia_aplic.o

0 commit comments

Comments
 (0)