Firefly开源社区

标题: 求助:mipi屏初始化过程中,uboot崩溃,不断重启 [打印本页]

作者: yubang    时间: 2016-12-12 18:21
标题: 求助:mipi屏初始化过程中,uboot崩溃,不断重启
各位好;
我尝试在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";
};
作者: zhansb    时间: 2016-12-13 09:43
本帖最后由 zhansb 于 2016-12-13 09:50 编辑

使用的是firefly官方的SDK,更新到哪里?
作者: yubang    时间: 2016-12-13 17:54
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相关数组大小。

谢谢;


作者: yubang    时间: 2016-12-13 17:56
zhansb 发表于 2016-12-13 09:43
使用的是firefly官方的SDK,更新到哪里?

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

有点无从下手;
作者: jpchen    时间: 2016-12-14 09:04
内核的相关mipi 的配置是否有选上
作者: yubang    时间: 2016-12-14 09:32
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


作者: yubang    时间: 2016-12-14 09:33
jpchen 发表于 2016-12-14 09:04
内核的相关mipi 的配置是否有选上

我想咨询一个问题,在初始化的命令中,有0x29,0x13,0x05等开头的,这些字节用哪个有什么特别的要求吗?
作者: jpchen    时间: 2016-12-14 14:22
你自己在网上搜一下mipi协议,你看一下就懂了
作者: shiqizheng    时间: 2017-1-13 15:40

你自己在网上搜一下mipi协议,你看一下就懂了
作者: jason_han_2005    时间: 2017-8-6 15:17
mipi屏点亮没?
作者: nice    时间: 2017-8-6 17:07
jason_han_2005 发表于 2017-8-6 15:17
mipi屏点亮没?

你好,我也在调试一款mipi LCD,现在还没点亮,有兴趣加qq讨论吗,我qq号 843791600




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1