bootloader启动流程

2020-05-01 10:43

MSM8909+Android5.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的启动流程

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

lk源代码目录及入口

1.Lk概述

LK是(L)ittle(K)ernel的缩写。

高通平台Android普遍采用LK作为其bootloader,LK是一个开源项目。但是,LK只是整个系统的引导部分,所以它不是独立存在。LK是一个功能及其强大的bootloader,但现在只支持arm和x86平台。

LK的一个显著的特点就是它实现了一个简单的线程机制(thread),和对高通处理器的深度定制和使用。

2. 源代码目录

app //主函数启动app执行的目录,第一个app在app/aboot/aboot.c中

arch //体系代码包含x86和arm

dev //设备目录,包含显示器,键盘,net,usb等设备的初始化代码 include //头文件

kernel //kernel/main.c主函数以及kernel/thread.c线程函数 lib //库文件 make //编译规则

platform //不同平台代码mdmxxx,msmxxx,apqxxx,qsdxxx,还有共享的目录msm_shared

project //整个工程的编译规则

target //通用init.c,具体目标板的初始化(主要为板子设备资源init.c代码中),编译规则代码(一级s810.mk二级hdc8094.mk)

3. Lk入口

bootable\\bootloader\\lk\\arch\\arm\\rule.mk文件下相关部分:

[plain] view plain copy 1. # potentially generated files that shouldbe cleaned out with clean make rule


bootloader启动流程.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:第十章 中央银行货币政策工具与业务操作(中央银行学,王广谦)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: