這大概是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"啦~!
真是豬頭。
沒有留言:
張貼留言