arm: Add secure flag to TableWalker request when needed

This commit is contained in:
Nathanael Premillieu 2015-10-29 08:48:26 -04:00
parent 84c697807f
commit e6a6d6445b

View file

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