arm: Make EL checks available in SE mode

A lot of code assumes that it is possible to test what the highest EL
is and if it is 64 bit. These calls currently don't work in SE mode
since they rely on an instance of an ArmSystem.

Change-Id: I0d1f261926a66ce3dc4fa116845ffb2a081446f2
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-by: Nathanael Premillieu <nathanael.premillieu@arm.com>
This commit is contained in:
Andreas Sandberg 2016-05-26 17:33:38 +01:00
parent e3e808416f
commit e360f4db07

View file

@ -219,13 +219,17 @@ ArmSystem::haveVirtualization(ThreadContext *tc)
bool
ArmSystem::highestELIs64(ThreadContext *tc)
{
return dynamic_cast<ArmSystem *>(tc->getSystemPtr())->highestELIs64();
return FullSystem ?
dynamic_cast<ArmSystem *>(tc->getSystemPtr())->highestELIs64() :
true;
}
ExceptionLevel
ArmSystem::highestEL(ThreadContext *tc)
{
return dynamic_cast<ArmSystem *>(tc->getSystemPtr())->highestEL();
return FullSystem ?
dynamic_cast<ArmSystem *>(tc->getSystemPtr())->highestEL() :
EL1;
}
Addr