1. 程式人生 > >s3c6410開發板研究筆記(一)從SD卡啟動UBOOT(未完待續。。。)

s3c6410開發板研究筆記(一)從SD卡啟動UBOOT(未完待續。。。)

  • 背景 

6410支援從SD卡啟動,是否可以在SD卡上燒寫一個UBOOT,開發板的跳線設定為SD卡啟動後,將UBOOT執行起來?

在UBOOT中可以操作網口(例如 tftp kernel 根檔案系統)、操作NANDFLASH,NORFALSH,方便的進行升級? 

  • 資料收集部分 

參考 djyos 這哥們的一些文章 (都江堰OS,這哥們還是很強大、很給力的,贊一個,現在不知道為啥官網打不開了)

資料地址: 

主版塊網址

資料彙總網址

6410相關資料地址

網上隨便搜尋“使uboot支援S3C6410的SD啟動”

可以找到相關文章,具體哪裡是原文出處,已無法考究,現給出一個可閱讀的地址

從這兩方面的文章,我們接著詳細分析

  • 確定6410的啟動模式,選擇SD卡啟動

開啟6410DATASHEET(我這裡為s3c6410_rev12.pdf) 

57頁   目錄 3-1 Device operating mode selection at boot-up ........................................ 3-4 

125頁 3.3.3 CLOCK SOURCE SELECTION,有表如下 

 

從上圖我們可以看到 SD卡的啟動,屬於IROM啟動

GPN[15:13] 設定為 000 則從 SD/MMC(CH0) 啟動

GPN[15:13] 設定為 000 則從 SD/MMC(CH1) 啟動

  •  IROM啟動過程

這部分在6410的文件中沒有介紹,參考DJYOS資料中的說明,找到相關資料如下

896554S3C2450_IROM_ApplicationNote_Rev003.pdf 

下載地址:(迅雷好像下不成,用目標另存為好了)

 

BL1 : Its size should be under 8K because BL1 is located in Stepping Stone(8K)
BL2 : There is no limit in its size, so it can locate any place in SDRAM area

① IROM can do initial boot up : initialize system clock, device specific controller and booting device.

IROM啟動會先去執行BL0部分的32K的程式碼


② IROM boot codes can load 8KB of bootloader to stepping stone. The 8KB boot loader is called BL1.

將BL1部分(存在SDK上的)8K的內容,載入到 stepping stone 區域(這8K在後面將是UBOOT最開始的8K)


③ BL1 will do : BL1 can initialize system clock, UART, and SDRAM for user. Thereafter, BL1 will loadremained boot loader which is called BL2 on the SDRAM(這部分將是完整的UBOOT.BIN) 

BL2部分的內容將被載入到記憶體


④ Finally, jump to start address of BL2. That will make good environment to use system.  

  • BL1、BL2在SDK上的儲存方式

SD卡有兩種:

SD/MMC Device 一般小於2G的卡是這種

SDHC Device 一般大於2G的卡是這種

分別對應的儲存規則如下

步驟一、找到可以從SD卡啟動的UBOOT

UBOOT的官方程式碼中有對6400的支援(跟6410差不多,只是少了3D的支援)

但程式碼中,啟動模式中沒有SD卡啟動模式(SD卡啟動模式在S3C-UBOOT中叫MOVINAND啟動)方式的支援

查閱資料,找到最原始的 S3C-UBOOT 版本為 1.1.6 (版本是老了點,夠用就行)

網上翻閱資料的時候,也能找到 Real(友堅恆天)的 S3C-UBOOT-1.1.6

友善之臂好像把這個支援SD卡啟動的UBOOT稱為SUPERUBOOT

都是支援SD卡啟動的UBOOT。

(我用的是飛凌的OK6410,不熟悉以上兩個開發板的情況如有說錯還請諒解)

(沒想到是在魅族手機論壇找到程式碼,汗。。。XXXX)

UBOOT

KERNEL