summaryrefslogtreecommitdiff
path: root/src/arch/arm/system.hh
diff options
context:
space:
mode:
authorRuslan Bukin <br@bsdpad.com>2015-04-29 22:35:23 -0500
committerRuslan Bukin <br@bsdpad.com>2015-04-29 22:35:23 -0500
commit81f3211149c051e4f70b0b12eb3709dfc6e0395c (patch)
tree9b9d276586b948252ec6a39a2748dbca43fe92d3 /src/arch/arm/system.hh
parent52a3bc5e5c3cc694b3f8b29f38b0dd296b91350f (diff)
downloadgem5-81f3211149c051e4f70b0b12eb3709dfc6e0395c.tar.xz
arch, base, dev, kern, sym: FreeBSD support
This adds support for FreeBSD/aarch64 FS and SE mode (basic set of syscalls only) Committed by: Nilay Vaish <nilay@cs.wisc.edu>
Diffstat (limited to 'src/arch/arm/system.hh')
-rw-r--r--src/arch/arm/system.hh20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/arch/arm/system.hh b/src/arch/arm/system.hh
index f906dc2d2..599734fd3 100644
--- a/src/arch/arm/system.hh
+++ b/src/arch/arm/system.hh
@@ -49,6 +49,7 @@
#include "dev/arm/generic_timer.hh"
#include "kern/linux/events.hh"
#include "params/ArmSystem.hh"
+#include "params/GenericArmSystem.hh"
#include "sim/sim_object.hh"
#include "sim/system.hh"
@@ -265,8 +266,25 @@ class ArmSystem : public System
/** Returns true if ASID is 16 bits for the system of a specific thread
* context while in AArch64 (ARMv8) */
static bool haveLargeAsid64(ThreadContext *tc);
+};
+class GenericArmSystem : public ArmSystem
+{
+ public:
+ typedef GenericArmSystemParams Params;
+ const Params *
+ params() const
+ {
+ return dynamic_cast<const Params *>(_params);
+ }
+
+ GenericArmSystem(Params *p) : ArmSystem(p) {};
+ virtual ~GenericArmSystem() {};
+
+ /**
+ * Initialise the system
+ */
+ virtual void initState();
};
#endif
-