diff options
author | Dylan Johnson <Dylan.Johnson@ARM.com> | 2016-08-02 10:38:02 +0100 |
---|---|---|
committer | Dylan Johnson <Dylan.Johnson@ARM.com> | 2016-08-02 10:38:02 +0100 |
commit | f9a6f68e0bcb1f7e2a34ad1bbf93515b473b610f (patch) | |
tree | 8f939252d9adee865b8becdf0b2af39b5829bbd1 /src | |
parent | fc6879097b04643f6345adad39e54f44afb85d2f (diff) | |
download | gem5-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')
-rw-r--r-- | src/arch/arm/faults.cc | 2 |
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) |