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

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的启动流程

 MSM8909+Android5.1.1启动流程(1)---概述_第1张图片

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处理器,


你可能感兴趣的:(Android)