为什么检查hyp模式,而且检查不是该模式还把模式更改为SVC模式?如果是hyp模式会对初始化有什么影响?
硬件平台:imx6ull
为什么检查hyp模式,而且检查不是该模式还把模式更改为SVC模式?如果是hyp模式会对初始化有什么影响?
硬件平台:imx6ull
简单说一下
Hyp模式 Hypervisor负责用户操作系统的切换 用户操作系统运行在非安全特权和非特权模式 针对虚拟化扩展 访问资源受限
uboot初始化要做的事情 是初始化系统相关硬件资源 需要获取尽可能多的权限 以方便操作硬件 初始化硬件
还有作为一个bootloader来说 最终目的是为了启动Linux的kernel 在做好准备工作(即初始化硬件,准备好kernel和rootfs等)跳转到kernel之前
本身就要满足一些条件 其中一个条件 就是要求CPU处于SVC模式的
关于满足哪些条件,详情请参考:
ARM Linux Kernel Boot Requirements
http://www.arm.linux.org.uk/developer/booting.php
或者Linux内核文档:
kernel_source_root\documentation\arm\booting
中也是同样的解释
"The CPU must be in SVC mode"
所以uboot在最初的初始化阶段 就将CPU设置为SVC模式 也是最合适的
更多详细信息请查阅ARM处理器模式, Linux内核相关资料