更改高通xbl串口log波特率
本修改基于高通QCM6125平台,目的是为了满足客户无聊的需求。
注意事项:
- 基准时钟频率需要是硬件和驱动支持的频率,时钟频率和分频系数可以从AP侧驱动中找到
- 最低分频系数需要满足分频公式(能够被整除),分频公式中除以32还是16需要从AP侧驱动中推测过来,或者通过默认的115200波特率的分频系数中推导
- 6125平台的修改难点是需要自己增加QUPv3控制器设置时钟的相关实现,这个可以从其他QUPv3的高通平台代码中找到,默认是没有的!(这个坑让我填了整整3天)
diff --git a/boot_images/QcomPkg/Library/UartQupv3Lib/UartXBL.c b/boot_images/QcomPkg/Library/UartQupv3Lib/UartXBL.c
index 7e14b69..7ac5b37 100755
--- a/boot_images/QcomPkg/Library/UartQupv3Lib/UartXBL.c
+++ b/boot_images/QcomPkg/Library/UartQupv3Lib/UartXBL.c
@@ -76,12 +76,16 @@ static UINT8 ring_buffer[RING_SIZE]; // size must be a power of 2
static UINT32 read_index = 0; // must be masked before subscripting
static UINT32 write_index = 0; // must be masked before subscripting
static UINT32 tx_fifo_size = 0; // will be populated in register_init
+static UINT32 clk_reg_value = 0; // used to put correct clock divider value based on QUP version
static uart_handle uart_debug_handle;
static const CLOCK_SETTINGS baud_table[] =
{
// bit_rate, input_freq, divider
{ 115200, 7372800, 64 },
+ { 460800, 14745600, 32 },
+ { 921600, 29491200, 32 },
+ { 1000000, 32000000, 32 },
{0}
};
@@ -159,6 +163,8 @@ static uart_result clock_enable(uart_context* uart_ctxt)
return UART_ERROR;
}
+ clk_reg_value = ((divider/32) << 0x4) | 0x1;
+
return UART_SUCCESS;
}
@@ -423,9 +429,9 @@ void register_init(uart_context* uart_ctxt)
REG_OUT(base + GENI4_DATA, GENI_RX_RFR_WATERMARK_REG, temp - 4);
- REG_OUT(base + GENI4_CFG, GENI_SER_M_CLK_CFG, 0x21);
+ REG_OUT(base + GENI4_CFG, GENI_SER_M_CLK_CFG, clk_reg_value);
- REG_OUT(base + GENI4_CFG, GENI_SER_S_CLK_CFG, 0x21);
+ REG_OUT(base + GENI4_CFG, GENI_SER_S_CLK_CFG, clk_reg_value);
//REG_OUT(base + GENI4_IMAGE_REGS, UART_LOOPBACK_CFG, 0x3);
@@ -804,6 +810,8 @@ uart_initialize(void)
uart_open_config c;
c.baud_rate = 115200;
+ // c.baud_rate = 460800;
+ // c.baud_rate = 921600;
c.parity_mode = UART_NO_PARITY;
c.num_stop_bits = UART_1_0_STOP_BITS;
c.bits_per_char = UART_8_BITS_PER_CHAR;
更改高通xbl串口log波特率的更多相关文章
- 高通qxdm抓取sensor的log【学习笔记】
高通qxdm抓取sensor的log 打开qxdm,打开设置界面,去掉其他无关的log,打开Log packets .Message packets的SNS的log 之后需要把端口打开,把端口打开之后 ...
- 高通安卓调试LCD几方面总结
来公司上班现在已经整整一个月了,蔽人不才,能力有限,学习进度缓慢,不过也是有一点点的收获与心得,在这里写出来与大家分享,养成良好的记录习惯也免得后忘记. 不啰嗦了,开入正题.来公司一个月左右的时间,主 ...
- 【转】高通平台android 环境配置编译及开发经验总结
原文网址:http://blog.csdn.net/dongwuming/article/details/12784535 1.高通平台android开发总结 1.1 搭建高通平台环境开发环境 在高通 ...
- 高通LCD驱动调试
本文转载自:http://www.itgo.me/a/x6305658852004979994/lcd%20qcom 来自 :http://blog.csdn.net/dacaozuo/article ...
- 高通平台 lcd driver 调试小结
一.概述 1.1 简介 本文档主要包括LCD模块的驱动流程分析.Framebuffer相关知识.Gralloc等相关内容,以及LCD调试的一些经验和相关bug的分析和讲解. 1.2 开发环境 And ...
- 高通平台启动log概述(PBL log、sbl1 log、kernel log)【转】
本文转自:https://blog.csdn.net/RadianceBlau/article/details/78416776?utm_source=blogxgwz9 高通平台启动log概述(PB ...
- 高通MSM8255 GPS 调试分析&&Android系统之Broadcom GPS 移植【转】
本文转载自:http://blog.csdn.net/gabbzang/article/details/12063031 http://blog.csdn.NET/dwyane_zhang/artic ...
- 高通Vuforia(Unity3D)云识别初级使用教程
高通Vuforia(Unity3D)云识别初级使用教程 最近因项目开发需要,接触了高通的AR引擎Vuforia云识别,个人感觉稳定性还是很不错的,唯一不爽的地方就是免费的云识别库每个月只能识别10 ...
- android 6.0 高通平台sensor 工作机制及流程(原创)
最近工作上有碰到sensor的相关问题,正好分析下其流程作个笔记. 这个笔记分三个部分: sensor硬件和驱动的工作机制 sensor 上层app如何使用 从驱动到上层app这中间的流程是如何 Se ...
- 高通平台FastMMI(FFBM模式)简介与进入方法
参考: http://blog.csdn.net/tfslovexizi/article/details/51499979 http://www.voidcn.com/blog/jimbo_lee/a ...
随机推荐
- mini-web框架 添加log日志
阅读目录: 1.mini-web框架-路由支持正则 2.mini-web框架-mysql-增 3.mini-web框架-mysql-删 4.mini-web框架-mysql-改 5.mini-web框 ...
- JS 识别安卓还是ios苹果、识别是否微信内置浏览器、手机类型
1.识别手机平台是IOS还是安卓 /** * [isMobile 判断平台] * @param test: 0:iPhone 1:Android */ function ismobile(test) ...
- 通过duxapp提供的基础方法、UI组件、全局样式,快速编写项目
使用duxapp,我是如何实现快速完成项目开发的? 像下面这个例子,这个项目有140多个页面,但是真实的开发时间,在熟练使用duxapp的情况下,不会超过两周,并且可以将它兼容APP.小程序.H5 这 ...
- 基于Hadoop实现的对历年四级单词的词频分析(入门级Hadoop项目)
前情提要:飞物作者屡次四级考试未能通过,进而恼羞成怒,制作了基于Hadoop实现的对历年四级单词的词频分析项目,希望督促自己尽快通过四级(然而并没有什么卵用) 项目需求:Pycharm.IDEA.Li ...
- 模拟器运行环境及Lua代码——使用遗传进化算法(neat算法)玩超级玛丽游戏
SuperMario_GeneticEvolution_Neat 项目介绍: 模拟器运行环境及Lua代码--使用遗传进化算法(neat算法)玩超级玛丽游戏 代码地址: https://openi.pc ...
- 关于MNN的OPENCL和Vulkan支持
关于MNN框架推理的时候,通过调用库当中结构体的内容,可以切换选择创建Session的具体配置.关于结构的描述见官方文档: 官方文档--创建Session CPU是编译的时候默认选择的配置方式,通过文 ...
- 2.TP6的入门-分页类的改写
看了看推荐的分页类的使用,还是很简单的,可是自己去尝试改写生成的分页类结构就会很麻烦,总是不成功,后来发现手册里面还有这个 就说你想重写分页类,就需要这样做 赶紧实践了一下,先改这里的provider ...
- 聊一下怎么10分钟速水中危CVE
题目是真的.今天晚上刚接触关于CVE的审计和提交.只能说:牛逼的是真牛逼,水的是真水. 我接下来教你,怎么在10分钟里找到一个CVE的中危漏洞并且提交.然后你就可以去咸鱼接单了,一个一铂快 打开htt ...
- S2P销讯通-主数据对于客户关系管理系统的重要性
由于业务发展,各大企业的业务系统经历了从无到有,从简单到复杂,从而形成了一个又一个的业务系统,比如OA.HR.CRM.ERP等等. 主数据在客户关系管理系统(CRM)中扮演着至关重要的角色.主数据是指 ...
- uni-app项目分包后子包中静态资源丢失
前情 uni-app是我比较喜欢的跨平台框架,它能开发小程序/H5/APP(安卓/iOS),重要的是对前端开发友好,自带的IDE让开发体验非常棒,公司项目就是主推uni-app. 坑位 随着项目越做越 ...