星期二, 5月 30, 2006

The way to enable Splash Screen

工作紀錄,要讓開機的時候,先顯示Splash Screen,然後再unzip kernel...run application。

這大概是consumer產品必須的一項功能,power up後儘量快的顯示出畫面,免得讓user有等待的感覺。
尤其是使用linux的產品,開機後通常要先unzip kernel到ram中,load Non-GPLed module。然後才能進入AP。這一段有點耗時。

這個SDK的作法是用bootloader,bootloader支援romfs(因為這是最簡單的filesystem),啟動後,init DRAM,perial control,然後就到flash中找ROMFS mark,之後就找固定的幾個file,分別是:
  • parameter : 就是osd control 的參數
  • bitmap : 就是要顯示的圖
  • irqroutine : 負責顯示的program code。

parameter和bitmap這兩個file要用SDK的demo program產生,
demo code中有一個播放jpeg的program。加上dumpout參數,
會將osd output control 的register parameter list dump 出來,
同時將jpeg轉為bitmap,並且arrange為osd buffer中的raw格式後dump出來。

所以 bootloader要重新config,build,download。
rootfs也要重新build,加入上面的file到 / 中。

都燒到flash後....OK。啟動後 6 sec (!!!), splash screen 出現。
還是太久,TS的x86base 加上bios都不用這麼久,
猜測試 probe DRAM parameter造成的。

6 sec.. LCD 極化線條可以看到一點...

刪除掉 bootloader的DRAM probing 功能,看看能不能減少一半。


問題: 使用這種irq enable的bootloader,ethernet module 出問題,不能get up,會出現" no link"。
但是在bootloader中,這個ethernet 還是ok的,在linux起來後,modprobe 後出現no link error。

豬頭!! 這是 device 內建ethernet MAC的error message。

難怪覺得很熟習,從error message也可到呀。
因為重新config kernel了,所以內建ethernet MAC在預設config中是enable的。

內建的沒接網路線,當然enable起來後就是 "no link"啦~!

真是豬頭。

沒有留言:

網誌存檔