转载-Qualcomm MSM8953启动流程:PBL-SBL1-(bootloader)LK-Android

时间:2019-12-02 23:34:13   收藏:0   阅读:451

文章转载链接:

https://blog.csdn.net/RadianceBlau/article/details/73229005

对于嵌入式工程师了解芯片启动过程是十分有必要的,在分析、调试各种问题的时候都有可能涉及到这方面的知识,同时这部分知识也是比较复杂的,因为其中涉及到芯片内部架构,启动各个阶段软件代码执行顺序,启动模式等等。下面以比较常用的Qualcomm MSM8953芯片的启动过程为例,进行宏观分析,下面是启动流程:

技术分享图片

 

(1)处理器核心

从上面的框图可以看到MSM8953中的处理器有5个,分别为:

对应下面芯片硬件结构图中各个处理器的框图来看就很清晰了:

技术分享图片

 

(2)启动image介绍

 

(3)启动流程

        a、从启动设备(如eMMC)加载SBL1 segment1到L2(即为TCM);

        b、加载SBL1 segment2到RPM处理器的RAM中。

        a、从启动设备加载QSEE image到DDR;

        b、从启动设备加载DEVCFG image到DDR;

        c、从启动设备加载Debug Policy image到DDR;

        d、从启动设备加载HLOS APPSBL image到DDR;

        e、从启动设备加载RPMfirmware image到RPM的RAM中。

        a、SBL1运行在AArch32模式,而QSEE运行在AArch64模式。为了切换到AArch64模式,SBL1会启动重映射器,操作RMR寄存器,然后触发warm-reset,QSEE就能够运行在AArch64模式了。

        a、 APPSBL只能在AArch32模式开始运行;

        b、这时AArch32的运行模式切换是在EL3/Monitor模式完成的。通过查看APPSBL的ELF头能够得知其需要运行在32位指令集架构下。EL3/Monitor模式改变到32位模式,然后再启动APPSBL。

 下面是流程的简化图,其中区分了AArch32和AArch64位的QSEE/TrustZone:

技术分享图片

 

(4)关于eMMC和DDR的初始化时间问题

从上面的描述中已经可以看清,为避免迷惑,在分离出来看看:

 

关于ARMv8架构的知识,推荐如下博客:

http://blog.csdn.net/forever_2015/article/details/50285865

原文:https://www.cnblogs.com/Cqlismy/p/11972885.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!