qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v1 04/18] target-arm: Route timer access traps to EL


From: Edgar E. Iglesias
Subject: [Qemu-devel] [PATCH v1 04/18] target-arm: Route timer access traps to EL1
Date: Wed, 13 May 2015 16:52:29 +1000

From: "Edgar E. Iglesias" <address@hidden>

Signed-off-by: Edgar E. Iglesias <address@hidden>
---
 target-arm/helper.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/target-arm/helper.c b/target-arm/helper.c
index a4bab78..d849b30 100644
--- a/target-arm/helper.c
+++ b/target-arm/helper.c
@@ -1147,6 +1147,7 @@ static CPAccessResult gt_cntfrq_access(CPUARMState *env, 
const ARMCPRegInfo *ri)
 {
     /* CNTFRQ: not visible from PL0 if both PL0PCTEN and PL0VCTEN are zero */
     if (arm_current_el(env) == 0 && !extract32(env->cp15.c14_cntkctl, 0, 2)) {
+        env->exception.target_el = 1;
         return CP_ACCESS_TRAP;
     }
     return CP_ACCESS_OK;
@@ -1157,6 +1158,7 @@ static CPAccessResult gt_counter_access(CPUARMState *env, 
int timeridx)
     /* CNT[PV]CT: not visible from PL0 if ELO[PV]CTEN is zero */
     if (arm_current_el(env) == 0 &&
         !extract32(env->cp15.c14_cntkctl, timeridx, 1)) {
+        env->exception.target_el = 1;
         return CP_ACCESS_TRAP;
     }
     return CP_ACCESS_OK;
@@ -1169,6 +1171,7 @@ static CPAccessResult gt_timer_access(CPUARMState *env, 
int timeridx)
      */
     if (arm_current_el(env) == 0 &&
         !extract32(env->cp15.c14_cntkctl, 9 - timeridx, 1)) {
+        env->exception.target_el = 1;
         return CP_ACCESS_TRAP;
     }
     return CP_ACCESS_OK;
-- 
1.9.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]