热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

msm8909android5.1.1,MSM8909+Android5.1.1启动流程(1)概述

MSM8909Android5.1.1启动流程(1)---概述PBL:APPSPBL(ApplicationPrimaryBootLoader),主引导

MSM8909+Android5.1.1启动流程(1)---概述

PBL:APPS PBL(ApplicationPrimary Boot Loader),主引导加载程序

RPM:ResourcePower Manager,资源电源管理器

RPM(ResourcePower Manager)是高通MSM平台另外加的一块芯片,虽然与AP芯片打包在一起,但其是一个独立的ARM Core。之所以加这个东西,就是要控制整个电源相关的shared resources,比如ldo,clock。负责与SMP,MPM交互进入睡眠或者唤醒整个系统。

L2 TCM:Tightly-CoupledMemory,紧耦合内存

Some ARM SoC:s have a so-called TCM(Tightly-Coupled Memory). This is usually just a few (4-64) KiB of RAM insidethe ARM processor.

Due to being embedded inside the CPU TheTCM has a Harvard-architecture, so there is an ITCM (instruction TCM) and aDTCM (data TCM). The DTCM can not contain any instructions, but the ITCM canactually contain data.

CDT: Configuration Data Table,包含CDB0: platform info信息和CDB1: DDR配置参数。

TZ:

PIL:Peripheralimage loader

MBA:Modem Boot Authenticator,调制解调器引导认证

HLOS:High-leveloperation system,高级操作系统

Pronto image:

SMEM : shared memory

RPC : remote procedure call

QCSBL : qualcomm second bootloader

OEMSBL : oem second bootloader

AMSS   : Advanced Mobile Subscriber Software

SDI : System Debug Image

QSEE : Qualcomm Secure Execution Environment

TZBSP :  TrustZone BSP

SBL1:ScondaryBoot Loader Stage1

MSS:MobileSubscriber Software移动用户软件

在ARM的集成开发环境中,只读的代码段和常量被称作RO段(ReadOnly);可读写的全局变量和静态变量被称作RW段(ReadWrite);RW段中要被初始化为零的变量被称为ZI段(ZeroInit)

1.     Msm8909启动涉及部分的介绍

(1)  APPS PBL(Application PrimaryBoot Loader)--------Cortex-A7

主引导加载程序,此程序的ZI/RW所需要的内容由L2 TCM和RPM codeRAM分配,在ROM中执行。引导程序功能是引导设备和接口检测、紧急下载模式的支持、通过L2 TCM和RPM CodeRAM加载和认证SBL1 ELF片段(segments)。

(2)  SBL1(Scondary Boot LoaderStage1) --------Cortex-A7

二级引导程序第1阶段,保存在EMMC/NAND中,负责初始化内存子系统(buses、DDR、clocks和CDT),加载和认证TZ、RPM_FW与APPSBL镜像,通过USB2.0和Sahara内存转储,保留看门狗调试,支持RAM转储到EMMC/SD,大容量储存模式支持,USB驱动支持、USB充电、温度检测、PMIC驱动支持、配置DDR和flush L1/L2/ETB to crash调试支持相关的配置

(3)  QSEE(Qualcomm Secure ExecEnvironment) --------Cortex-A7

高通安全执行环境,从NAND/EMMC中拷贝到LPDDR2/3中执行,等同于TZBSP(TrustZoneBSP),创建安全运行时执行环境、配置xPU、支持fluse驱动、创建SMMU配置等

(4)  RPM_FW----Cortex-M3

RPM : Resource Power Manager,资源电源管理器,是高通MSM平台另外加的一块芯片,虽然与AP芯片打包在一起,但其是一个独立的ARM Core。之所以加这个东西,就是要控制整个电源相关的shared resources,比如ldo,clock。负责与SMP,MPM交互进入睡眠或者唤醒整个系统。

从NAND/EMMC中拷贝出来,在RPM CodeRAM中运行

(5)  APPSBL image--------Cortex-A7

从NAND/EMMC中拷贝出来,在LPDDR2/3中运行,功能丰富的引导程序HLOS,加载/认证内核、recovery模式等等。

(6)  Modem PBL(Modem Primary BootLoader)-----------MSS Q6

在ROM中执行,创建Q6 TCM、从LPDDR2中加载MBA到Q6 TCM中并认证和锁住SMMU CB。

MSS:MobileSubscriber Software移动用户软件

(7)  MBA(Modem Boot Authenticator)

调试解调器启动认证,从NAND/EMMC中拷贝到LPDDR2/3和Q6 TCM中运行,认证modem镜像、xPU保护modem的DDR区域

(8)

2.     Msm8909的启动流程

0818b9ca8b590ca3270a3433284dd417.png

PBL--->SBL1--->QSEE/TZ

(1)  芯片上电复位到地址0,Cortex-A7 APPS在自带的ROM中开始执行PBL

