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 v4 -> v5: - dont check iprot during tlb flush on reset (scott) - model qdev conversion similar to versatilepb (pbrook) 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.h | 22 --- hw/ppce500_mpc8544ds.c | 108 ++++++++++++---- hw/ppce500_pci.c | 122 ++++++++++-------- target-ppc/cpu.h | 307 ++++++++++++++++++++++++++++++++++++++++++- target-ppc/helper.c | 269 ++++++++++++++++++++++++++++++-------- target-ppc/helper.h | 6 + target-ppc/op_helper.c | 296 +++++++++++++++++++++++++++++++++++++++++ target-ppc/translate.c | 118 +++++++++++++++-- target-ppc/translate_init.c | 282 ++++++++++++++++++++++++++++----------- 9 files changed, 1280 insertions(+), 250 deletions(-) delete mode 100644 hw/ppce500.h