您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關 如何進行PowerPC P2010 SylixOS啟動方式的分析,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
QorIQ P系列處理器基于Power Architecture e500系列內核。其中P10xx系列、P2010和P2020基于e500v2內核,P204x、P30xx和P40xx基于e500mc內核,P50xx基于e5500內核。
其中,P2系列專為網絡、電信、軍工等各種市場提供高品質部件。P2010包含一個1.2GHz內核,512KB二級高速緩存等等。
mkimage工具可以用來制作不壓縮或者壓縮的多種可啟動鏡像文件。
mkimage在制作鏡像文件的時候,是在原來的可執行鏡像文件的前面加上一個64字節的頭,記錄參數所指定的信息,這樣uboot才能識別這個鏡像是針對哪個CPU體系結構的,哪個OS的,哪種類型,加載內存中的哪個位置,入口點在內存的哪個位置以及鏡像名是什么等等。
mkimage工具用法如下:
-A:設定架構類型;
-O:設定操作系統類型;
-T:鏡像類型;
-a:指定鏡像在內存中的加載地址;
-e:指定鏡像運行的入口點地址;
-C:指定壓縮方式;
-n:指定鏡像名;
-d:指定制作鏡像的源文件。
P2010的BSP源碼中,使用命令
$(TOOLCHAIN_PREFIX)mkimage -A PowerPC -O linux -a 0x1000000 -e 0x1000000 -d $(OUTDIR)/bspp2010.bin -T kernel -C none -n "SylixOS" $(OUTDIR)/uImage
來制作鏡像文件uImage。
指定架構類型為PowerPC,操作系統類型為linux,內存加載地址為0x1000000,鏡像運行地址為0x1000000,無壓縮方式,鏡像類型為kernel,鏡像名為SylixOS,生成的文件名為uImage。
由于P2010使用了Linux的fdt,所以需要使用bootm命令加載kernel和fdt。
P2010使用命令tftp 0x2000000 uImage;bootm 0x2000000 - 0xefe80000引導內核。通過tftp加載mkimage命令制作的鏡像文件uImage到內存0x2000000地址處,然后通過bootm命令啟動系統。其中0x2000000為tftp下載到內存中的鏡像的地址,-表示不讀取ramdisk,0xefe80000為fdt所在的內存地址。
bootm命令解析鏡像文件格式,按Linux方式啟動系統,獲取到fdt內存地址。隨后將其獲取的fdt地址傳入SylixOS。
文件startup.s中,在SylixOS進入halPrimaryCpuMain函數之前,通過從FDT_REGISTER寄存器暫存dts內存地址,如圖 4.1所示。
圖 4.1 暫存FDT
然后將暫存的dts內存地址傳入啟動函數,即halPrimaryCpuMain函數中,如圖 4.2所示,由此完成了uboot到SylixOS的fdt參數傳遞。
圖 4.2 讀取FDT
halPrimaryCpuMain函數根據獲取到的fdt地址,獲取設備信息,完成設備相關初始化工作。
以上就是 如何進行PowerPC P2010 SylixOS啟動方式的分析,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。