In a global effort to get rid of KVM-only targets, this is the next important piece of the puzzle: e500 emulation :).
We had support for running an e500 KVM guest for a while now, but the code could not be tested without a real e500 machine, because it required KVM to work. This patchset adds emulation for the e500 MMU, enabling anyone to use the MPC8544DS emulation. v1 -> v2: - fix linux-user build - optimize tlb invalidate & search v2 -> v3: - add qdev patch (enables -drive if=virtio) - fix mpc initial tlb size comment - enable cpu reset v3 -> v4: - remove tlb_nbs - rename BOOKE_FSL to BOOKE206 - generalize implementation to be extensible for future MMUs - check if tsize should be set - check if iprot should be set - set RPN on tlb miss - implement tlb_invalidate_all - use specific helper to set PIDs - create generic booke206 tlb flushing function - drop base_addr - new patch: MPC7544DS: Use new TLB helper function Alexander Graf (7): PPC: Make MPC8544DS obey -cpu switch PPC: Make MPC8544DS emulation work w/o KVM PPC: Add GS MSR definition PPC: Add another 64 bits to instruction feature mask PPC: Implement e500 (FSL) MMU PPC MPC7544DS: Use new TLB helper function PPC: Qdev'ify e500 pci hw/ppce500_mpc8544ds.c | 92 +++++++++++--- hw/ppce500_pci.c | 111 ++++++++++------ target-ppc/cpu.h | 307 ++++++++++++++++++++++++++++++++++++++++++- target-ppc/helper.c | 277 +++++++++++++++++++++++++++++++-------- target-ppc/helper.h | 6 + target-ppc/op_helper.c | 296 +++++++++++++++++++++++++++++++++++++++++ target-ppc/translate.c | 116 +++++++++++++++-- target-ppc/translate_init.c | 282 ++++++++++++++++++++++++++++----------- 8 files changed, 1282 insertions(+), 205 deletions(-)