weiqi7777

ARMv8的A32的异常等级

1
阅读(3485)

ARMv8,定义了异常等级,来进行权限控制。分别是EL0EL1EL2EL3

对于AArch32ARMv8定义了9PE模式,来确执行权限,不使用EL。对于AArch64,不支持PE模式:

l  monitor模式:     只能在secureEL3执行

l  hyp模式:            只能在non-secureEL2执行

l  systemsupervisorabortundefinedIRQFIQ模式: 依赖于secure模式

l  user模式:            只能在EL0执行

 

       systemsupervisorabortundefinedIRQFIQuser模式,和之前的ARMv7的特权模式兼容。只是不同的特权模式,运行在不同的EL

 

对于secure状态

l  monitor模式只能执行在EL3,并且EL3的运行模式是AArch32

l  systemsupervisorabortundefinedIRQFIQ模式:

Ø  EL3AArch64,执行在EL1

Ø  EL3AArch32,执行在EL3

 

如果EL3AArch64

l  不支持monitor模式,因为A64不支持PE模式

l  如果EL1AArch32systemsupervisorabortundefinedIRQFIQ模式运行在secure EL1

如下图所示:

clip_image002

 

 

如果EL3AArch32

l  支持monitor模式,并且只能在secure EL3执行

l  AArch32systemsupervisorabortundefinedIRQFIQ模式运行在secure EL3

l  secure EL1,不支持

 

也就是下图所描述的:

clip_image004

       EL3AArch32,那么就没有secure EL1monitorsystemsupervisorabortundefinedIRQFIQ模式都是运行在EL3user模式,运行在secure EL0

也就是当EL3AArch32,只有EL3EL0两个EL

 

对于non-secure状态

systemsupervisorabortundefinedIRQFIQ模式都是运行在EL1user模式运行在EL0

hyp模式,运行在EL2,比systemsupervisorabortundefinedIRQFIQuser模式有更高的执行权限。

non-secure状态下,只有EL2EL1EL0三个EL

l  EL0     运行user模式

l  EL1     运行systemsupervisorabortundefinedIRQFIQ模式

l  EL2     运行hyp模式

 

 

 

AArch32PE模式和EL的对应关系,如下表所示:

clip_image006

 

AArch32使用PL,来确定VAPA的权限控制。而PLPE模式的映射关系,如下表所示:

clip_image008

       也就是:

l  non-secure下,每个PL映射到对应的EL上,如PL1映射到EL1

l  seucre下:

Ø  PL0映射到EL0

Ø  PL1的映射,取决于EL3的执行状态:

²  EL3AArch64Secure PL1映射到secure EL1monitor模式不支持

²  EL3AArch32secure PL1映射到secure EL3monitor模式支持

 

对于AArch32PE9种模式,在CPSR寄存器的mode[4:0]位域中,进行定义:

clip_image010