高通 安卓 Uefi 的理解

        最近接触了高通bootloader,对UEFI有了一些理解,虽说不深入,俗话说不总结等于没学,因此还是小小总结一下;

        UEFI早在PC领域名声大噪,UEFI+gpt以其自身优点干翻了传统bios+mbr,UEFI也成为了未来bootloader的发展方向(迟早都得学),计算机软件界有一个名言,计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决(抽象),UEFI也不例外,之所以bios不行一个重要的点就是因为他的兼容性,UEFI为固件和操作系统提供了统一的接口,打通了PC固件之间的鸿沟;

        安卓bootloader从最初使用uboot,到lk(目前大多数依然是lk),一直到现在选择使用uefi,也足以证明UEFI的优势;

安卓UEFI:

 

        UEFI 定义了操作系统 (OS) 与平台固件之间的软件接口。接口由包含平台相关信息的数据表以及可用于 OS 及其加载程序的启动和运行系统服务调用组成。它们共同提供用于启动 OS 和运行预启动应用程序的标准环境。这句话读10遍,UEFI核心思想!!

UFEI组成:

         UEFI通过两部分实现:

               1,XBL 核心包含芯片组特有的核心协议(驱动程序)以及核心应用程序(如充电)。XBL 核心是非 HLOS boot_images 代码的组成部分。

               2,ABL 包含独立于芯片组的应用程序,如 fastboot。ABL 是 Code Aurora 论坛上开源 Linux Android 资源树的一部分。ABL 源由 BSD 颁发许可。

           UEFI XBL 核心目录结构

                     boot_images                                         

                              |--------->ArmPkg          

                              |--------->...

                              |--------->EmbeddedPkg   

                              |--------->...

                              |--------->MdePkg              

                              |--------->...                     

                              |--------->QcomPkg       

                              |--------->...

         UEFI 应用启动加载程序 (ABL) 开源目录结构

                 bootable/bootloader/edk2

                                  |--------->ArmPkg

                                  |---------- ...

                                  |----------EmbeddedPkg

                                  |----------...

                                  |----------MdePkg

                                  |-----------...

                                  |-----------QcomModulePkg

                                  |----------- ...

启动流程框图

 

高通 安卓 Uefi 的理解_第1张图片

根据代码分析可知,UFEI由 XBL和ABL组成,其中代码在boot_image下,ABL代码(edk2)在bootable/bootloader下;

UEFI的四个阶段中,前三个都在XBL中执行,最后一个主要在ABL中执行;

芯片组相关的代码在XBL中,芯片组无关的代码在ABL中,例如fastboot,linuxloader都在ABL中;

 

另外,UEFI中应用程序均使用标准的模块分装,例如linuxloader;改接口包含inf,dec,fdf文件,改规范在官方文档中有详细的介绍!

 

你可能感兴趣的:(安卓驱动,bootloader,uefi,android)