This patch implements Loongson VirtualiZation (LVZ) extension support
for LoongArch's TCG target. With this patch, it is now possible to start
a nested KVM-accelerated virtual machine on a TCG-emulated virtual machine.

SignKirigami (23):
  target/loongarch: select sys state by VM level
  target/loongarch: add get_sys() helper
  target/loongarch: add LVZ feature switcher
  target/loongarch: add LVZ CSR metadata
  target/loongarch: add vm level 1 definition
  target/loongarch: add definition about guest mmu_idx
  target/loongarch: add LVZ guest interrupt state
  target/loongarch: add LVZ guest timer
  target/loongarch: handle return to guest in ertn
  target/loongarch: handle LVZ exception and vm_exit
  target/loongarch: add host TLBRet and handle
  target/loongarch: add gid management functions
  target/loongarch: add LVZ parameters to TLB functions
  target/loongarch: add LVZ to TLB functions
  target/loongarch: add LVZ to invtlb
  target/loongarch: add LVZ to ptw
  target/loongarch: add LVZ migration state
  target/loongarch: add gcsr instructions and vm level 1 csr management
  target/loongarch: add LVZ CSRs
  target/loongarch: translate LVZ guest TLB instructions
  target/loongarch: translate LVZ guest traps and HVC
  target/loongarch: initialize CSR related to LVZ
  target/loongarch: exit to vm level 0 for fpd, sxd and asxd of vm level
    0

 target/loongarch/cpu-csr.h                    |  38 ++
 target/loongarch/cpu-mmu.h                    |  36 +-
 target/loongarch/cpu.c                        |  87 +++-
 target/loongarch/cpu.h                        | 105 ++++-
 target/loongarch/cpu_helper.c                 |  73 ++--
 target/loongarch/csr.c                        | 102 ++---
 target/loongarch/csr.h                        |   1 +
 target/loongarch/disas.c                      |  15 +
 target/loongarch/insns.decode                 |  14 +
 target/loongarch/internals.h                  |   4 +-
 target/loongarch/machine.c                    | 104 +++++
 target/loongarch/tcg/csr_helper.c             | 131 ++++--
 target/loongarch/tcg/helper.h                 |  49 ++-
 .../tcg/insn_trans/trans_extra.c.inc          |   5 +
 .../tcg/insn_trans/trans_privileged.c.inc     | 290 +++++++++++--
 target/loongarch/tcg/op_helper.c              |  37 ++
 target/loongarch/tcg/tcg_cpu.c                |  94 +++--
 target/loongarch/tcg/tcg_loongarch.h          |   3 +-
 target/loongarch/tcg/tlb_helper.c             | 395 ++++++++++++------
 target/loongarch/tcg/translate.c              |   3 +
 target/loongarch/translate.h                  |   1 +
 21 files changed, 1245 insertions(+), 342 deletions(-)

-- 
2.55.0


Reply via email to