Introduce the vSBI framework to handle extension ecall instruction calls
from a guest.

In this patch series, support is added for only a few extensions and FIDs,
just enough to boot the first guest domains and obtain logs from them. This
keeps the patch series independent from other ongoing work.

It was decided to start with support for the Legacy Extension, as it is still
supported by Linux (so we may need it anyway), and because some of its FIDs
require less functionality to implement at this stage compared to the more
modern extensions.

Oleksii Kurochko (3):
  xen/riscv: introduce vSBI extension framework
  xen/riscv: add RISC-V legacy SBI extension support for guests
  xen/riscv: add RISC-V virtual SBI base extension support for guests

 xen/arch/riscv/Makefile                     |  1 +
 xen/arch/riscv/include/asm/processor.h      |  1 +
 xen/arch/riscv/include/asm/sbi.h            | 14 +++++-
 xen/arch/riscv/include/asm/vsbi.h           | 31 ++++++++++++
 xen/arch/riscv/sbi.c                        |  8 ++--
 xen/arch/riscv/traps.c                      |  8 ++++
 xen/arch/riscv/vsbi/Makefile                |  3 ++
 xen/arch/riscv/vsbi/vsbi-base-extension.c   | 52 +++++++++++++++++++++
 xen/arch/riscv/vsbi/vsbi-legacy-extension.c | 37 +++++++++++++++
 xen/arch/riscv/vsbi/vsbi.c                  | 46 ++++++++++++++++++
 xen/arch/riscv/xen.lds.S                    |  7 +++
 11 files changed, 203 insertions(+), 5 deletions(-)
 create mode 100644 xen/arch/riscv/include/asm/vsbi.h
 create mode 100644 xen/arch/riscv/vsbi/Makefile
 create mode 100644 xen/arch/riscv/vsbi/vsbi-base-extension.c
 create mode 100644 xen/arch/riscv/vsbi/vsbi-legacy-extension.c
 create mode 100644 xen/arch/riscv/vsbi/vsbi.c

-- 
2.52.0


Reply via email to