大家好,我是林译川,今天我们来聊一聊高通MSM8K Bootloader中的SBL1部分。SBL1作为Bootloader的重要组成部分,它的工作原理和设计思想对于我们理解整个系统启动过程至关重要。
首先,我们得知道SBL1主要负责哪些事情。它主要处理CDT(Platform ID和DDR参数)、debug log、download(支持sahara和firehose协议)以及ramdump(死机异常信息dump)等。
接下来,我们重点来看一下SW download部分。高通8K平台支持两种下载模式:紧急下载模式和普通下载模式。紧急下载模式主要应用于工厂生产和SBL异常处理,而普通下载模式则用于软件升级。
紧急下载模式
紧急下载模式分为自动进入和手动进入两种。自动进入模式主要在主板生产时或SBL运行异常时自动触发。手动进入模式则可以通过硬件GPIO下拉或软件设置magic number来实现。
普通下载模式
普通下载模式由SBL负责与PC交互实现软件下载。SBL进入普通下载模式通常是在USB D+接地或SBL发生异常时,通过设置cookie自动进入。
此外,SBL1还提供了两个下载模式的入口:sbl_dload_entry和boot_dload_transition_enter_sahara。sbl_dload_entry支持直接在SBL1中通过Sahara协议下载,还支持crash ram dump功能。而boot_dload_transition_enter_sahara则用于进入Sahara下载模式。
进入升级模式的方法主要有两种:sbl1扫描按键组合和adb reboot + edl / dload命令。
软件升级工具及协议
高通平台从MSM6K、7K到8K,download的方法和协议一直在更新。目前主要经历了stream dload到sahara,再到firehose的演变。相应的,高通提供了eMMC Software Download和QFIL两个下载工具。
Crash ramdump
高通平台开放且不稳定,因此系统crash时抓取crash现场就非常重要。高通平台提供了几种抓取系统crash现场的方法,包括通过QPST的Memory Debug Application工具、SBL1提供将crash现场dump到sdcard的功能以及compact ramdump等。
其他
SBL1还涉及一些其他功能,如pmic初始化、电池低电时利用内部pmic进行预充电、power key配置、获取、保存开机原因等。
最后,SBL1还提供了一些常用的tools,如fat32 udisk生成工具、QPST下载工具、T32 Jtag下载工具、分区相关工具等。
希望通过这篇文章,大家能够对高通MSM8K Bootloader的SBL1部分有更深入的理解。我是林译川,感谢大家的阅读,欢迎关注新派编程网(www.xjpbg.com)了解更多内容。
