arch: Add support for m5ops using mmapped IPRs
authorAndreas Sandberg <andreas@sandberg.pp.se>
Mon, 30 Sep 2013 10:20:43 +0000 (12:20 +0200)
committerAndreas Sandberg <andreas@sandberg.pp.se>
Mon, 30 Sep 2013 10:20:43 +0000 (12:20 +0200)
commitd9856f33a455b9c86b90f5857df866fba3aa5bfb
tree289321ea932492066e8579e101ea116cc9fd1b0c
parent114b643dd0125518c5f0b40959057dcf316f5007
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().
src/arch/alpha/mmapped_ipr.hh
src/arch/arm/mmapped_ipr.hh
src/arch/generic/SConscript
src/arch/generic/mmapped_ipr.cc [new file with mode: 0644]
src/arch/generic/mmapped_ipr.hh [new file with mode: 0644]
src/arch/mips/mmapped_ipr.hh
src/arch/power/mmapped_ipr.hh
src/arch/sparc/mmapped_ipr.hh
src/arch/x86/mmapped_ipr.hh