mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-09 10:34:58 -06:00
target/riscv: Implement AIA hvictl and hviprioX CSRs
The AIA hvictl and hviprioX CSRs allow hypervisor to control interrupts visible at VS-level. This patch implements AIA hvictl and hviprioX CSRs. Signed-off-by: Anup Patel <anup.patel@wdc.com> Signed-off-by: Anup Patel <anup@brainfault.org> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Reviewed-by: Frank Chang <frank.chang@sifive.com> Message-id: 20220204174700.534953-12-anup@brainfault.org [ Changes by AF: - Fix possible unintilised variable error in rmw_sie() ] Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
parent
d028ac7512
commit
2b60239879
3 changed files with 131 additions and 1 deletions
|
@ -209,6 +209,7 @@ struct CPURISCVState {
|
|||
uint64_t htimedelta;
|
||||
|
||||
/* Hypervisor controlled virtual interrupt priorities */
|
||||
target_ulong hvictl;
|
||||
uint8_t hviprio[64];
|
||||
|
||||
/* Upper 64-bits of 128-bit CSRs */
|
||||
|
@ -512,6 +513,7 @@ static inline RISCVMXL riscv_cpu_mxl(CPURISCVState *env)
|
|||
return env->misa_mxl;
|
||||
}
|
||||
#endif
|
||||
#define riscv_cpu_mxl_bits(env) (1UL << (4 + riscv_cpu_mxl(env)))
|
||||
|
||||
#if defined(TARGET_RISCV32)
|
||||
#define cpu_recompute_xl(env) ((void)(env), MXL_RV32)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue