Firefly开源社区

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

求助:mipi屏初始化过程中,uboot崩溃,不断重启

334

积分

0

威望

0

贡献

技术达人

Rank: 2

积分
334

求助:mipi屏初始化过程中,uboot崩溃,不断重启

发表于 2016-12-12 18:21:32      浏览:18359 | 回复:10        打印      只看该作者   [复制链接] 楼主
各位好;
我尝试在3288(android5.1)上支持一款7寸的4 lane的mipi屏;遇到这样一个情况:
当在和屏相关的dtsi文件中的初始化命令的字节数过长时(超过20字节),uboot就会不断的重启,无法正常启动;

不停的打印如下:
empty serial no.
checkKey
vbus = 1
read logo on state from dts [1]
pll_src = 0, dclk_hz = 60000000, dclk_div = 6
undefined instruction
pc : [<01054f70>]          lr : [<0000020c>]
sp : 05737938  ip : 00016d2c     fp : 00000240
r10: 0000006d  r9 : 05748a38     r8 : 00000025
r7 : 00000052  r6 : 00000026     r5 : 00000027  r4 : 00000040
r3 : ffffffff  r2 : 00000004     r1 : 00016d2c  r0 : 00000000
Flags: NzCv  IRQs on  FIQs off  Mode SVC_32
Resetting CPU ...

resetting ...

我尝试去找了代码中是否哪里有对字节长度的限制,但目前没找到地方;

像请教下各位,是否也有遇到类似的情况?

以下是我屏的dtsi文件内容:
(on-cmds9, on-cmds10, on-cmds14,这三处地方就是字节数超过20的,让让系统uboot不断重启)

/*
* arch/arm/boot/dts/7inch-trip_mipi.dtsi
*/

