UBOOT-2012-10在OK6410平臺的移植(十二)移植結束

UBOOT-2012-10在OK6410平臺的移植基本就這樣結束了,接下來的階段裏有時間會嘗試LINUX的移植。

這當然要這個uboot能夠啓動內核,呵呵,初步試一下編譯好linux 3.6.7後用uboot目錄下的那個mkimage工具生成uImage,結果可以啓動,不過linux運行過程中好像出現了NAND的oOBsize的錯誤,應該是linux3.6.7裏面的那個NAND啓動還沒有改造成。不管怎麼說,Uboot已經能夠引導內核了。。。。。。

這個uboot 2012-10移植的最後是修改成自動識別NAND或SD卡啓動。其實也比較簡單,採用了tekkamanninja這位網友的方法,如下:

Start.s文件在movi_boot和nand_boot這個地方改成對啓動引腳的判斷:

#ifdef CONFIG_NAND_SPL
#define MEM_CFG_STAT 0x7e00f12c
ldr r1, =MEM_CFG_STAT /* address of reg MEM_CFG_STAT*/
ldr r0, [r1]
mov r1, #0x60
and r1, r0, r1 /*r1 = MEM_CFG_STAT & CFG_BOOT_LOC */

cmp r1, #0x60 /*Internal ROM*/
beq boot_from_irom
cmp r1, #0x00 /*Stepping Stone area in NFCON*/
beq boot_from_nand
b reset
boot_from_irom:
ldr sp, _TEXT_PHY_BASE
bl movi_bl2_copy
b after_copy
after_copy:
ldr pc,_TEXT_PHY_BASE
boot_from_nand:
ldr sp, =(CONFIG_SYS_INIT_SP_ADDR)
bic sp, sp, #7 /* 8-byte alignment for ABI compliance */
ldr r0,_nand_boot
mov pc, r0
_nand_boot: .word nand_boot
#else

..........

#endif

這樣現在編譯好後目錄下有3個u-boot:其中u-boot.bin是在SDRAM運行的;u-boot-nand是燒到NAND後從NAND啓動的,u-boot-mmc.bin是燒到SD卡後從SD卡啓動的。

原來打算把整個代碼傳上來,可惜附件最大隻能傳2M,傳不了,把它放在CSDN上了。不過每篇移植裏都有提供關鍵幾個文件的下載,照上面移植應該可以了。

u-boot-2012.10 for ok6410.tar.gz

<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
閱讀(4) | 評論(0) | 轉發(0) |
給主人留下些什麼吧!~~
評論熱議
發佈了28 篇原創文章 · 獲贊 4 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章