Hi,
These patches were done in the context of gitlab #2573 [1]. The gitlab
entry per se will probably be closed as a guest software bug, but while
working on it I noticed that we're writing a TCG-initialized
env->mstatus in KVM.
This is happening because riscv_cpu_reset_hold() is doing all TCG
related initialization first, and then calling kvm_riscv_reset_vcpu() in
the end. For example, we're writing '0xa0000000' in 'sstatus' because
TCG is setting env->mstatus = 0xa0000000.
First patch separates KVM vcpu initialization from TCG, centering all
KVM reset procedure into kvm_riscv_reset_vcpu(). Patches 2 and 3 are
small improvements made around get/put KVM csr regs.
[1] https://gitlab.com/qemu-project/qemu/-/issues/2573
Daniel Henrique Barboza (3):
target/riscv/cpu: ignore TCG init for KVM CPUs in reset_hold
target/riscv/kvm: use env->sie to read/write 'sie' CSR
target/riscv/kvm: reset all available KVM CSRs in kvm_reset()
target/riscv/cpu.c | 9 +++++----
target/riscv/kvm/kvm-cpu.c | 15 ++++++++++-----
2 files changed, 15 insertions(+), 9 deletions(-)
--
2.48.1