如同先前所介紹的QSD850是由兩顆ARM為主體
一個是Modem用的ARM9 , 另一個則是arm11的app CPU
Qualcomm幾乎都是以Modem為主體.所以開機流程是ARM9開完才會去開ARM11.
這裡我們先介紹ARM9的開機流程,由於arm9的code沒有Open.所以只大概介紹一下..
arm9的開機步驟如下 :
PBL (Primary Boot Loader) ->
DBL (Device Boot Loader) ->
FSBL (Fail-Safe Boot Loader) ->
OSBL (Operating System Boot Loader) ->
最後就會進arm9的OS -> AMSS
PBL由於是ROM所以理論上不會有code,
主要目的是去把JTAG燒入的DBL給load起來.
DBL的流程如下
初始化exception 向量表->啟動ARM9指令cache->
設定硬體組態像是CLK ,EBI1,EBI2->
取得Partition table->判斷是否要進FSBL->
不進FSBL的話就把OSBL load起來進入.
FSBL好像是當初為了符合WM7所設定的,怕大家亂刷ROM.
不過目前似乎都沒有再用了.
OSBL流程如下:
初始化 MMU/cache/RAM ->
初始化 Flash -> 進入Downlaod mode ->
不Down load 的話建立Share Memory 區域->
->啟動或關閉 JTAG->載入MDSP image ->
讀進AMSS->關閉Cache以及MMU->控制權交給AMSS
以上程序做完理論上arm9應該就完成開機了.