RK3128 UBOOT logo顯示的坑

2021-10-09 16:42:14 字數 2350 閱讀 4507

問題描述:

在除錯mipi介面的顯示屏的時候出現如下兩種情況,

(1)在裝置樹arch\arm\boot\dts\rk3128-box-rk88.dts中配置在uboot階段顯示logo,會出現程式跑飛。

(2) 在在裝置樹arch\arm\boot\dts\rk3128-box-rk88.dts中配置在uboot階段顯示logo後,出現顯示異常,顏色過度不自然,顏色不純有色塊等,並且通過pq除錯也無法解決。

階段uboot階段顯示logo裝置樹配置如下:

&fb 

;

問題1解決方案:

針對程式跑飛,最後發現從log無法提供有用資訊,但是通過開關uboot-logo-on發現只有開啟uboot-logo-on才會出現該問題。最後通過網上資料查詢得知,如果mipi傳送的cmds引數太長會導致區域性陣列溢位導致程式跑飛。最後修改如下:

index 7679e52

..368aa1f 100755

--- a/u-boot/drivers/video/screen/lcd_mipi.c

+++ b/u-boot/drivers/video/screen/lcd_mipi.c

@@ -27,

6+27,

10 @@

#include

"../transmitter/mipi_dsi.h"

#endif

+/*added by liangzhentao*/

+#define cmd_len 256

+/*end of adding*/

+#ifdef config_rk32_dsi

#define mipi_screen_dbg(x...)

//printf(x)

#elif defined config_lcd_mipi

@@ -

354,7+

358,

7 @@ static

intrk_mipi_screen_init_dt

(struct mipi_screen *screen)

struct list_head *pos;

struct property *prop;

enum of_gpio_flags flags;

- u32 value, i, debug, gpio, ret, cmds[25]

, length;

+ u32 value, i, debug, gpio, ret, cmds[cmd_len]

, length;

memset

(screen,0,

sizeof

(*screen));

@@ -

612,7+

616,

7 @@ export_symbol

(rk_mipi_get_dsi_clk)

;static

intrk_mipi_screen_init_dt

(struct mipi_screen *screen)

#endif

#ifdef config_lcd_mipi

cmds =

kmalloc

(0x400

, gfp_kernel);if

(!cmds)

#endif

list_for_each

(screen_pos,

&screen->cmdlist_head)

//printf("\n"); //傳送一行後分割

mipi_screen_dbg

("dcs_cmd.name:%s\n"

,dcs_cmd->dcs_cmd.name);if

(dcs_cmd->dcs_cmd.type == lpdt)..

....

}}

最後想到應該也是一些陣列溢位訪問的問題,果然發現結構體mipi_dcs_cmd_ctr_list中的成員變數申請的陣列個數是32個,這樣說明為何每次都是第33個開始出錯了。最後修改如下:

index f4d77a0.

.089a672 100755

--- a/u-boot/drivers/video/transmitter/mipi_dsi.h

+++ b/u-boot/drivers/video/transmitter/mipi_dsi.h

@@ -

255,12+

255,

17 @@ struct mipi_dsi_screen

;

rk3128 如何讀取 flash id

2019 06 14 關鍵字 mmc 唯一id flash 唯一識別碼 在 android 的系統中,預設是會將 flash 的唯一識別碼對映到檔案系統中的。它的預設路徑為 sys bus mmc devices 在這個路徑下通常你的板子上有多少塊儲存晶元,就會有多少個檔案。例如,筆者的開發板中它的...

rk3128網路機頂盒一些測試結果

1 rk3128的開機速度是23s。由於是裡面預裝了一大批軟體,很多是沒有必要的。最終版本的rom,我有把握做到18s。3 rk3128加入我們自己的機頂盒介面系統,反應速度效果不錯。我們的介面系統,呼叫rk3128的一些系統介面,基本上2天對接好。其介面比較規範好找。我們做的rom,優化了非常多的...

rk3128 lcd 驅動除錯記錄

最近剛除錯了基於rk3128平台的lcd驅動,順便記錄總結一下,有不足之處,望各位不吝賜教!1.架構 drivers video rockchip transmitter rk32 mipi dsi.c mipi 驅動主體檔案 rk32 mipi dsi.h 暫存器以及結構體的定義 mipi dsi...