MSM芯片组Bootloader启动流程详解:处理器、模块与代码加载

需积分: 13 6 下载量 62 浏览量 更新于2024-09-07 收藏 349KB DOCX 举报
Bootloader启动流程是计算机硬件初始化的关键步骤,尤其对于嵌入式系统中的处理器和SoC (System-on-Chip) 设备来说,如高通的MSM8937、MSM8953和MSM8940芯片组。该流程确保设备在接收到电源信号后,能够正确地加载和执行必要的软件组件,从而进入操作系统或应用运行环境。 首先,启动地址对于不同的处理器有着特定安排。在MSM8937/MSM8953/MSM8940的chipsets中,存在多种处理器类型,如应用处理器(APPS)、资源和电源管理(RPM)、调制解调器(Modem)、无线连接网络子系统(WCNSS)以及低功耗音频子系统(LPASS)。这些子系统各自负责特定的功能,比如Modem用于支持2G、3G、4G通信,而LPASS则集成有传感器hub,通常由数字信号处理器(DSP)来实现。 在启动过程中,BootCallStack起到了关键作用。特别是针对经过Fuse处理的机器,DebugPolicy被加载,使得这类机器也能进行调试。BootCodeFlow的执行顺序如下: 1. 当按下电源键后,设备启动,首先将MSM8937/MSM8953/MSM8940的APPSPBL(应用处理器上的Bootloader部分)从ROM加载出来,然后开始执行。 2. 在Cortex-A53架构中,APPSPBL会载入并验证以下内容: - SBL1(Secure Boot Loader)的第一段代码,从boot设备传输到L2(作为 Trusted Compute Module,TCM),确保安全性和可信性。 - SBL1的第二段代码,即SDI(Secure Device Interface)等效版本,被加载到RPM的code RAM中,并随后执行SBL1。 3. SBL1继续初始化内存(DDR,Double Data Rate RAM),并载入和验证以下关键数据: - QSEE/TrustZone image:这是一种安全模块,用于保护系统核心,从boot设备加载到DDR。 - DEVCFG image:设备配置寄存器,存储系统配置信息,同样从boot设备加载至DDR。 - DebugPolicy image:调试策略,用于调试权限管理,确保在安全模式下正确操作。 - HLOSAPPSBL image:高层次的Linux Kernel或类似OS的APPSPBL映像,从boot设备传输到DDR,准备后续操作系统的加载。 Bootloader启动流程是一个精心设计的过程,涉及多个步骤和组件间的协同工作,确保设备在最短时间内稳定、安全地进入正常运行状态。理解这个流程对于硬件开发者和维护人员至关重要,因为它直接影响到设备的可靠性和性能。