ARMv8-A系列学习笔记(3)--Chapter 3 Fundamentals of ARMv8
来源:互联网 发布:网络乞丐mc吴迪 编辑:程序博客网 时间:2024/05/16 15:05
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 modecan 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的切换来达到
- ARMv8-A系列学习笔记(3)--Chapter 3 Fundamentals of ARMv8
- ARMv8-A系列学习笔记(4)--Chapter 4.4 Endianness
- ARMv8-A系列学习笔记(5)--Chapter 15 Power Management
- ARMv8-A系列学习笔记(7)--Chapter 13 Memory Ordering
- ARMv8-A系列学习笔记(2)--2.1 ARMv8-A
- ARMv8-A系列学习笔记(6)--Caches
- ARMv8-A系列学习笔记(9)--GIC
- ARMv8-A系列学习笔记(8)--Chapter 10 AArch64 Exception Handling
- ARMv8-A系列学习笔记(1)--Chapter 1 Introduction.The change from 32-bit to 64-bit
- ARMv8 架构与指令集.学习笔记
- ARMv8 内存管理架构.学习笔记
- ARMv8 架构与指令集.学习笔记
- ARMv8 Load / store 指令学习重要笔记
- ARMv8-a架构简介
- ARMv8-a架构简介
- ARMv8-a架构简介
- armv8 摘要
- ARMv8简介
- 一套不错的基于Bootstrap的博客系统静态页面
- 获取指定日期的后(前)一(n)天(转)
- MySQL截取和拆分字符
- Android 开发者的 RxJava 详解
- 无法为具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序加载在应用程序配置文件中注册的实体框架提供程序类
- ARMv8-A系列学习笔记(3)--Chapter 3 Fundamentals of ARMv8
- 归并排序(Merge Sort)
- aix ipcs OxFFFFFFFF
- 测试代码所用时间
- VS2010断点调试Release代码设置(C/C++/C#)
- IPC机制--利用Messenger
- Web开发之CSS的继承、层叠、特殊和重要性
- 通过软应用来控制内存中的图片(二)
- SpringMVC——接收请求参数和页面传参