summaryrefslogtreecommitdiff
path: root/src/arch/arm/faults.cc
diff options
context:
space:
mode:
authorDylan Johnson <Dylan.Johnson@ARM.com>2016-08-02 10:38:02 +0100
committerDylan Johnson <Dylan.Johnson@ARM.com>2016-08-02 10:38:02 +0100
commitf9a6f68e0bcb1f7e2a34ad1bbf93515b473b610f (patch)
tree8f939252d9adee865b8becdf0b2af39b5829bbd1 /src/arch/arm/faults.cc
parentfc6879097b04643f6345adad39e54f44afb85d2f (diff)
downloadgem5-f9a6f68e0bcb1f7e2a34ad1bbf93515b473b610f.tar.xz
arm: Add check to fault routing for hypervisor/virtualization
This patch adds the option for faults to be routed to the hypervisor using the pre-existing routeToHyp() functions that are present in each fault type. Change-Id: I9735512c094457636b9870456a5be5432288e004
Diffstat (limited to 'src/arch/arm/faults.cc')
-rw-r--r--src/arch/arm/faults.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/arch/arm/faults.cc b/src/arch/arm/faults.cc
index 061e1299a..d195d1a14 100644
--- a/src/arch/arm/faults.cc
+++ b/src/arch/arm/faults.cc
@@ -439,6 +439,8 @@ ArmFault::invoke(ThreadContext *tc, const StaticInstPtr &inst)
// Determine target exception level
if (ArmSystem::haveSecurity(tc) && routeToMonitor(tc))
toEL = EL3;
+ else if (ArmSystem::haveVirtualization(tc) && routeToHyp(tc))
+ toEL = EL2;
else
toEL = opModeToEL(nextMode());
if (fromEL > toEL)