mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-12-13 22:21:45 +00:00
We can't allow the supervisor to control SEIP as this would allow the supervisor to clear a pending external interrupt which will result in lost a interrupt in the case a PLIC is attached. The SEIP bit must be hardware controlled when a PLIC is attached. This logic was previously hard-coded so SEIP was always masked even if no PLIC was attached. This patch adds riscv_cpu_claim_interrupts so that the PLIC can register control of SEIP. In the case of models without a PLIC (spike), the SEIP bit remains software controlled. This interface allows for hardware control of supervisor timer and software interrupts by other interrupt controller models. Backports commit e3e7039cc24ecf47d81c091e8bb04552d6564ad8 from qemu |
||
|---|---|---|
| .. | ||
| insn_trans | ||
| cpu.c | ||
| cpu.h | ||
| cpu_bits.h | ||
| cpu_helper.c | ||
| cpu_user.h | ||
| csr.c | ||
| fpu_helper.c | ||
| helper.h | ||
| insn16.decode | ||
| insn32-64.decode | ||
| insn32.decode | ||
| instmap.h | ||
| Makefile.objs | ||
| op_helper.c | ||
| pmp.c | ||
| pmp.h | ||
| translate.c | ||
| unicorn.c | ||
| unicorn.h | ||