On 25/02/16 18:56, Igor R wrote:
> If I understand correctly, the most advanced MMU that QEMU emulates
> for MIPS is "R4000-style" MMU - i.e. a "software-managed" TLB, where
> on TLB miss QEMU just emulates exception that should be handled by the
> guest OS. So, QEMU doesn't walk through the page directory, like it
> does when emulating e.g. x86.

Yes, most of QEMU MIPS CPUs support R4000-style MMU. MIPS Hardware Table
Walker was introduced in release 5 of MIPS Architecture, and implemented
in P5600. However, HTW isn't present in QEMU yet.

> While this approach works for the guest code, it results in inability
> to read guest virtual memory "externally" - from within a monitor
> command, for debugging purposes etc. That is, cpu_memory_rw_debug()
> doesn't work reliably for mapped segments - it fails because of TLB
> miss, but no one tries to fill the TLB.

Indeed, given virtual address (belonging to mapped segments like kseg2)
without mapping is quite useless without involving guest's TLB-miss handler.

> If all the above correct, is there any work-around that can be used to
> read the guest memory in qemu-system-mips?

QEMU monitor provides also physical memory dump but obviously you need
to know the physical address. Otherwise - if you want to use virtual
address from mapped segment - you need to read the memory while there's
valid TLB entry.

Leon

> 
> Thanks.
> 


Reply via email to