1.
Exception Level:
EL0: App
EL1: OS kernel
EL2: hypervisor
EL3: firmware or Secure Monitor
<-------------这里的firmware可能包括U-BOOT吗?或者是说,这里的FIRMWARE,泛指什么,执行什么功能,达到什么目的,是不是对SYS CTRL寄存器进行配置的软件?
<-------------Secure monitor acts as agateway for moving between the Normal and Secure worlds. 这个Secure monitor是硬件还是软件,还是综合体?
2.
分Normal World-Non-secure World与Secure world
Non-secure:
Guest OS: EL1
Hypervisor: EL2
secure world:
aarch64 execution states:
secure firmware: EL0
Trusted OS: EL1
aarch32 execution states:
secure firmware: EL0
Trusted OS: EL3
<--------------------为什么aarch32 execution states下,trusted OS在EL3(与secure monitor同在EL3), 而aarch64 execution states, trusted OS在EL1
Secure world的情况下,没有EL2
<--------------------为什么secure world情况下,没有EL2?
3.
3.2 Changing Exception levels
In the ARMv7 architecture, the processor mode can change under privileged software control
or automatically when taking an exception. When an exception occurs, the core saves the
current execution state and the return address, enters the required mode, and possibly disables
hardware interrupts.
This is summarized in the following table. Applications operate at the lowest level of privilege,
PL0, previously unprivileged mode. Operating systems run at PL1, and the Hypervisor in a
system with the Virtualization extensions at PL2. The Secure monitor, which acts as a gateway
for moving between the Secure and Non-secure (Normal) worlds, also operates at PL1.
for moving between the Secure and Non-secure (Normal) worlds, also operates at PL1.
<-----Monitor(Mon) Mode应该运行在PL1, 但secure monitor是有EL3的?
<-----ARMv7-A 是这样的,或者是说ARMV7-A就没有EL3一说?
<-----从图3-6来看,ARMV8-A. aarch32 下,securer monitor是运行在EL3的
4.
You can only change execution state by changing Exception level. Taking an exception might
change from AArch32 to AArch64, and returning from an exception may change from AArch64
to AArch32.
<-----需要切换aarch 32 and 64, 只能通过EXCEPTION LEVEL的切换来达到