高通MSM8998 ABL的调试
高通在MSM8998上引入了UEFI,用来代替LK(Little Kernel)。高通UEFI由XBL和ABL两部分组成。XBL负责芯片驱动及充电等核心应用功能。ABL包括芯片无关的应用如fastboot。XBL核心是none-HLOS boot_image代码的一部分,属于高通私有代码。ABL则在开源Linux Android代码树里。LK的设备驱动都放在了XBL核心,Linux加载启动及fastboot等功能组件则作为独立的UEFI应用存在。有关UEFI、XBL及ABL的详细介绍,请参见高通文档《80_P2484_37_LINUX_ANDROID_UEFI_OVERVIEW.pdf》。
ABL的编译非常简单,依次执行命令source build/envsetup.sh、lunch 32、make aboot,即可在out目录下生成abl.elf。这次调试ABL主要碰到了两个问题,一是没有生成abl.elf,二是生成abl.elf后没有做签名。高通原生代码并不存在问题,是项目中修改了代码导致的。费了一番周折,最终成功编译出可正常工作的abl.elf。未签名的abl.elf大概98KB,签名后的abl.elf约108KB。需要注意的是,ABL在Android代码树下,而签名工具(secimage)在高通私有代码目录(vendor/qcom/proprietary)下,在编译ABL时,一定要将高通提供的私有代码全部放到相应的目录下。未签名的abl.elf会让系统无法启动,上电直接进入EDL紧急下载模式。
这次调试ABL还是为了解决误入FFBM的问题。之前是通过修改init来解决的,即在设置系统Property时忽略内核命令行参数中的ffbm模式。而修改ABL则是打算在读取misc分区时做处理,直接不生成内核命令行参数的相应配置项。注释掉BootLinux.c中GetFfbmCommand的相关代码,具体如下,

烧录经过签名的abl.elf到abl分区,并将misc分区内容写为ffbm,重启机器,系统果然可以正常进入Android,并且内核命令行参数也无androidboot.mode=ffbm项,达到预期目的,详细如下图所示。

高通MSM8998 ABL的调试的更多相关文章
- 高通Android平台硬件调试之Camera篇
之前一段时间有幸在高通android平台上调试2款camera sensor,一款是OV的5M YUV sensor,支持jpeg out,同时也支持AF,调试比较比较简单,因为别的项目已经在使用了, ...
- 高通平台 lcd driver 调试小结
一.概述 1.1 简介 本文档主要包括LCD模块的驱动流程分析.Framebuffer相关知识.Gralloc等相关内容,以及LCD调试的一些经验和相关bug的分析和讲解. 1.2 开发环境 And ...
- 高通CP Crash分析调试
1. 转换tlcore文件 获取 EBICS0.BIN tl2elf --qconly tlcore 2.使用T32 命令把Riva的dump信息从EBICS0文件分离出来 data.load.BIN ...
- 高通安卓调试LCD几方面总结
来公司上班现在已经整整一个月了,蔽人不才,能力有限,学习进度缓慢,不过也是有一点点的收获与心得,在这里写出来与大家分享,养成良好的记录习惯也免得后忘记. 不啰嗦了,开入正题.来公司一个月左右的时间,主 ...
- Android : 高通平台Camera调试之SetpropKey/camxoverridesettings.txt
高通相关网址:Createpoint: https://createpoint.qti.qualcomm.com(可下载文档,Release Note等)Chipcode: https://chipc ...
- 高通LCD驱动调试
本文转载自:http://www.itgo.me/a/x6305658852004979994/lcd%20qcom 来自 :http://blog.csdn.net/dacaozuo/article ...
- Android : 高通平台的HVX简介及调试
一.HVX简介 HVX(“Hexagon矢量扩展”,Hexagon-六边形.Vector-矢量.Extensions-扩展)是Hexagon 680 DSP的典型特性,能够在执行图像处理应用中的计算负 ...
- 高通平台Camera调试(一)【转】
本文转载自:http://www.voidcn.com/blog/Winva/article/p-6044730.html 4.3. Camera 参考文档: 1) 80-NA157-22_PRESE ...
- 高通msm8909耳机调试
http://blog.csdn.net/mike8825/article/details/69489865?locationnum=3&fps=1 1.DTS相应修改: DTS相关代码:ke ...
随机推荐
- uni-app实现顶部导航栏显示按钮+搜索框
最近公司准备做app,最终决定使用uni-app框架开发,但是当把设计图给我的时候我心里有点没底,因为他的设计图顶部长成这个样子: 因为这个功能在小程序是根本无法实现的,可能受这个影响,我感觉好像实现 ...
- CAP带你轻松玩转Asp.Net Core消息队列
CAP是什么? CAP是由我们园子里的杨晓东大神开发出来的一套分布式事务的决绝方案,是.Net Core Community中的第一个千星项目(目前已经1656 Star),具有轻量级.易使用.高性能 ...
- TensorFlow读写数据
前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 回顾前面: 从零开始学TensorFlow[01-搭 ...
- maven私服上传jar包
将一下脚本保存在.bat文件执行,红色部分按实际情况修改: @echo off set groupId=com.xxxset artifactId=xxxset version=0.0.1set ja ...
- 基于flexbox纯css框架的解析
学CSS很好的一个方法大概是先用纯CSS来实现一个自己的框架,然后便可以在之后的使用中对一开始可能很粗糙的框架做细致的优化与改进,删除些冗余,添加些功能之类的. 当然,为了避免一开始写框架时候的时候手 ...
- css公共库——简介中超过长度显示省略号
在简介.引言中常见:文字只有一排,超出宽度以省略号显示,像这样 实现方法:在公共库定义otw类 .otw{ overflow: hidden; text-overflow: ellipsis; whi ...
- Android For OpenCV的环境搭建
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows.Android和Mac OS操作系统上.它轻量级而且高效--由一系列 C 函数和少量 C++ 类 ...
- echarts切换tab时,第一个图表显示,第二个图表不显示的解决办法
首先这种情况,我在网上看到了好多人问,确实也有正解,但是只是说出了其错误出现的原因,并没有给出解决方法. 我也是深受其害,所以呢,在这里记录一下,分享给还在困扰着的你们,迅速找出解决办法. 首先,我先 ...
- 编译Xposed
Xposed是Android平台上的有名的Hook工具,用它可以修改函数参数,函数返回值和类字段值等等,也可以用它来进行调试.Xposed有几个部分组成: 修改过的android_art,这个项目修改 ...
- 微信小程序初体验,入门练手项目--通讯录,部署上线(二)
接上一篇<微信小程序初体验,入门练手项目--通讯录,后台是阿里云服务器>:https://www.cnblogs.com/chengxs/p/9898670.html 开发微信小程序最尴尬 ...