高通msm8994启动流程简介

处理器信息

8994包含如下子系统:
子系统处理器含义
APSS4*Cortex-A53应用子系统
APSS4*Cortex-A57应用子系统
LPASSQDSP6 v5.5A(Hexagon)低功耗音频子系统
RPMCortex-M3资源功耗管理子系统
ModemQDSP6 v5(Hexagon)调制解调(基带)处理子系统

从上表中可以看出,8994包含应用处理子系统、资源功耗管理子系统、调制子系统、低功耗音频子系统。其中应用处理子系统由4个A53和4个A57组成, 
资源功耗管理子系统由一颗Cortex-M3组成,Modem子系统和低功耗音频子系统分别由一颗高通骁龙处理器组成。

启动流程

启动流程框图 
这里写图片描述 
启动流程 
1. 芯片上电复位到地址0, RPM PBL开始运行; 
2. RPM PBL执行基本的电量和功率检测,然后复位APP处理器(地址0xFC010000); 
3. APPS PBL在A53上执行,他从启动设备中加载(并鉴定)SBL1镜像到OCMEM; 
4. APPS PBL将RVBAR设置为SBL1的入口,设置RMR_EL3为64位模式,然后触发热启动,程序转到SBL1; 
5. SBL1开始运行,他首先初始化DDR,然后加载(并鉴定)HYP和TZ镜像; 
6. SBL1将执行权转交给TZ; 
7. TZ安全监管器建立安全环境; 
8. TZ QSEE内核运行; 
9. TZ应用程序(32/64位)运行,他们初始化系统; 
10. TZ将执行权转交给HYP(监管程序); 
11. 监管程序运行,他建立调试管理器,然后将执行权交回SBL1; 
12. SBL1加载(并鉴定)RPM 固件,设置RPM固件准备就绪魔数; 
13. RPM 固件在RPM处理器上运行; 
14. SBL1加载(并鉴定)SDI(系统调试镜像),SDI pass 0开始执行; 
15. SBL1加载(并鉴定)HLOS APPSBL(High-Level Operationg System,高级操作系统的SBL,指lk(little kernel)); 
16. SBL1将执行权转给HLOS APPSBL; 
17. HLOS APPSBL加载(并鉴定)HLOS kernel(实指linux kernel); 
18. HLOS APPSBL通过TZ陷阱系统调用(TZ trap syscall)将执行权转交给HLOS kernel; 
19. 根据需要,HLOS kernel从启动设备中加载MBA(Modem Boot Authenticator)到DDR; 
20. HLOS kernel复位Modem处理器,Modem PBL开始运行; 
21. (此条疑似错误,参考80-NM328-6第26页); 
22. Modem PBL从DDR中将MBA拷贝到modem TCM中,然后在modem TCM中鉴定MBA; 
23. 根据需要,HLOS kernel从启动设备中加载MPSS镜像到DDR中; 
24. MBA鉴定DDR中的MPSS镜像; 
25. 根据需要,HLOS使用PIL加载LPASS镜像; 
26. 根据需要,HLOS使用PIL加载Venus镜像。

附加说明

详细请参考《80-NM328-6_A_MSM8994_Boot_CoreBSP_Overview.pdf》,本文大部分内容是从该文档中翻译的。
原文地址:https://www.cnblogs.com/liang123/p/6325247.html