![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
高通Qualcomm+android
loongembedded
本人目前在佛山一家上市公司负责智能终端、服务机器人的研发工作,欢迎大家的指教和交流!。
展开
-
modem概要记录
1. NUMBER_SENT_PACKETS_OF_HANG默认值为10,表示发送10次数据包没有响应的情况下,会触发数据业务重试机制frameworks\opt\telephony\src\java\com\android\internal\telephony\dataconnection\DcTracker.java// Default sent packets without ack...原创 2019-07-18 16:57:20 · 602 阅读 · 2 评论 -
高通平台 /sys/module/lpm_levels/parameters/sleep_disabled节点
高通平台 /sys/module/lpm_levels/parameters/sleep_disabled节点默认值为N,可通过修改init.rc文件来修改,最近遇到一个问题,就是两台设备韦根测试收发,A设备发给B设备,如果发送比较快,B设备会发现丢中断的情况,硬件实际测试CPU接收端没有丢终端,但是驱动端发现丢终端,说明是软件这部分问题,后来 adb shell "echo Y > /sys/module/lpm_levels/parameters/sleep_disabled"后,这是让CPU跑到原创 2021-03-20 09:24:33 · 1273 阅读 · 0 评论 -
高通SDM450+android9.0读显示屏ID
1.读屏厂OTP时写入DA寄存器的值1) 确定驱动IC厂家指定的读取ID的命令static char id_cmd[] = {0xDA, 0x00, 0x06, 0xA0};static struct mipi_dsi_cmd sc600_800p_id_command = {sizeof(id_cmd), id_cmd, 0x00};#define ILI9881C_0D_800P_VIDEO_SIGNATURE 0x005A //读出来ID和厂家写入的ID值来比较2) ...原创 2021-03-18 20:18:40 · 1179 阅读 · 2 评论 -
android lk DEFINES定义的环境变量的值
比如对于高通MSM8953平台来说,DEFINES定义的环境变量都会生成到out\target\product\msm8953_64\obj\EMMC_BOOTLOADER_OBJ\build-msm8953\config.h中,从\bootable\bootloader\lk\makefile文件可以得到这个信息config.h的值可让我们直观获知定义的环境变量的值,如下:...原创 2021-01-27 15:03:31 · 235 阅读 · 0 评论 -
SDM450+android8.1播放左声道音频文件和右声道音频文件,左右喇叭都有声音问题
正常的现象是播放左声道音频文件,左喇叭播放;播放右声道音频文件,右喇叭播放,但问题是不管播放左还是右音频文件,左右喇叭都有播放原理图设计经过排查,原来是当时产品为了兼容,hardware\qcom\audio\configs\msm8953\mixer_paths_mtp.xml当时注释掉了<!--ctl name="MI2S_RX Channels" value="Two" /-->引起了,重新打开就可以了,因为硬件设计上是用耳机接口,所以xml中的speaker下的内容从原创 2021-01-12 20:03:54 · 623 阅读 · 1 评论 -
Android高通平台调试Camera驱动全纪录
项目比较紧,3周内把一个带有外置ISP,MIPI数据通信,800万像素的camera从无驱动到实现客户全部需求。1日 搭平台,建环境,编译内核,烧写代码。我是一直在Window下搭个虚拟机登服务器搞开发的,对Linux系统环境实在无爱,每每一到项目刚开始要搭环境了,内心总有点排斥,过程就比较纠结,看来以后还是要搞个linux真机玩玩。2日 编写camera驱动大致框转载 2015-06-27 17:10:17 · 3104 阅读 · 0 评论 -
高通Android display架构分析
目录(?)[-]Kernel Space Display架构介绍函数和数据结构介绍函数和数据结构介绍函数和数据结构介绍数据流分析初始化过程分析User Space display接口Kernel display接口典型应用flow分析介绍Surface manager(surface flinger)简介架构分析流程分析根据前面的介绍,surfaceflinger作为一个serve转载 2015-06-27 17:07:00 · 6015 阅读 · 0 评论 -
高通 android平台LCD驱动分析
目前手机芯片厂家提供的源码里包含整个LCD驱动框架,一般厂家会定义一个xxx_fb.c的源文件,注册一个平台设备和平台驱动,在驱动的probe函数中来调用register_framebuffer(),从而生成/dev/fbx的设备节点。这里最重要的数据结构是fb_ops,它包括fb打开、参数设置、画图、配置、内存映射等操作函数,芯片厂家通常提供了这部分的源码,因为这些操作一般是跟芯片内部的DMP和转载 2015-06-27 17:02:03 · 4126 阅读 · 0 评论 -
高通Android平台硬件调试之Camera篇
之前一段时间有幸在高通android平台上调试2款camera sensor,一款是OV的5M YUV sensor,支持jpeg out,同时也支持AF,调试比较比较简单,因为别的项目已经在使用了,只是把相关的驱动移植过来就好;另一款是Samsung的一款比较新的3M YUV FF sensor,在最新项目中要使用的,本文以调试该sensor为例,从底层驱动的角度分享一下高通android平台下转载 2015-06-27 17:39:54 · 2225 阅读 · 0 评论 -
高通平台环境搭建,编译,系统引导流程分析
1、高通平台android开发总结1.1 搭建高通平台环境开发环境在高通开发板上烧录文件系统建立高通平台开发环境高通平台,android和 modem 编译流程分析高通平台 7620 启动流程分析qcril 流程分析,设置sim卡锁python scons 语法学习Python 语言之 scons 工具流程分析: 1.转载 2015-06-30 08:15:05 · 11450 阅读 · 0 评论 -
SD卡驱动分析(一)
Android下的SD卡驱动与标准LINUX下的SD卡驱动好像没有太大的区别,这里就以高通的ANDROID 2.3以代表,来简要分析一下LINUX下SD卡驱动的写法。由于小弟的技术有限,分析的有错的地方,请大家指正,可以共同学习。 一.最先来理清一下SD、MMC与SDIO的一些基本概念: (1) MMC:(Multi转载 2015-07-15 15:39:33 · 1763 阅读 · 0 评论 -
SD卡驱动分析(二)
三.下面分析一下高通的android2.3的代码中SD卡驱动的流程。 在kernel中,SD卡是作为平台设备加入到内核中去的,在/kernel/arch/arm/mach-msm/devices-msm7627a.c中:[cpp] view plaincopystatic void __init msm7x2转载 2015-07-15 15:40:51 · 1940 阅读 · 0 评论 -
高通安卓调试LCD几方面总结
来公司上班现在已经整整一个月了,蔽人不才,能力有限,学习进度缓慢,不过也是有一点点的收获与心得,在这里写出来与大家分享,养成良好的记录习惯也免得后忘记。 不啰嗦了,开入正题。来公司一个月左右的时间,主要接触了高通android4.0和android2.3的LCD驱动,当然在bootloader下LCD的驱动我也调试的。 (1) kernel 先来说一下转载 2015-07-15 15:12:29 · 3944 阅读 · 0 评论 -
android MSM8974 上DeviceTree简介
简介主要功能是不在代码中硬编码设备信息,而是用专门的文件来描述。整个系统的设备节点会形成一个树,设备节点里可以设置属性。官网在http://www.devicetree.org 。入门指南请参考http://www.devicetree.org/Device_Tree_Usage 。Linux上一些状况请参考"kernel/Document/devicetree/",其中"bindings"子目录转载 2015-09-26 14:54:59 · 1578 阅读 · 0 评论 -
MSM8974 fastboot烧写软件
fastboot烧写是在aboot阶段做的,所以空板没有完整烧写aboot及其boot sequence前的image是没法使用fastboot的。在手机开机状态下,执行: adb reboot bootloader 手机就会重启进入fastboot模式,然后就可以利用fastboot进行单个image的烧写,具体如下: fastboot flash 其转载 2015-10-03 11:59:46 · 5201 阅读 · 0 评论 -
A840S黑砖修复过程(2013-05-22修改)
首先感谢su_ky大神,没有他的博客和帖子,这次救砖根本没有成功的可能。其次谢谢A840S交流群284998898的Sunny deng,没有他提供的分区镜像同样也完成不了这次的工作。现象:手机完全没有反应,同时按音量上下+开机键都没有反应。USB连上电脑后电脑显示一个“QHSUSB_DLOAD”的设备。这就是典型的黑砖了。变砖原因:刷机脚本写错,把rawdata.img写入了mmcblk0p8,转载 2015-10-03 11:47:58 · 5662 阅读 · 0 评论 -
高通、猎户机型Android典型bootloader分析
1、bootloader是什么? 简单地说,bootloader 就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。 Android系统基于Linux,所以bootloader部分也是与传统的嵌入式设备上运行的Linux没有什么区别。转载 2015-11-05 16:21:33 · 2959 阅读 · 0 评论 -
QCom MSM MDP显示驱动一些点的简记
简要记录了Qualcom MSM8xxx MDP Framebuffer驱动中的一些点。Framebuffer设备的sysfs330static int msm_fb_create_sysfs(struct platform_device *pdev)331{332 int rc;333 struct msm_fb_data_type *mfd = platform转载 2015-10-22 16:31:48 · 1925 阅读 · 0 评论 -
android 串口调试
在usb调试过程中,都会选择串口查看log,更希望在串口中输入命令查看相关状态。但是一般情况下串口调试时 进程用户是shell,即使你在adb shell下是root用户。暴力方法是在 adroid源码/system/core/rootdir/init.rc service console /system/bin/sh下面user shell 把 shell 改为root。转载 2015-10-22 16:33:27 · 2988 阅读 · 0 评论 -
Linux加载DTS设备节点的过程(以高通8974平台为例)
DTS是Device Tree Source的缩写,用来描述设备的硬件细节。在过去的ARM Linux中,arch/arm/plat-xxx和arch/arm/mach-xxx中充斥着大量的垃圾代码,相当多数的代码只是在描述板级细节,而这些板级细节对于内核来讲,不过是垃圾,如板上的platform设备、resource、i2c_board_info、spi_board_info以及各种硬件的pla转载 2015-10-08 16:08:30 · 5098 阅读 · 0 评论 -
如何提高android串口kernel log等级
在 /device/qcom/common/rootdir/etc/init.qcom.rc write /proc/sys/kernel/printk "6 6 1 7"第一个数字6改成 8 就可以输出info信息。转载 2015-10-22 16:30:24 · 3294 阅读 · 0 评论 -
MSM8909平台 LED背光的控制
之前齐师兄问我,是不是应该有一个文件记录背光灯的亮度,我说理论上有,但是在哪里我真的还没有见过。只知道在调LCD驱动的时候会调用一个背光控制的函数,传进来一个亮度值就可以配置亮度了,至于这个函数是谁调用的,以及和上层是怎么联系的,自己一直没想过,最近系统的看了一下,特作此总结。路径:root/andriod/kernel/drivers/video/在Mdss_dsi_panel.c文件里,有一个转载 2015-10-22 16:27:52 · 3895 阅读 · 0 评论 -
高通平台 lcd driver 调试小结
一、概述1.1 简介 本文档主要包括LCD模块的驱动流程分析、Framebuffer相关知识、Gralloc等相关内容,以及LCD调试的一些经验和相关bug的分析和讲解。1.2 开发环境 Android:4.0 Kernel: Linux3.0 Ubuntu:需要 10.04以及之后的版本 Gcc: 4.4.3 tool转载 2015-10-22 16:37:36 · 6045 阅读 · 0 评论 -
高通APQ8074 spi 接口配置
高通APQ8074 spi 接口配置8074 平台含有两个BLSP(BAM Low-Speed Peripheral) , 每一个BLSP含有两个QUP, 每一个QUP可以被配置为I2C, SPI, UART, UIM接口, BLSP是高通对于低速接口的一种管理方式。每个QUP是和特定的引脚相关的, 如下图所示,比如下面的引脚是属于BLSP8的, 也就是第二个BLSP的第二个QUP, 注意这些引脚转载 2015-10-08 16:07:25 · 3021 阅读 · 0 评论 -
高通平台msm8909 LK 实现LCD 兼容
前段时间小米出现红米note2 换屏门,现在我们公司也要上演了;有两个供应商提供不同IC 的LCD panel。 软件区分的办法是读取LCD IC 的ID 寄存器,下面解析高通平台LK中LCD兼容的过程。 废话不多说了直接从 target_display_init() .第一次开代码时不理解为什么会有 do{} while(),这就是高通原生lkLCD 兼容的关键所在。至转载 2015-10-22 16:29:22 · 8707 阅读 · 0 评论 -
高通平台点亮LCD个人总结
点击打开链接高通平台LCD模块大致分为两部分:KERNEL和LK。在进行点屏之前,应该认真查看LCD原理图,弄清楚LCD亮屏需要满足的条件和上电时序,同时可以跟LCD IC原厂拿到初始化代码。 首先点亮KERNEL。 在点亮KERNEL之前,先进入bootable/bootloader/lk/target/msm****/rules.mk文件,将DEFINES += DISPL转载 2015-11-26 09:59:55 · 4180 阅读 · 0 评论 -
Android4.0.3 USB OTG底层插入上报过程分析(1)
下面的两个宏是PM8058的MMP11(R15),MMP12(P15)管脚。#define EXT_CHG_VALID_MPP 10#define EXT_CHG_VALID_MPP_2 11static struct pm8xxx_mpp_init_info isl_mpp[] = { PM8058_MPP_INIT(EXT_CHG_VALID_MPP, D_INPUT, P转载 2016-01-16 14:41:37 · 3444 阅读 · 0 评论 -
针对高通BMS的研究 高通电量计
点击打开链接高通8064 8974 8926等pm芯片都集成了电量计,估计后续芯片都会一直存在,现在许多项目UI状态栏电池都有百分比显示,所以需要深入分析BMS有助于解决电量方面的BUG。一: SOC(荷电状态)计算方法名词:FCC Full-charge capacity UC Remaining capacityCC Coulumb counter UUC转载 2015-12-18 19:42:02 · 5615 阅读 · 0 评论 -
USB port 如何识别不同的Charger类型
基于Qualcom 8960/8921平台一,软件分析1. USB charger types & Power supply typesUSB_INVALID_CHARGER Invalid USB charger.USB_SDP_CHARGER Standard downstream port. Refers to a do转载 2015-12-21 18:06:13 · 5157 阅读 · 0 评论 -
Qual F&Q
[1]长按power键,下面有四个选项可以选择户外,静音,振动标准四种模式GlobalActions.java->createDialog(): if (!mHasVibrator) { mSilentModeAction = new SilentModeToggleAction(); } else { mSilentModeAction = new SilentModeTriStateActio转载 2016-01-26 14:33:18 · 2642 阅读 · 0 评论 -
sd 卡驱动--基于高通平台
点击打开链接内容来自以下博客:http://blog.csdn.net/qianjin0703/article/details/5918041 Linux设备驱动子系统第二弹 - SD卡 (有介绍SD卡硬件)http://blog.csdn.net/wavemcu/article/details/7366852 linux2.6内核SD Card Driver详细解析之一http://bl转载 2016-01-12 18:59:19 · 4666 阅读 · 3 评论 -
高通 MSM8K bootloader : SBL1 .
一、 MSM8K Boot Flow 图1: 高通MSM8K平台bootloader启动流程基本类似,但具体各平台,比如MSM8974、MSM8916、MSM8994等,会有微小区别。从上图,可以看出高通8K平台的boot过程非常不一般啊。相比MTK平台,或者高通7K平台,复杂了非常多。 下图是高通文档对启动流程的说明,已经很清楚了,我这转载 2016-03-30 14:10:31 · 3962 阅读 · 0 评论 -
msm8916 dt选用规则
1、AndroidBoard.mk 选则kernel build 默认配置文件:msm8916_defconfig/device/qcom/msm8916/AndroidBoard.mk#----------------------------------------------------------------------# Compile Linux Kernel#-------------转载 2016-03-30 14:13:37 · 2517 阅读 · 0 评论 -
高通 MSM8K bootloader 之四: ramdump
前面说过高通平台,系统crash发生时,抓取crash ramdump非常重要,否则很难定位crash原因。平台默认抓取ramdump的方法都有很强的局限性,如下:1、PC端工具QPST提供的 Memory Debug Application工具。局限性:完全信赖PC2、sbl1将crash现场dump到外置sdcard。 boot_sd_ramdump.c 局限性:很多手机根本没有配置外置sd转载 2016-03-30 14:17:55 · 4353 阅读 · 0 评论 -
SMEM介绍
SMEM :shared memory,是高通平台各子系统共享信息的一种机制,通过SMEM机制,PBL可以将信息传递给SBL1,SBL1可以将信息传递给RPM、LK。下面分析一个SMEM信息传递的具体实现过程。 1 Platform id信息SBL1会将board level platform id信息通过SMEM机制保存,LK在启动过程中会自动platform detect,检测当前平台boar转载 2016-03-30 15:27:39 · 1843 阅读 · 0 评论 -
Device tree customization
Step 1: OEMs can create their own device tree by adding "qcom,msm-id/qcom,board-id" entry at the top of their file. The hardware variant ID has to be unique and created by the OEMs. Please refer to sl转载 2016-03-30 15:39:04 · 2462 阅读 · 0 评论 -
MSM平台RPM
Software Component Block DiagramRPM(Resource Power Manager)是高通MSM平台另外加的一块芯片,虽然与AP芯片打包在一起,但其是一个独立的ARM Core。之所以加这个东西,就是要控制整个电源相关的shared resources,比如ldo,clock。负责与SMP,MPM交互进入睡眠或者唤醒整个系统。 以下是高通文档中对各个功能模块的说明转载 2016-03-31 11:17:22 · 11342 阅读 · 0 评论 -
简谈高通Trustzone的实现
从trust zone之我见知道,支持trustzone的芯片会跑在两个世界。普通世界、安全世界,对应高通这边是HLOS,QSEE。如下图:如下是HLOS与QSEE的软件架构图HLOS这两分为kernel层,user层。user层的通过qseecom提供的API起动trustzone那边的app。qseecom driver 除了提供API,还调用scm函数做世界切换。scm driver 那边接转载 2016-04-01 10:17:36 · 4398 阅读 · 0 评论 -
Linux驱动基础:msm平台,modem等framework加载
msm平台,AP和CP封装在一起,公用一块内存。所以AP需要负责把整个modem, TZ , rpm等binary拷贝到内存中以供modem等subsystem去运行。那AP这边是怎么分配这些内存,又是怎么读出来相关的binary,又如何把binary上传上去的呢??相关的featureCONFIG_FW_LOADERCONFIG_FW_LOADER_USER_HELPER12modem使用的内转载 2016-04-01 10:25:08 · 4867 阅读 · 1 评论 -
高通平台手机开发之LCD
4.1. LCD 参考文档: 1) 80-NA157-174_E_DSI_Programing_Guide_B-Family_Android_Devices.pdf2) 80-NN766-1_A_Linux_Android_Display_Driver_Porting_Guide.pdf3) 80-NH713-1_F_DSI_Timing_Parameters.xlsmLCD调试主要有三个任务:转载 2016-03-24 15:34:36 · 5242 阅读 · 1 评论