高通msm8994启动流程简单介绍
处理器信息
8994包括例如以下子系统:
| 子系统 | 处理器 | 含义 |
|---|---|---|
| APSS | 4*Cortex-A53 | 应用子系统 |
| APSS | 4*Cortex-A57 | 应用子系统 |
| LPASS | QDSP6 v5.5A(Hexagon) | 低功耗音频子系统 |
| RPM | Cortex-M3 | 资源功耗管理子系统 |
| Modem | QDSP6 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》,本文大部分内容是从该文档中翻译的。
高通msm8994启动流程简单介绍的更多相关文章
- 高通msm8994启动流程简介
处理器信息 8994包含如下子系统: 子系统 处理器 含义 APSS 4*Cortex-A53 应用子系统 APSS 4*Cortex-A57 应用子系统 LPASS QDSP6 v5.5A(Hexa ...
- qt-qml移动开发之在ios上开发和部署app流程简单介绍
qt5.3已经全面支持移动开发,除了mac,windows,linux.还支持ios,android,wp,meego等移动平台,本教程是作者依据自己的经验,从头讲怎么样在ios上公布自己的app.因 ...
- linux驱动由浅入深系列:PBL-SBL1-(bootloader)LK-Android启动过程详解之一(高通MSM8953启动实例)
转自:http://blog.csdn.net/radianceblau/article/details/73229005 http://www.aiuxian.com/article/p-14142 ...
- zookeeper启动流程简单梳理
等着測试童鞋完工,顺便里了下zookeeper的启动流程 zk3.4.6 启动脚本里面 nohup "$JAVA" "-Dzookeeper.log.dir=${ZOO_ ...
- busybox启动流程简单解析:从init到shell login
关键词:kernel_init().init.inittab.wait/waitpid.fork/vfork.setsid().execvp/execlp.dup2等等. 由于遇到一系列定制,从ini ...
- 高通msm8994手动提升性能脚本
点击打开链接 [plain] view plain copy stop thermald stop mpdecision stop thermal-engine # online A57 echo 1 ...
- android:Activity四种启动模式简单介绍
Activity启动模式 能够依据实际的需求为Activity设置相应的启动模式,从而能够避免创建大量反复的Activity等问题 Activity有四种载入模式 1.standard(默认启动模式, ...
- Springboot启动流程简单分析
springboot启动的类为SpringApplication,执行构造函数初始化属性值后进入run方法: 然后返回ConfigurableApplicationContext(spring应用). ...
- 高通msm8994性能及温度监测脚本
[plain] view plain copystartTime=$(date +%Y-%m-%d-%H-%M-%S) pathName="/data/cpu_logs" fi ...
随机推荐
- Python使用asyncio+aiohttp异步爬取猫眼电影专业版
asyncio是从pytohn3.4开始添加到标准库中的一个强大的异步并发库,可以很好地解决python中高并发的问题,入门学习可以参考官方文档 并发访问能极大的提高爬虫的性能,但是requests访 ...
- JavaScript 将当地时间转换成其它时区
毫无疑问,用JavaScript脚本可以通过直接查看用户的时钟,方便地在网页上显示本地时间. 但是,如果你想显示不同地区的时间—--例如,如果你的本部在别的国家,你想查看“本国”时间而非当地时间,又该 ...
- NetBeans无法使用编码GBK安全地打开该文件
今天用NetBeans打开包含路径里面的UTF-8编码的文件时,提示:NetBeans无法使用编码GBK安全地打开该文件. 后来在网上搜索找到了解决方案,原文地址:http://qdjinxin.it ...
- python - 文件处理/open
# -*- coding:utf-8 -*- '''@project: jiaxy@author: Jimmy@file: study_文件处理.py@ide: PyCharm Community E ...
- Python面向对象(组合、菱形继承、多态)
今日内容: 1.组合 2.菱形继承 3.多态与多态性 昨天内容重点回顾: 1)调用也叫实例化:发生了2件事 1.创造空对象 2.触发对象下的__init__方法,然后将p连同参数一同传给init ...
- TOJ2680: 最大矩阵连乘次数
2680: 最大矩阵连乘次数 Time Limit(Common/Java):1000MS/10000MS Memory Limit:65536KByteTotal Submit: 144 ...
- Linux删除非空目录的方法
rmdir 无法删除非空目录. rm -rf 可以递归,强制,删除目录
- webpack的像素转vw单位的loader插件
安装: npm i px2vw-view-loader 配置: 按以下loader格式,添加进入webpack配置文件,实现从px转换成vw,适用于移动端项目 module: { rules: [{ ...
- iOS学习笔记24-不断进化的屏幕适配
一.屏幕适配 iOS的屏幕适配可以分为3大块,代表着不同时期的屏幕适配主流: AutoResizing:在iOS6之前,完全能够胜任,因为当时苹果只有3.5寸屏,加上比较少的支持横屏,它有非常大的局限 ...
- cssText批量修改样式
cssText所有浏览器都支持. cssText 的使用 obj.style.cssText = " width:200px;position:absolute;left:100px;&qu ...