Since we do have support for Book3S_64 KVM now, the next obvious step is to support the generation before that: Book3S_32. This patch set adds support for Book3S_32 hosts, making your old G4 this much more useful. It should also work on fancy exotic systems like the Wii and the Game Cube, but I haven't tried yet. As far as the path I took goes, I tried to merge as much functionality and code as possible with the 64 bit host support. So whenever code was reusable, it gets reused. Alexander Graf (27): KVM: PPC: Name generic 64-bit code generic KVM: PPC: Add host MMU Support KVM: PPC: Add SR swapping code KVM: PPC: Add generic segment switching code PPC: Split context init/destroy functions KVM: PPC: Add kvm_book3s_64.h KVM: PPC: Add kvm_book3s_32.h KVM: PPC: Add fields to shadow vcpu KVM: PPC: Improve indirect svcpu accessors KVM: PPC: Use KVM_BOOK3S_HANDLER KVM: PPC: Use CONFIG_PPC_BOOK3S define PPC: Add STLU KVM: PPC: Use now shadowed vcpu fields KVM: PPC: Extract MMU init KVM: PPC: Make real mode handler generic KVM: PPC: Make highmem code generic KVM: PPC: Make SLB switching code the new segment framework KVM: PPC: Release clean pages as clean KVM: PPC: Remove fetch fail code KVM: PPC: Add SVCPU to Book3S_32 KVM: PPC: Emulate segment fault KVM: PPC: Add Book3S compatibility code KVM: PPC: Export MMU variables PPC: Export SWITCH_FRAME_SIZE KVM: PPC: Check max IRQ prio KVM: PPC: Add KVM intercept handlers KVM: PPC: Enable Book3S_32 KVM building arch/powerpc/include/asm/asm-compat.h | 2 + arch/powerpc/include/asm/kvm_book3s.h | 100 +++++- arch/powerpc/include/asm/kvm_book3s_32.h | 42 ++ arch/powerpc/include/asm/kvm_book3s_64.h | 28 ++ arch/powerpc/include/asm/kvm_book3s_64_asm.h | 76 ---- arch/powerpc/include/asm/kvm_book3s_asm.h | 97 +++++ arch/powerpc/include/asm/kvm_booke.h | 96 +++++ arch/powerpc/include/asm/kvm_host.h | 16 +- arch/powerpc/include/asm/kvm_ppc.h | 80 +---- arch/powerpc/include/asm/mmu_context.h | 2 + arch/powerpc/include/asm/paca.h | 10 +- arch/powerpc/include/asm/processor.h | 3 + arch/powerpc/kernel/asm-offsets.c | 102 +++-- arch/powerpc/kernel/head_32.S | 14 + arch/powerpc/kernel/head_64.S | 4 +- arch/powerpc/kernel/ppc_ksyms.c | 5 + arch/powerpc/kvm/Kconfig | 24 +- arch/powerpc/kvm/Makefile | 18 +- arch/powerpc/kvm/book3s.c | 184 ++++++--- arch/powerpc/kvm/book3s_32_mmu.c | 3 + arch/powerpc/kvm/book3s_32_mmu_host.c | 480 ++++++++++++++++++++++ arch/powerpc/kvm/book3s_32_sr.S | 143 +++++++ arch/powerpc/kvm/book3s_64_emulate.c | 566 ------------------------- arch/powerpc/kvm/book3s_64_exports.c | 32 -- arch/powerpc/kvm/book3s_64_interrupts.S | 318 -------------- arch/powerpc/kvm/book3s_64_mmu.c | 2 +- arch/powerpc/kvm/book3s_64_mmu_host.c | 50 ++- arch/powerpc/kvm/book3s_64_rmhandlers.S | 195 --------- arch/powerpc/kvm/book3s_64_slb.S | 183 ++------- arch/powerpc/kvm/book3s_emulate.c | 570 ++++++++++++++++++++++++++ arch/powerpc/kvm/book3s_exports.c | 32 ++ arch/powerpc/kvm/book3s_interrupts.S | 319 ++++++++++++++ arch/powerpc/kvm/book3s_paired_singles.c | 2 +- arch/powerpc/kvm/book3s_rmhandlers.S | 252 ++++++++++++ arch/powerpc/kvm/book3s_segment.S | 258 ++++++++++++ arch/powerpc/kvm/emulate.c | 17 +- arch/powerpc/kvm/powerpc.c | 2 +- arch/powerpc/mm/mmu_context_hash32.c | 29 +- 38 files changed, 2771 insertions(+), 1585 deletions(-) create mode 100644 arch/powerpc/include/asm/kvm_book3s_32.h create mode 100644 arch/powerpc/include/asm/kvm_book3s_64.h delete mode 100644 arch/powerpc/include/asm/kvm_book3s_64_asm.h create mode 100644 arch/powerpc/include/asm/kvm_book3s_asm.h create mode 100644 arch/powerpc/include/asm/kvm_booke.h create mode 100644 arch/powerpc/kvm/book3s_32_mmu_host.c create mode 100644 arch/powerpc/kvm/book3s_32_sr.S delete mode 100644 arch/powerpc/kvm/book3s_64_emulate.c delete mode 100644 arch/powerpc/kvm/book3s_64_exports.c delete mode 100644 arch/powerpc/kvm/book3s_64_interrupts.S delete mode 100644 arch/powerpc/kvm/book3s_64_rmhandlers.S create mode 100644 arch/powerpc/kvm/book3s_emulate.c create mode 100644 arch/powerpc/kvm/book3s_exports.c create mode 100644 arch/powerpc/kvm/book3s_interrupts.S create mode 100644 arch/powerpc/kvm/book3s_rmhandlers.S create mode 100644 arch/powerpc/kvm/book3s_segment.S -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html