diff options
Diffstat (limited to 'src/arch/arm')
-rw-r--r-- | src/arch/arm/table_walker.cc | 11 |
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; |