社区
课程答疑和交流(二)
ATF架构开发精讲
帖子详情
如何在BL31中添加自己的驱动
Arm精选
优质创作者: 信息安全技术领域
领域专家: 嵌入式与硬件开发技术领域
2023-04-07 21:11:49
课时名称
课时知识点
如何在BL31中添加自己的驱动
ATF/TF-A/trustzone/TEE/ARMV8/ARMV9
...全文
99
回复
打赏
收藏
如何在BL31中添加自己的驱动
课时名称课时知识点如何在BL31中添加自己的驱动ATF/TF-A/trustzone/TEE/ARMV8/ARMV9
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Linux与
BL31
之间
添加
SMC实现随机数获取
Armv8架构
中
有四个异常等级EL0-EL3,两种安全状态即安全和非安全状态。SVC指令用于EL0下的用户应用程序请求EL1下的操作系统的服务,SMC指令允许普通世界
中
的程序请求EL3下的安全监控器的服务,这些都是同步异常指令,旨在不同异常等级下进行切换。本文
中
随机数应用在EL0下运行,处于非安全状态;Linux Kernel在EL1下运行,处于非安全状态;真随机数生成器服务在EL3下运行,处于安全状态。
(12)ATF
BL31
中
断
系统在运行过程
中
的任何阶段,都有可能产生
中
断。在Armv8架构系统
中
,TEE-OS运行在安全世界的EL1,Rich-OS运行在非安全世界的EL1,而
BL31
则运行于EL3。想实现各种
中
断在三种状态下被处理的统一性和正确性,就需要确保各种状态下
中
断向量表以及GIC的正确配置。在ATF的
BL31
阶段启用了
中
断,
BL31
主要完成了GIC
驱动
初始化,
中
断注册,
中
断处理,
中
断路由配置等功能。
ATF启动:
BL31
跳转到optee和uboot嵌入式方案
ATF
中
的
BL31
是其最重要的阶段,它负责初始化硬件并跳转到其他组件,比如optee和uboot。本文将介绍如何实现ATF启动过程
中
BL31
的跳转到optee和uboot的嵌入式方案,并提供相应的示例源代码。最后,setup_bl33_environment()函数用于设置uboot的执行环境,包括初始化属于uboot的内存空间、设备
驱动
程序等。综上所述,通过以上的ATF启动过程
中
BL31
跳转到optee和uboot的嵌入式方案,实现了系统启动过程的有效管理和组件之间的顺序切换。
从零开始:手把手教你理解UBOOT的BL0、BL1、BL2启动流程
本文详细解析了嵌入式系统
中
UBOOT启动流程的核心三阶段:BL0、BL1和BL2。BL0作为芯片固化的ROM代码,负责最基础的硬件初始化和加载BL1;BL1(SPL)作为二级程序加载器,在SRAM
中
运行并初始化DRAM,为加载BL2铺路;BL2则是完整的UBOOT主体,运行于DRAM,负责最终的外设初始化和操作系统引导。文章通过代码示例和流程图,手把手教你理解从芯片上电到系统就绪的完整接力过程。
【deepseek】
BL31
的作用及存在意义
BL31
不仅负责启动流程的最后阶段跳转,更重要的是它是系统运行期间的**“大管家”**。它常驻EL3,处理所有来自非安全世界的特权请求(如电源管理、安全服务调用),是连接非安全世界与安全世界、软件与底层硬件特权操作的桥梁。
课程答疑和交流(二)
100
社区成员
287
社区内容
发帖
与我相关
我的任务
课程答疑和交流(二)
ARMv8/ARMv9/TEE/安全/芯片
复制链接
扫一扫
分享
社区描述
ARMv8/ARMv9/TEE/安全/芯片
arm开发
个人社区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章