arm: Add secure flag to TableWalker request when needed
authorNathanael Premillieu <nathananel.premillieu@arm.com>
Thu, 29 Oct 2015 12:48:26 +0000 (08:48 -0400)
committerNathanael Premillieu <nathananel.premillieu@arm.com>
Thu, 29 Oct 2015 12:48:26 +0000 (08:48 -0400)
src/arch/arm/table_walker.cc

index 3e61a4bd662e4e46385bde622e14793b1c9536b2..fd8645e9761771b9270f8d21577229d03fc46ec4 100644 (file)
@@ -523,6 +523,10 @@ TableWalker::processWalk()
         flag.set(Request::UNCACHEABLE);
     }
 
+    if (currState->isSecure) {
+        flag.set(Request::SECURE);
+    }
+
     bool delayed;
     delayed = fetchDescriptor(l1desc_addr, (uint8_t*)&currState->l1Desc.data,
                               sizeof(uint32_t), flag, L1, &doL1DescEvent,
@@ -685,9 +689,6 @@ TableWalker::processWalkLPAE()
         flag.set(Request::UNCACHEABLE);
     }
 
-    if (currState->isSecure)
-        flag.set(Request::SECURE);
-
     currState->longDesc.lookupLevel = start_lookup_level;
     currState->longDesc.aarch64 = false;
     currState->longDesc.grainSize = Grain4KB;
@@ -934,6 +935,10 @@ TableWalker::processWalkAArch64()
         flag.set(Request::UNCACHEABLE);
     }
 
+    if (currState->isSecure) {
+        flag.set(Request::SECURE);
+    }
+
     currState->longDesc.lookupLevel = start_lookup_level;
     currState->longDesc.aarch64 = true;
     currState->longDesc.grainSize = tg;