/ {       
                /* about mipi */
                disp_mipi_init: mipi_dsi_init{
                                        compatible = "rockchip,mipi_dsi_init";
                                        rockchip,screen_init        = <1>;
                                        rockchip,dsi_lane                = <4>;
                                        //rockchip,dsi_hs_clk                = <1000>;
                                        rockchip,dsi_hs_clk                = <512>;
                                        rockchip,mipi_dsi_num        = <1>;
                };

                disp_mipi_power_ctr: mipi_power_ctr {
                                        compatible = "rockchip,mipi_power_ctr";

                                       
                                        mipi_lcd_rst:mipi_lcd_rst{
                                                        compatible = "rockchip,lcd_rst";
                                                        rockchip,gpios = <&gpio7 GPIO_A4 GPIO_ACTIVE_LOW>;
                                                        rockchip,delay = <10>;
                                        };
                };


                disp_mipi_init_cmds: screen-on-cmds {
                                        rockchip,cmd_debug = <0>;
                                        compatible = "rockchip,screen-on-cmds";       
                               
                                        rockchip,on-cmds1 {
                                                        compatible = "rockchip,on-cmds";
                                                        rockchip,cmd_type = <LPDT>;
                                                        rockchip,dsi_id = <0>;
                                                        rockchip,cmd = <0x29 0xF0 0x5A 0x5A>;
                                                        rockchip,cmd_delay = <0>;
                                        };

                                        rockchip,on-cmds2 {
                                                        compatible = "rockchip,on-cmds";
                                                        rockchip,cmd_type = <LPDT>;
                                                        rockchip,dsi_id = <0>;
                                                        rockchip,cmd = <0x29 0xF1 0x5A 0x5A>;
                                                        rockchip,cmd_delay = <0>;
                                        };


                                        rockchip,on-cmds3 {
                                                        compatible = "rockchip,on-cmds";
                                                        rockchip,cmd_type = <LPDT>;
                                                        rockchip,dsi_id = <0>;
                                                        rockchip,cmd = <0x29 0xFC 0xA5 0xA5>;
                                                        rockchip,cmd_delay = <0>;
                                        };

               
                                        rockchip,on-cmds4 {
                                                        compatible = "rockchip,on-cmds";
                                                        rockchip,cmd_type = <LPDT>;
                                                        rockchip,dsi_id = <0>;
                                                        rockchip,cmd = <0x29 0xD0 0x00 0X10>;
                                                        rockchip,cmd_delay = <0>;
                                        };

                                        rockchip,on-cmds5 {
                                                        compatible = "rockchip,on-cmds";
                                                        rockchip,cmd_type = <LPDT>;
                                                        rockchip,dsi_id = <0>;
                                                        rockchip,cmd = <0x29 0xB1 0x10>;
                                                        rockchip,cmd_delay = <0>;
                                        };

                                        rockchip,on-cmds6 {
                                                        compatible = "rockchip,on-cmds";
                                                        rockchip,cmd_type = <LPDT>;
                                                        rockchip,dsi_id = <0>;
                                                        rockchip,cmd = <0x29 0xB2 0x14 0X22 0x2F 0X04>;
                                                        rockchip,cmd_delay = <0>;
                                        };

                                        rockchip,on-cmds7 {
                                                        compatible = "rockchip,on-cmds";
                                                        rockchip,cmd_type = <LPDT>;
                                                        rockchip,dsi_id = <0>;
                                                        rockchip,cmd = <0x29 0xF2 0x02 0X08 0x08 0X90 0X10>;
                                                        rockchip,cmd_delay = <0>;
                                        };

                                        rockchip,on-cmds8 {
                                                        compatible = "rockchip,on-cmds";
                                                        rockchip,cmd_type = <LPDT>;
                                                        rockchip,dsi_id = <0>;
                                                        rockchip,cmd = <0x29 0xF3 0x01 0XD7 0xE2 0X62 0xF4 0XF7 0x77 0X3C 0x26 0X00>;
                                                        rockchip,cmd_delay = <0>;
                                        };

                                        rockchip,on-cmds9 {
                                                        compatible = "rockchip,on-cmds";
                                                        rockchip,cmd_type = <LPDT>;
                                                        rockchip,dsi_id = <0>;
                                                        rockchip,cmd = <0x29 0xF4 0x00 0X02 0x03 0X26 0x03 0X02 0x09 0X00 0x07 0X16 0x16 0x03 0X00 0x08 0X08 0x03 0X0E 0x0F 0X12 0x1C 0X1D 0x1E 0x0C 0X09 0x01 0X04 0x02 0X61 0x74 0X75 0x72 0X83 0x80 0x80 0XB0 0x00 0X01 0x01 0X28 0x04 0X03 0x28 0X01 0XD1 0X32>;
                                                        rockchip,cmd_delay = <0>;
                                        };


                                        rockchip,on-cmds10 {
                                                        compatible = "rockchip,on-cmds";
                                                        rockchip,cmd_type = <LPDT>;
                                                        rockchip,dsi_id = <0>;
                                                        rockchip,cmd = <0x29 0xF5 0x83 0X28 0x28 0X5F 0xAB 0X98 0x52 0X0F 0x33 0X43 0x04 0x59 0X54 0x52 0X05 0x40 0X60 0x4E 0X60 0x40 0X27 0x26 0x52 0X25 0x6D 0X18>;
                                                        rockchip,cmd_delay = <0>;
                                        };


                                        rockchip,on-cmds11 {
                                                        compatible = "rockchip,on-cmds";
                                                        rockchip,cmd_type = <LPDT>;
                                                        rockchip,dsi_id = <0>;
                                                        rockchip,cmd = <0x29 0xEE 0x00 0X00 0x00 0X00 0x00 0X00 0x00 0X00>;
                                                        rockchip,cmd_delay = <0>;
                                        };

                                        rockchip,on-cmds12 {
                                                        compatible = "rockchip,on-cmds";
                                                        rockchip,cmd_type = <LPDT>;
                                                        rockchip,dsi_id = <0>;
                                                        rockchip,cmd = <0x29 0xEF 0x12 0X12 0x43 0X43 0x90 0X84 0x24 0X81>;
                                                        rockchip,cmd_delay = <0>;
                                        };

                                        rockchip,on-cmds13 {
                                                        compatible = "rockchip,on-cmds";
                                                        rockchip,cmd_type = <LPDT>;
                                                        rockchip,dsi_id = <0>;
                                                        rockchip,cmd = <0x29 0xF6 0x63 0X25 0xA6 0X00 0x00 0X14>;
                                                        rockchip,cmd_delay = <0>;
                                        };

                                        rockchip,on-cmds14 {
                                                        compatible = "rockchip,on-cmds";
                                                        rockchip,cmd_type = <LPDT>;
                                                        rockchip,dsi_id = <0>;
                                                        rockchip,cmd = <0x29 0xF7 0x0A 0X0A 0x08 0X08 0x0B 0X0B 0x09 0X09 0x04 0X05 0x01 0x01 0X01 0x01 0X01 0x01 0X0A 0x0A 0X08 0x08 0X0B 0x0B 0x09 0X09 0x04 0X05 0X01 0x01 0x01 0X01 0x01 0X01>;
                                                        rockchip,cmd_delay = <0>;
                                        };

                                        rockchip,on-cmds15 {
                                                        compatible = "rockchip,on-cmds";
                                                        rockchip,cmd_type = <LPDT>;
                                                        rockchip,dsi_id = <0>;
                                                        rockchip,cmd = <0x29 0xFA 0x00 0X34 0x01 0X05 0x0E 0X07 0x0C 0X12 0x14 0X1C 0x23 0x2B 0X34 0x35 0X2E 0x2D 0X30>;
                                                        rockchip,cmd_delay = <0>;
                                        };

                                        rockchip,on-cmds16 {
                                                        compatible = "rockchip,on-cmds";
                                                        rockchip,cmd_type = <LPDT>;
                                                        rockchip,dsi_id = <0>;
                                                        rockchip,cmd = <0x29 0xFB 0x00 0X34 0x01 0X05 0x0E 0X07 0x0C 0X12 0x14 0X1C 0x23 0x2B 0X34 0x35 0X2E 0x2D 0X30>;
                                                        rockchip,cmd_delay = <0>;
                                        };

                                        rockchip,on-cmds17 {
                                                        compatible = "rockchip,on-cmds";
                                                        rockchip,cmd_type = <LPDT>;
                                                        rockchip,dsi_id = <0>;
                                                        rockchip,cmd = <0x29 0xFD 0x16 0X10 0x11 0X23 0x09>;
                                                        rockchip,cmd_delay = <0>;
                                        };

                                        rockchip,on-cmds18 {
                                                        compatible = "rockchip,on-cmds";
                                                        rockchip,cmd_type = <LPDT>;
                                                        rockchip,dsi_id = <0>;
                                                        rockchip,cmd = <0x29 0xFE 0x00 0X02 0x03 0X21 0x00 0X78>;
                                                        rockchip,cmd_delay = <0>;
                                        };

                                        rockchip,on-cmds19 {
                                                        compatible = "rockchip,on-cmds";
                                                        rockchip,cmd_type = <LPDT>;
                                                        rockchip,dsi_id = <0>;
                                                        rockchip,cmd = <0x05 0x35>;
                                                        rockchip,cmd_delay = <0>;
                                        };

                                        rockchip,on-cmds20 {
                                                        compatible = "rockchip,on-cmds";
                                                        rockchip,cmd_type = <LPDT>;
                                                        rockchip,dsi_id = <0>;
                                                        rockchip,cmd = <0x05 0x11>;
                                                        rockchip,cmd_delay = <0>;
                                        };

                                        rockchip,on-cmds21 {
                                                        compatible = "rockchip,on-cmds";
                                                        rockchip,cmd_type = <LPDT>;
                                                        rockchip,dsi_id = <0>;
                                                        rockchip,cmd = <0xFF 0x10>;
                                                        rockchip,cmd_delay = <0>;
                                        };

                                        rockchip,on-cmds22 {
                                                        compatible = "rockchip,on-cmds";
                                                        rockchip,cmd_type = <LPDT>;
                                                        rockchip,dsi_id = <0>;
                                                        rockchip,cmd = <0x29 0xC3 0X40 0X00 0X28>;
                                                        rockchip,cmd_delay = <0>;
                                        };

                                        rockchip,on-cmds23 {
                                                        compatible = "rockchip,on-cmds";
                                                        rockchip,cmd_type = <LPDT>;
                                                        rockchip,dsi_id = <0>;
                                                        rockchip,cmd = <0x05 0x29>;
                                                        rockchip,cmd_delay = <0>;
                                        };
                                       
                       
                };

                disp_timings: display-timings {
                        native-mode = <&timing0>;
                        compatible = "rockchip,display-timings";
                        timing0: timing0 {
                                screen-type = <SCREEN_MIPI>;
                                //screen-type = <SCREEN_DUAL_MIPI>;
                                lvds-format = <LVDS_8BIT_2>;
                                out-face    = <OUT_P888>;
                                //color-mode = <COLOR_RGB>;
                                clock-frequency = <60000000>;
                                //clock-frequency = <120000000>;
                                hactive = <800>;
                                vactive = <1280>;
                                //hsync-len = <20>;
                                hsync-len = <40>;
                                hback-porch = <48>;
                                hfront-porch = <16>;
                               
                                //vsync-len = <10>;
                                vsync-len = <3>;
                                vback-porch = <3>;
                                vfront-porch = <5>;
                               
                                hsync-active = <1>;
                                vsync-active = <1>;
                                de-active = <0>;
                                pixelclk-active = <1>;
                                swap-rb = <0>;
                                swap-rg = <0>;
                                swap-gb = <0>;
                             };

                       
               };
};

