Here's a little thing I've been hacking on. I was pretty amazed I could even get it working, let alone being so small and not too horrible to look at. A few people thought it would be useful for prototyping and hacking and running kvm tests, etc. So, thoughts on the overall idea and code structure?
There's possibly a few layering violations there with me short-cutting and not calling vhc method for checking cpu in nested at least, and a bit of cleanup and few loose ends, but hopefully nothing fundamentally terrible. It works and boots an L2 into a distro with unmodified Linux kernels running in the L1 and L2. Thanks, Nick Nicholas Piggin (3): target/ppc: raise HV interrupts for partition table entry problems spapr: prevent hdec timer being set up under virtual hypervisor spapr: implement nested-hv support for the TCG virtual hypervisor hw/ppc/ppc.c | 22 ++- hw/ppc/spapr.c | 16 ++ hw/ppc/spapr_caps.c | 5 +- hw/ppc/spapr_cpu_core.c | 6 +- hw/ppc/spapr_hcall.c | 316 +++++++++++++++++++++++++++++++++++++ include/hw/ppc/ppc.h | 3 + include/hw/ppc/spapr.h | 75 ++++++++- target/ppc/cpu.h | 6 + target/ppc/excp_helper.c | 60 ++++--- target/ppc/helper_regs.c | 1 + target/ppc/mmu-book3s-v3.c | 20 ++- target/ppc/mmu-radix64.c | 19 +-- 12 files changed, 505 insertions(+), 44 deletions(-) -- 2.23.0