summaryrefslogtreecommitdiff
path: root/src/arch
diff options
context:
space:
mode:
authorNathanael Premillieu <nathananel.premillieu@arm.com>2015-10-29 08:48:26 -0400
committerNathanael Premillieu <nathananel.premillieu@arm.com>2015-10-29 08:48:26 -0400
commite6a6d6445b7e4cf437096965588be1b3320de313 (patch)
tree4f5610d94ec6668b2b53c2f7709babd32e436b94 /src/arch
parent84c697807f835e7c75a17eb3e80c90688b40b188 (diff)
downloadgem5-e6a6d6445b7e4cf437096965588be1b3320de313.tar.xz
arm: Add secure flag to TableWalker request when needed
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/arm/table_walker.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/arch/arm/table_walker.cc b/src/arch/arm/table_walker.cc
index 3e61a4bd6..fd8645e97 100644
--- a/src/arch/arm/table_walker.cc
+++ b/src/arch/arm/table_walker.cc
@@ -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;