summaryrefslogtreecommitdiff
path: root/src/sim
diff options
context:
space:
mode:
Diffstat (limited to 'src/sim')
-rw-r--r--src/sim/System.py7
-rw-r--r--src/sim/system.cc3
-rw-r--r--src/sim/system.hh6
3 files changed, 16 insertions, 0 deletions
diff --git a/src/sim/System.py b/src/sim/System.py
index 619b54ed1..e49d26a07 100644
--- a/src/sim/System.py
+++ b/src/sim/System.py
@@ -125,5 +125,12 @@ class System(SimObject):
# Provide list of domains that need to be controlled by the handler
dvfs_handler = DVFSHandler()
+ # SE mode doesn't use the ISA System subclasses, and so we need to set an
+ # ISA specific value in this class directly.
+ m5ops_base = Param.Addr(
+ 0xffff0000 if buildEnv['TARGET_ISA'] == 'x86' else 0,
+ "Base of the 64KiB PA range used for memory-mapped m5ops. Set to 0 "
+ "to disable.")
+
if buildEnv['USE_KVM']:
kvm_vm = Param.KvmVM(NULL, 'KVM VM (i.e., shared memory domain)')
diff --git a/src/sim/system.cc b/src/sim/system.cc
index 97ebd1d7c..0cc328c22 100644
--- a/src/sim/system.cc
+++ b/src/sim/system.cc
@@ -111,6 +111,9 @@ System::System(Params *p)
numWorkIds(p->num_work_ids),
thermalModel(p->thermal_model),
_params(p),
+ _m5opRange(p->m5ops_base ?
+ RangeSize(p->m5ops_base, 0x10000) :
+ AddrRange(1, 0)), // Create an empty range if disabled
totalNumInsts(0),
redirectPaths(p->redirect_paths)
{
diff --git a/src/sim/system.hh b/src/sim/system.hh
index 338b12619..6c63b327f 100644
--- a/src/sim/system.hh
+++ b/src/sim/system.hh
@@ -567,6 +567,12 @@ class System : public SimObject, public PCEventScope
protected:
Params *_params;
+ /**
+ * Range for memory-mapped m5 pseudo ops. The range will be
+ * invalid/empty if disabled.
+ */
+ const AddrRange _m5opRange;
+
public:
System(Params *p);
~System();