達芬奇數字媒體片上系統(tǒng)的架構和Linux啟動過程
完成以上步驟之后,U-boot準備引導ARM Linux。
(1)配置系統(tǒng)的內存(通過ATAG_ MEM塊和mem=)NAND Flash和DDR2。
(2)通過TFTP加載等加載方式,加載內核到指定的存儲地址。
(3)如果定義過,加載RAM Disk。
(4)初始化傳遞到內核的引導參數(EMAC地址,串口,控制臺,視頻格式等)
(5)獲得ARM Linux機類型值(DVEVM為#901)。
(6)設置kernel tagged list。
(7)用初始值設置ARM的寄存器。
(8)調用內核。
> Linux 初始化步驟
(1)Linux內核需要從引導加載程序(U-boot)中得到以下參數。
* 已經初始化的memory系統(tǒng)。
* R0=0;R1為ARM Linux機類型值。
* R2指向ATAG結構體的內容:①物理memory區(qū);②是否使用RAM DISK及其壓縮版的地址;③視頻驅動程序具體的初始化參數;④內核命令行;⑤其他參數(串口和版本號)。
更多關于Linux內核引導參數的信息可以參考Linux/Documentation/kernel-parameters.txt。如果要想傳遞給內核更多的參數,再u-boot中的bootargs中設置就可以了。
(2)對于壓縮的內核(aka uImage),Linux 最初啟動Linux/arch/kernel/head.s。
(3)start_kernel()運行。位于Linux/init/main.c。
(4)Linux的第一個進程init()運行。
總結
經過上面介紹,很多DSP工程師可能會對達芬奇DMSoC及Linux啟動流程有一個感性的認識,雙核架構的達芬奇DMSoC帶給我們的是一加一大于二的性價比,要想了解更多的細節(jié),請參考數據手冊和應用文檔。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)linux相關文章:linux教程
評論