From e6a6d6445b7e4cf437096965588be1b3320de313 Mon Sep 17 00:00:00 2001 From: Nathanael Premillieu Date: Thu, 29 Oct 2015 08:48:26 -0400 Subject: [PATCH] arm: Add secure flag to TableWalker request when needed --- src/arch/arm/table_walker.cc | 11 ++++++++--- 1 file 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;