&dsihost0 {
        status = "okay";
};
回复

使用道具 举报

2918

积分

56

威望

46

贡献

高级创客

Rank: 6Rank: 6

积分
2918

优秀版主论坛元老

发表于 2016-12-13 09:43:40        只看该作者  沙发
本帖最后由 zhansb 于 2016-12-13 09:50 编辑

使用的是firefly官方的SDK,更新到哪里?
回复

使用道具 举报

334

积分

0

威望

0

贡献

技术达人

Rank: 2

积分
334
发表于 2016-12-13 17:54:50        只看该作者  板凳
zhansb 发表于 2016-12-13 09:43
使用的是firefly官方的SDK,更新到哪里?

根据你的提示,我找到那个文件了,确实是需要把cmd的空间加大;
uboot/drivers/video/screen/lcd_mipi.c
uboot/drivers/video/transmitter/mipi_dsi.h

kernel/drivers/video/rockchip/screen/lcd_mipi.c
kernel/drivers/video/rockchip/transmitter/mipi_dsi.h

改动这四个文件里面的cmds相关数组大小。

谢谢;

回复

使用道具 举报

334

积分

0

威望

0

贡献

技术达人

Rank: 2

积分
334
发表于 2016-12-13 17:56:42        只看该作者  地板
zhansb 发表于 2016-12-13 09:43
使用的是firefly官方的SDK,更新到哪里?

