Firefly开源社区

12
发表新贴
打印 上一主题 下一主题

[Android] [firefly rk3288] [android 5] 求救!! mipi調適問題!! 0x39 後 字節限制?? [已解決]

156

积分

0

威望

0

贡献

技术小白

积分
156

[firefly rk3288] [android 5] 求救!! mipi調適問題!! 0x39 後 字節限制?? [已解決]

发表于 2019-3-29 09:37:48      浏览:18885 | 回复:10        打印      只看该作者   [复制链接] 楼主
本帖最后由 bnlinemily 于 2019-7-2 09:16 编辑

開發板: firefly rk3288

目前在 調一塊屏, mipi 介面,
已找到 mipi command 中一段會影響
若輸入這段mipi command後, 無法開機,
請問, 該如何處理, 請幫忙.


下面這一段是我要輸入的
------
rockchip,on-cmds68 {
    compatible = "rockchip,on-cmds";
    rockchip,cmd_type = <LPDT>;
    rockchip,dsi_id = <0>;
    rockchip,cmd = <0x39 0xB3 0x35 0x35 0x6 0x35 0x0 0x3F 0x16 0x16 0x14 0x14 0xA 0xA 0x8 0x8 0x29 0x29 0x28 0x28 0x36 0x36 0x38 0x38 0x35 0x35 0x7 0x35 0x1 0x3F 0x17 0x17 0x15 0x15 0xB 0xB 0x9 0x9 0x2B 0x2B 0x2A 0x2A 0x36 0x36 0x38 0x38>;
    rockchip,cmd_delay = <0>;
};
-----------------------

用上了, 可編譯, 可燒錄, 但無法開機,
這一段如果砍掉, 可編譯, 可燒錄, 可以開機, 但顯示異常,

如果將command 修改 (改短, 如下範例),  可編譯, 可燒錄, 可以開機, 但未顯示畫面
問過屏的FAE, 這一段command是必須的 (for gip setting)
-------
rockchip,on-cmds68 {
    compatible = "rockchip,on-cmds";
    rockchip,cmd_type = <LPDT>;
    rockchip,dsi_id = <0>;
    rockchip,cmd = <0x39 0xB3 0x35 0x35 0x6 0x35 0x0 0x3F 0x16 0x16 0x14 0x14 0xA 0xA 0x8 0x8 0x29 0x29 0x28 0x28 0x36 0x36 0x38 0x38 0x35 0x35>;
    rockchip,cmd_delay = <0>;
};
------------------------
回复

使用道具 举报

156

积分

0

威望

0

贡献

技术小白

积分
156
发表于 2019-3-29 09:56:28        只看该作者  沙发
若需要補充任何訊息, 請告知, 迅速補上....
回复

使用道具 举报

14

积分

0

威望

0

贡献

技术小白

积分
14
发表于 2019-3-29 12:48:52        只看该作者  板凳
请技术工程师尽快解答一下!
回复

使用道具 举报

156

积分

0

威望

0

贡献

技术小白

积分
156
发表于 2019-4-1 09:42:17        只看该作者  地板
本帖最后由 bnlinemily 于 2019-4-1 18:34 编辑

hi, all:

有查到以下內容, 請問具體如何執行呢??

自己嘗試follow 下列兩個refernce, 尚未成功...
麻煩各位大老幫幫忙

--------  reference 1 ----------------------
6.3 我碰到的 cmds 问题
我当时拿到 MTK 平台参数的时候,有的参数超过了 32个字节(有个有36个字节,有个有39个字节),完成 dtsi 中 cmds 编写后
烧录,板子跑飞,空指针异常。
发现传递 这个超长 参数的时候有内存溢出情况。
于是跟代码发现 dcs_cmd.cmds 的大小为 int cmds[32],所以擅自想当然的将包拆成了 39 = 28+11,还将其中的延时设置为 0 。
这样当然是不行的。但是一切都是基于这个拆了包的 cmds 来调,走了不少弯路。
后来一切的其他参数都确定没问题了。
于是去联系原厂的工程师,说平台参数大小有限制,咨询拆包是否可行。他们说建议修改 cmds[32] 改成了 cmds[400] 。
修改后发现屏幕终于点亮了。
终于点亮了。
点亮了。
---------------------
作者:Younix脏羊
来源:CSDN
原文:https://blog.csdn.net/dearsq/article/details/52354593
版权声明:本文为博主原创文章,转载请附上博文链接!

--------  reference 2 ----------------------https://www.itread01.com/content/1548729932.html

6.2 有資料傳輸,但是 cmds 有問題
cmds 有的引數超過了 32個位元組(有個有36個位元組,有個有39個位元組),完成 dtsi 中 cmds 編寫後
燒錄,板子跑飛,空指標異常。
發現傳遞 這個超長 引數的時候有記憶體溢位情況。
於是跟程式碼發現 dcs_cmd.cmds 的資料型別為 int cmds[32],所以擅自想當然的將包拆成了 39 = 28+11,還將其中的延時設定為 0 。
這樣當然是不行的。但是一切都是基於這個拆了包的 cmds 來調,走了不少彎路。

於是去聯絡原廠的工程師,說平臺引數大小有限制,諮詢拆包是否可行。
他們說可以直接修改 cmds 陣列大小,將 cmds[32] 改成了 cmds[400] 。