(2)  PBL从EMMC中拷贝SBL1的第1段到L2 TCM中,执行和认证。

(3)  PBL从EMMC中拷贝SBL1的第2段到RPM CodeRAM中,执行和认证,然后调整到SBL1中。

SBL1的第2段相当于DDR驱动+SDI相当于拷贝RPM代码到RAM中,DDR由SBL1的第2段初始化,也包含了SDI部分功能。

(4)  SBL1第1段从EMMC中拷贝QSEE/TZ镜像到DDR中并认证

(5)  SBL1第1段从EMMC中拷贝RPM固件到RPM CodeRAM中并认证。

(6)  SBL1第1段从EMMC中拷贝HLOSAPPSBL镜像到DDR中并认证

(7)  SBL1第1段转移到QSEE/TZ中执行。

(8)  QSEE/TZ创建安全环境和开始执行RPM固件。

(9)  QSEE/TZ跳转到HLOS APPSBL开始执行

(10) HLOS APPSBL加载和认证HLOS内核

(11) HLOS内核通过PIL加载MBA到DDR。---(a)

(12) HLOS内核复位modem DSP Q6,Modem PBL开始执行---(b)

(13) HLOS内核通过PIL加载AMSS modem镜像到DDR----(c)

(14) Modem PBLcong DDR中拷贝MBA到modem TCM并认证MBA,且跳转到MBA镜像中执行。---(c’)

(15) MBA认证modem镜像兵跳转到modem中----(c’’)

(16) HLOS通过PIL加载Pronto镜像到DDR中---(d)

(17) HLOS复位Pronto,pronto镜像开始执行。

3.     Msm8909芯片组

Msm8909芯片组包含了APPS、RPM、Modem和Pronto处理器,

0818b9ca8b590ca3270a3433284dd417.png



推荐阅读
  • Windows7企业版怎样存储安全新功能详解
    本文介绍了电脑公司发布的GHOST WIN7 SP1 X64 通用特别版 V2019.12,软件大小为5.71 GB,支持简体中文,属于国产软件,免费使用。文章还提到了用户评分和软件分类为Win7系统,运行环境为Windows。同时,文章还介绍了平台检测结果,无插件,通过了360、腾讯、金山和瑞星的检测。此外,文章还提到了本地下载文件大小为5.71 GB,需要先下载高速下载器才能进行高速下载。最后,文章详细解释了Windows7企业版的存储安全新功能。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 原文地址http://balau82.wordpress.com/2010/02/28/hello-world-for-bare-metal-arm-using-qemu/最开始时 ... [详细]
  • C#设计模式之八装饰模式(Decorator Pattern)【结构型】
    一、引言今天我们要讲【结构型】设计模式的第三个模式,该模式是【装饰模式】,英文名称:DecoratorPattern。我第一次看到这个名称想到的是另外一个词语“装修”,我就说说我对“装修”的理 ... [详细]
  • uboot与linux驱动1.uboot本身是裸机程序(1)在裸机中本来是没有驱动概念的(狭义的驱动概念是指在操作系统中用来具体操控硬 ... [详细]
  • Win10 64位旗舰版的优势及特点详解
    本文详细介绍了Win10 64位旗舰版的优势及特点,包括更安全的源安装盘、永久激活方式、稳定性和硬件驱动的集成,以及人性化的维护工具和分区功能。通过阅读本文,您将了解到Win10 64位旗舰版相比其他版本的优势和特点。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 嵌入式处理器的架构与内核发展历程
    本文主要介绍了嵌入式处理器的架构与内核发展历程,包括不同架构的指令集的变化,以及内核的流水线和结构。通过对ARM架构的分析,可以更好地理解嵌入式处理器的架构与内核的关系。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • Mono为何能跨平台
    概念JIT编译(JITcompilation),运行时需要代码时,将Microsoft中间语言(MSIL)转换为机器码的编译。CLR(CommonLa ... [详细]
  • x86 linux的进程调度,x86体系结构下Linux2.6.26的进程调度和切换
    进程调度相关数据结构task_structtask_struct是进程在内核中对应的数据结构,它标识了进程的状态等各项信息。其中有一项thread_struct结构的 ... [详细]
  • Kali Linux 简介
    KaliLinux是世界渗透测试行业公认的优秀的网络安全审计工具集合,它可以通过对设备的探测来审计其安全性,而且功能完备,几乎包含了目前所 ... [详细]
  • 一条数据的漫游 XEngine SIGMOD Paper Introduction
    大多数人追寻永恒的家园(归宿),少数人追寻永恒的航向。----瓦尔特.本雅明背景X-Engine是阿里数据库产品事业部自研的OLTP数据库存储引擎, ... [详细]
  • 本文说明了Linux系统的配置文件,在多用户、多任务环境中,配置文件控制用户权限、系统应用程序、守护进程、服务和其它管理任务。这些任务包括管理用户帐号、 ... [详细]
author-avatar
嗳灬到此为止_769_836
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有