现在是uboot和内核都不会崩溃或重启;
但是系统启动后,mipi屏任何显示的痕迹,只是背光亮了;

有点无从下手;
回复

使用道具 举报

3750

积分

17

威望

18

贡献

官方团队

Rank: 9Rank: 9Rank: 9

积分
3750
发表于 2016-12-14 09:04:39        只看该作者  5#
内核的相关mipi 的配置是否有选上
回复

使用道具 举报

334

积分

0

威望

0

贡献

技术达人

Rank: 2

积分
334
发表于 2016-12-14 09:32:07        只看该作者  6#
jpchen 发表于 2016-12-14 09:04
内核的相关mipi 的配置是否有选上

恩,都选上了;

CONFIG_LCDC_RK3288=y
CONFIG_LCDC_RK3036=y
CONFIG_LCDC_RK312X=y
-CONFIG_LCD_GENERAL=y
-# CONFIG_LCD_MIPI is not set
+# CONFIG_LCD_GENERAL is not set
+CONFIG_LCD_MIPI=y
CONFIG_RK_TRSM=y
CONFIG_RK32_LVDS=y
# CONFIG_RK31XX_LVDS is not set
@@ -2423,7 +2423,10 @@ CONFIG_DP_ANX6345=y
# CONFIG_DP501 is not set
CONFIG_RK32_DP=y
CONFIG_RK_VGA=y
-# CONFIG_MIPI_DSI is not set
+CONFIG_MIPI_DSI=y
+# CONFIG_TC358768_RGB2MIPI is not set
+# CONFIG_SSD2828_RGB2MIPI is not set
+CONFIG_RK32_MIPI_DSI=y

回复

使用道具 举报

334

积分

0

威望

0

贡献

技术达人

Rank: 2

积分
334
发表于 2016-12-14 09:33:20        只看该作者  7#
jpchen 发表于 2016-12-14 09:04
内核的相关mipi 的配置是否有选上

我想咨询一个问题,在初始化的命令中,有0x29,0x13,0x05等开头的,这些字节用哪个有什么特别的要求吗?
回复

使用道具 举报

3750

积分

17

威望

18

贡献

官方团队

Rank: 9Rank: 9Rank: 9

积分
3750
发表于 2016-12-14 14:22:51        只看该作者  8#
你自己在网上搜一下mipi协议,你看一下就懂了
回复

使用道具 举报

18

积分

0

威望

0

贡献

游客

积分
18
发表于 2017-1-13 15:40:30        只看该作者  9#

你自己在网上搜一下mipi协议,你看一下就懂了
回复

使用道具 举报

57

积分

0

威望

0

贡献

技术小白

积分
57
发表于 2017-8-6 15:17:02        只看该作者  10#
mipi屏点亮没?
回复

使用道具 举报

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

本版积分规则

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