mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 17:23:56 -06:00
target/riscv: Add HS-mode virtual interrupt and IRQ filtering support.
This change adds support for inserting virtual interrupts from HS-mode into VS-mode using hvien and hvip csrs. This also allows for IRQ filtering from HS-mode. Also, the spec doesn't mandate the interrupt to be actually supported in hardware. Which allows HS-mode to assert virtual interrupts to VS-mode that have no connection to any real interrupt events. This is defined as part of the AIA specification [0], "6.3.2 Virtual interrupts for VS level". [0]: https://github.com/riscv/riscv-aia/releases/download/1.0/riscv-interrupts-1.0.pdf Signed-off-by: Rajnesh Kanwal <rkanwal@rivosinc.com> Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com> Message-ID: <20231016111736.28721-7-rkanwal@rivosinc.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
parent
1697837ed9
commit
40336d5b1d
5 changed files with 235 additions and 31 deletions
|
@ -814,7 +814,8 @@ static bool riscv_cpu_has_work(CPUState *cs)
|
|||
* mode and delegation registers, but respect individual enables
|
||||
*/
|
||||
return riscv_cpu_all_pending(env) != 0 ||
|
||||
riscv_cpu_sirq_pending(env) != RISCV_EXCP_NONE;
|
||||
riscv_cpu_sirq_pending(env) != RISCV_EXCP_NONE ||
|
||||
riscv_cpu_vsirq_pending(env) != RISCV_EXCP_NONE;
|
||||
#else
|
||||
return true;
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue