2009年2月12日 星期四

「引」U-Boot:Porting a new Board(如何在 U-Boot 裡新增自己的 board)

http://blog.jollen.org/mt-tb.cgi/342

jollen 發表於 January 29, 2007 4:14 PM

U-Boot 在 board/ 目錄下存放個別板子的支援程式碼(board support codes、board support package),並且是一張板子一個目錄。有時,基於一些理由,我們會想到新增一個新的 board 目錄來存放我們的 BSP。例如,以 Jollen-Kit!(JK2410)為例,JK2410 是基於 SMDK2410 所發展,若將 U-Boot 設定為 'smdk2410_config',也能支援我們的 JK2410。但是,我們會想要另外增加一個 /board/jk2410/ 目錄,來擺放 JK2410 的程式碼,即便 /board/smdk2410//board/jk2410/ 裡的程式碼是 100% 相同的。

有這樣需要的幾個具體理由是:

  • 練習 U-Boot 移植。

  • 避免修改到原始的 BSP 程式碼。

  • 門面問題,讓 U-Boot 也能有專屬於我們板子的支援,而不是基於其他的板子。

  • 將來會正式釋出 patch。

以下是「Porting a New Board」的具體做法:

1. 產生 JK2410 的 BSP 專屬目錄。

# cd

# cd board

# cp -pa smdk2410/ jk2410/ <-- 建立一個複本於 /board/jk2410

jk2410/ 目錄下的程式碼與 smdk2410/ 完全相同。

2. 建立專屬的 config 檔。

# cd

# cd include/configs/

# cp smdk2410.h jk2410.h <--建立一個複本,以方便對自已的板子進行修改

基於 smdk2410.h 來產生我們專屬的 jk2410.h 設定檔。

3. 修改 Makefile,基於 SMDK2410 來加入 JK2410 的 rule,紅色部份是新加入的設定:

smdk2410_config :       unconfig
@./mkconfig $(@:_config=) arm arm920t smdk2410 NULL s3c24x0

jk2410_config : unconfig
@./mkconfig $(@:_config=) arm arm920t jk2410 NULL s3c24x0

紅色粗體字部份是板子的目錄名稱,即 /board/

專屬於 JK2410 的設定選項

完成後,我們就能以專屬的設定,將 U-Boot 設定為 JK2410 的支援:

# cd

# make jk2410_config
Configuring for jk2410 board...

Let's start and happy porting !!

--jollen

引用通告

如果您想引用這篇文章到您的Blog,
請複製下面的鏈接,並放置到您發表文章的相應界面中。

http://blog.jollen.org/mt-tb.cgi/342


簡單而言

1. Create a copy that relate in folder /board
2. Create config file
3. Modify Makefile

沒有留言:

張貼留言