Dear NXP community,
We developed a virtual machine using the QEMU code. This virtual machine emulates a certain custom-made computer that runs on a certain military platform. All I can tell you about this virtual machine is that it emulates a computer that has an e5500 processor. Currently I am running this virtual machine on a T4240-RDB which has a PowerPC e6500 processor.
Anyway, right now I’m trying to get this virtual machine working with KVM enabled. But the problem I’m having is the VM doesn’t do anything after the KVM_RUN ioctl call is made (NIP doesn’t progress and no registers change). What seems to be the problem is the VM doesn’t run the instruction that’s supposed to be retrieved from the virtual address 0xFFFF_FFFC (which is the address of the first instruction to be run). When KVM isn’t enabled and the VM is running using TCG (tiny code generator), a branch instruction to 0xFFFF_F700 is retrieved from the virtual address 0xFFFF_FFFC and the VM kicks off running from there.
So what could be causing this problem? I’m guessing it has something to do with the translation lookaside buffers (TLBs)? But the translation between virtual and physical memory clearly works when KVM isn’t enabled. So what could cause this to stop working when KVM is enabled? Or maybe I’m not understanding something right and missing what the problem actually is? Let me know your thoughts.
-Thanks, Jacob Lara