高通平台启动流程

高通平台的启动流程如下:
在这里插入图片描述
现对各个阶段说明如下:

  1. PM检测到系统上电,将会给MSM发出上电复位信号,要求MSM复位。这样AP(Kryo应用处理器)将会退出reset状态。
    注:Kryo是Qualcomm Technologies推出的首款定制设计的64位CPU。
  2. 在AP处理器侧,应用主引导加载程序(应用PBL)执行。PBL:Primary Boot Loader 是不可改变的bootloader。PBL的作用是硬件初始化、配置数据等。 (该部分是在内部ROM中执行
    a. 对extensible boot loader (XBL) region #1 进行身份认证,并将其从引导设备(as TCM)加载到L2。
    b. 验证XBL region #2 (DDR/SDI equivalent)并将其加载到片上内部存储器(OCIMEM),然后跳转到XBL region #1
  3. 在 XBL region #1中,XBL对PMIC镜像进行身份认证并将其从引导设备加载到内部缓冲区 (该部分是在IMEM中执行
    a. 对QSEE进行身份认证,并将其从引导设备加载到pIMEM
    QSEE - Qualcomm Secure Execution Environment
    b. 对QHEE (Hypervisor) image 进行身份认证,并将其从引导设备加载到DDR
    QHEE - Qualcomm Hypervisor Execution Environment
    c. 对RPM firmware image 进行身份认证,并将其从引导设备加载 RPM code RAM
    d. 对little kernel(LK) boot (or XBL region #3)进行身份认证,并将其从启动设备加载到DDR
  4. XBL region #1 结束工作,下一步由QSEE执行 (以下是在DDR中执行
  5. QSEE使RPM退出reset状态,启动并执行RPM firmware
  6. QSEE建立一个安全的环境,并跳转到QHEE image,启动并执行它
  7. QSEE跳转到LK boot(or XBL region #3),启动并执行
  8. LK boot (or XBL region #3)对HLOS kernel进行身份验证,并进行装载 (HLOS - high-level operating system指操作系统,比如windows、linux、android等)。以android系统为例,这里装载完成后,开始运行linux。
  9. HLOS kernel 通过PIL把MBA加载到DDR
    (MBA - modem boot authenticator PIL - peripheral image loader)
  10. HLOS kernel 使Hexagon modem DSP退出reset状态(从kernel log也可以看到,8-9s左右modem才复位)
  11. Modem PBL将MBA从DDR复制到modem TCM,对MBA进行身份认证,并跳转到MBA image
  12. HLOS通过PIL把AMSS modem image加载到DDR
  13. MBA对modem image进行身份认证,然后跳转到modem(这里modem才真正跑起来)
  14. HLOS通过PIL加载Venus、 LPASS 和 SSC images到DDR
  15. HLOS使Venus、 LPASS 和 SSC退出reset状态,并通过一个安全的SMC调用(监控模式)启动执行各个子系统。

注意:纵向是执行的存储设备(在哪里执行),横向是执行的单元(包括多个处理器以及dsp)。
以MSM8953为例,其内部包含有多个dsp和ap的:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/cornerstone1/article/details/113255907