riscv / riscv-aia

https://jira.riscv.org/browse/RVG-59
Creative Commons Attribution 4.0 International
81 stars 19 forks source link

Should virtual supervisor domain be implemented in APLIC while hypervisor (virtual supervisor) is supported? #90

Closed Steven-Li-Xiaogang closed 3 months ago

Steven-Li-Xiaogang commented 3 months ago
  1. Should we have an separate interrupt domain, so that we can expose it for virtual supervisor (guest OS) to handle relative external interrupts directly in VM?
  2. Or just reusing supervisor domain interrupt register, HW should check registers access rights according to delegation configured based on supervisor level software?
  3. 'genmsi' register doesn't have a "guest index" field, so how could we inject an interrupt to a target guest interrupt file (VM), or HW should require genmsi.EEID specified 'target[i]' register to obtain guest index, then generate a correct MSI request to System bus with correct address.
Steven-Li-Xiaogang commented 3 months ago

I got the answer from reference model https://github.com/zero-day-labs/riscv-aia. APLIC packed MSI address according to target[i] register value configured by UI.