uboot切換kernel花屏

添加完uboot和kernel的logo顯示後,發現在uboot加載kernel後會出現花屏/閃屏的現象,

通過觀察可發現該現象出現在

## Booting kernel from Legacy Image at 80200000 ...
   Image Name:   Linux-2.6.32
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2580016 Bytes = 2.5 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

附近,定位帶源代碼就是在common/cmd_bootm.c 中的bootm_load_os函數中

case IH_COMP_NONE:  
 if (load == blob_start) {  
  printf ("   XIP %s ... ", type_name);  
 } else {  
  printf ("   Loading %s ... ", type_name);  
  
  if (load != image_start) {  
   memmove_wd ((void *)load,  
     (void *)image_start, image_len, CHUNKSZ);  
  }  
 }  
 *load_end = load + image_len;  
 puts("OK\n");  

break;

在網上搜索到說在這地方做清屏動作可以消除花屏/閃屏的現象,添加了

u32 *ptr = (u32 *)omap3_frame_buffer;

memset(ptr,0x00, LCD_HEIGHT * LCD_WIDTH * 4);//32bit

實現清屏卻還是不能解決。這應該是因爲從uboot跳轉到kernel,到kernel再次初始化LCD緩存之間,LCD緩存處於不確定造成,

所以將LCD緩存設定爲某一狀態並不能消除花屏/閃屏現象。這樣可以通過關閉LCD背光來使LCD黑屏,這樣就不會看到花屏/閃屏

的現象,添加了

twl4030_led_init(0x00);

編譯後,更新到板上,就沒有花屏/閃屏的現象了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章