這個問題在 RK 後來的 kernel 中被更新了。


回复

使用道具 举报

274

积分

0

威望

0

贡献

技术达人

Rank: 2

积分
274
发表于 2019-4-2 17:11:15        只看该作者  5#
http://dev.t-firefly.com/thread-806-1-1.html    mipi调试可以参考一下这个帖子!
回复

使用道具 举报

156

积分

0

威望

0

贡献

技术小白

积分
156
发表于 2019-4-2 18:27:32        只看该作者  6#
hi, YAo


謝謝資料提供,  這個資料 我看過了, 兩年前有用過, 對以前的我幫助很大
但是對現在的我 沒有幫助

我先說明狀況, 已成功調過幾片mipi的屏了, 剛好這些屏的cmds 數量都是數量少的,
如  rockchip,cmd = <0x39 0xB3 0x35 0x35 0x6 0x35 0x0 0x3F 0x16 0x16 0x14 0x14 0xA 0xA 0x8>;

這次遇到的lcd屏 對應的 IC 需要下的command較多, 數量有 45個,
只要設定 45個, 開發板就 無法開機,
情況像是 先前有人遇到的
    "cmds 有的引數超過了 32個位元組(有个有36个字节,有个有39个字节),完成 dtsi 中 cmds 编写后
烧录,板子跑飞,空指针异常。 "

將參數降低到 30個字節, 可以開機了, 但lcd屏 無法顯示 (因為 沒有設定 gip timming)

如果 這個 cmds不下,  可以開機, 可以點亮lcd, 但 顯示異常 (vgh vgl 電壓都正確, 代表 mipi code執行正確)

個人判斷, mipi 指令正確, 限制在 參數數量....

所以, 可以麻煩你再看一次詳細內容, 再幫我一次嗎???



回复

使用道具 举报

3750

积分

17

威望

18

贡献

官方团队

Rank: 9Rank: 9Rank: 9

积分
3750
发表于 2019-4-8 10:23:56        只看该作者  7#

请同步一下sdk最新,已经解决过这个问题了,请知悉
回复

使用道具 举报

156

积分

0

威望

0

贡献

技术小白

积分
156
发表于 2019-4-9 10:05:49        只看该作者  8#
本帖最后由 bnlinemily 于 2019-4-9 15:25 编辑
jpchen 发表于 2019-4-8 10:23
请同步一下sdk最新,已经解决过这个问题了,请知悉

hi, jpchen,

你好, 可以幫忙補充嗎?

我使用官方的sdk
firefly-rk3288_android5.1_git_20180126.tar.gz

2018 8 月 成功compile開始使用,

剛剛去看了, sdk 還是一樣firefly-rk3288_android5.1_git_20180126.tar.gz

請問你說的同步sdk最新, 可以更進一步說明嗎?

--------------------------------------
我去試了

A.  >>git pull bitbucket Firefly-RK3288:Firefly-RK3288
==>Already up-to-date.

B. check git log
commit 8fa48dc229f69da2d064324073fdbf327d88d60b
Author: linjz <service@t-firefly.com>
Date:   Fri Dec 25 14:36:55 2015 +0800

    kernel->lcd: increase the capacity of mipi cmds

搜尋了 git log 看到了 cmds capacity 有增加... 可是上限到哪了?

C. 再次 compile, 狀況一樣

D. check  kernel/driver/video/rockchip/transmit/mipi-dsi.h 与 cmds數量相關的部分.
int cmds[64];

E. 依據網路資料也確認了 兩個檔案, https://www.itread01.com/p/129369.html
kernel/drivers/video/rockchip/screen/lcd_mipi.c
cmds[64]
kernel/drivers/video/rockchip/transmitter/mipi_dsi.h
cmds[64], name[64]

---------------------

請問還有甚麼該注意的?






回复

使用道具 举报

3750

积分

17

威望

18

贡献

官方团队

Rank: 9Rank: 9Rank: 9

积分
3750
发表于 2019-4-25 09:55:05        只看该作者  9#
bnlinemily 发表于 2019-4-9 10:05
hi, jpchen,

你好, 可以幫忙補充嗎?

就是修改uboot和kernel的这两个地方即可
回复

使用道具 举报

156

积分

0

威望

0

贡献

技术小白

积分
156
发表于 2019-4-25 11:39:03        只看该作者  10#
本帖最后由 bnlinemily 于 2019-4-26 08:36 编辑

hi, jpchen:

感謝你幫忙提點....

可以再說多一點嗎?
例如  具體的檔案 / 具體的位置 / 怎麼改

請多多包涵

--- 我自己先嘗試修改lcd.h 後續再make kernel 時 一直遇到這個問題, 請問怎麼辦?   而且 之後也改不回來了, 目前改成 cmd[300](原本cmds[64]) -----------
drivers/video/rockchip/screen/lcd.h: In function 'rk_mipi_screen_init_dt':
drivers/video/rockchip/screen/lcd.h:509:1: warning: the frame size of 1216 bytes is larger than 1024 bytes [-Wframe-larger-than=]
error, forbidden warning: lcd.h:509


回复

使用道具 举报

返回列表
12
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表