arch: Add support for m5ops using mmapped IPRs

In order to support m5ops on virtualized CPUs, we need to either
intercept hypercall instructions or provide a memory mapped m5ops
interface. Since KVM does not normally pass the results of hypercalls
to userspace, which makes that method unfeasible. This changeset
introduces support for m5ops using memory mapped mmapped IPRs. This is
implemented by adding a class of "generic" IPRs which are handled by
architecture-independent code. Such IPRs always have bit 63 set and
are handled by handleGenericIprRead() and
handleGenericIprWrite(). Platform specific impementations of
handleIprRead and handleIprWrite should use
GenericISA::isGenericIprAccess to determine if an IPR address should
be handled by the generic code instead of the architecture-specific
code. Platforms that don't need their own IPR support can reuse
GenericISA::handleIprRead() and GenericISA::handleIprWrite().
This commit is contained in:
Andreas Sandberg
2013-09-30 12:20:43 +02:00
parent 114b643dd0
commit d9856f33a4
9 changed files with 314 additions and 82 deletions

View File

@@ -32,3 +32,4 @@ if env['TARGET_ISA'] == 'null':
Return()
Source('decode_cache.cc')
Source('mmapped_ipr.cc')