[[bc10]]

- 目次
#contents

* 概要 [#g44bfd82]
2010/09/06~

bc10向けx-loaderについて、情報をまとめてあります。~
x-loaderはbc10起動時に実行される第一段ブートローダです。~
bc10のブートプロセスやx-loaderの配置方法についての情報は[[bc10/booting]]を参照してください。~

* 開発環境 [#yd0d5ace]
2010/05/07~
* x-loaderのビルド [#tf443815]
2010/09/06~

** 開発環境 [#yd0d5ace]
bc10向けtoolchainを準備します。~
以下のtoolchainでビルドを確認しています。~

- CodeSourceryのarm GNU/Linux toolchain(arm-none-linux-gnueabi-)
- BeagleBoard向け開発環境として使われているOpenEmbedded Linuxのtoolchain(arm-angstrom-linux-gnueabi-)

ここではOpenEmbedded Linux向けtoolchainを使用した場合について説明します。~

* x-loaderのビルド [#tf443815]
2010/09/06~

** 環境変数の設定 [#ha92cdd3]
OpenEmbeddedのtoolchainを使用するため、環境変数の設定をおこないます。~
 export PATH=${WORK_DIR}/OE/angstrom-dev/cross/armv7a/bin:${PATH}
 export ARCH=arm
 export CROSS_COMPILE=arm-angstrom-linux-gnueabi-

** ソースコードの入手 [#s90b62b5]
OMAP3向けx-loaderのソースコードをgitリポジトリから取得します。~
 git clone git://gitorious.org/~bc-dev/x-load-omap3/x-load-bc10.git x-load-bc10

** ブランチの移動 [#q6ecbab1]
bc10用のブランチに移動します。~
 cd x-load-bc10/
 git checkout -t -b bc10 origin/bc10

** ビルド [#fd8f93ac]
ビルドをおこないます。~
 make distclean
 make omap3530bc10_config
 make
ビルドに成功するとx-load.binが生成されます。~

** バイナリイメージの調整 [#i3db28db]
x-load.binはOMAP BootROMの仕様とフォーマットが合っていないので、このままNAND FlashやSDカードに書きこんでもブートローダとして動作させることができません。~
この問題を解決するために、signGPというツールでx-load.binを加工する必要があります。~
signGPの詳細については[[補足記事>#l88d6ae1]]を参照してください。~
signGPの実行ファイルは以下の場所からダウンロードすることができます。~

- http://beagleboard.googlecode.com/files/signGP

signGPは以下のように使用します。~
 ./signGP x-load.bin
成功するとx-load.bin.iftが生成されます。~
BootROMの仕様により、x-load.bin.iftをSDカードにコピーするときは、SDカードのルートディレクトリに''MLO''という名前で保存する必要があります。~
NAND FlashやSDカードへの配置には決まりがあるので、[[bc10/booting]]で詳しく説明します。~

* ソースコードリポジトリについて [#ab4a37a1]
2010/12/17~

x-load-bc10のソースコードはGitoriousで管理しています。~

- プロジェクトページ
-- http://gitorious.org/~bc-dev/x-load-omap3/x-load-bc10
- リポジトリ
-- git://gitorious.org/~bc-dev/x-load-omap3/x-load-bc10.git

** ブランチ [#n8db348f]
x-load-bc10リポジトリには、以下の3つのブランチがあります。~

- master
-- 派生元masterブランチのクローン
- bc10
-- bc10向けリリースブランチ
- bc10-develop
-- bc10向け開発ブランチ

bc10で動作するx-load.binをビルドするには、bc10ブランチを使用してください。~

** 派生元 [#x9068f5b]
x-load-bc10のソースコードは、x-load-omap3プロジェクトのリポジトリからcloneし、bc10向けに改造したものです。~

- x-load-omap3プロジェクト
-- http://gitorious.org/x-load-omap3
- リポジトリ
-- git://gitorious.org/x-load-omap3/mainline.git
- ブランチ
-- master

* 補足 [#scbdeb9d]

** signGPについて [#l88d6ae1]
2010/07/05~

signGPはブートローダのイメージファイルに簡単なヘッダを加えるためのツールです。~
signGPのソースファイルは[[BeagleSourceCode:http://code.google.com/p/beagleboard/wiki/BeagleSourceCode]]からダウンロードすることができます。~
OMAP35xのBootROMは、NAND FlashやSDカードからブートローダのイメージファイルを読み込む場合に、その先頭にヘッダがあることを要求します。~
OMAP35xのBootROMコードは、NAND FlashやSDカードからブートローダのイメージファイルを読み込む場合に、その先頭にヘッダがあることを要求します。~
ヘッダの構成は以下のようになっている必要があります。~
 +------------------------------------------+
 | Length (4byte)                           |
 +------------------------------------------+
 | LoadAddr (4byte)                         |
 +------------------------------------------+
 | BootLoader image                         |
 | ...                                      |
 +------------------------------------------+
- Length
-- イメージファイルのサイズを指定します。
- LoadAddr
-- イメージのロード先アドレスを指定します。

signGPはブートローダのイメージファイルに、上記のヘッダを加えるためのツールです。~
signGPのソースファイルは[[BeagleSourceCode:http://code.google.com/p/beagleboard/wiki/BeagleSourceCode]]からダウンロードすることができます。~

* 参考 [#jac46aaa]
2010/07/05
- [[x-load-omap3 (gitorious.org):http://gitorious.org/x-load-omap3]]
- [[elinux BeagleBoard X-Loader (elinux.org):http://elinux.org/BeagleBoard#X-Loader]]
- [[BeagleSoftCompile (code.google.com):http://code.google.com/p/beagleboard/wiki/BeagleSoftCompile]]
- [[BeagleSourceCode (code.google.com):http://code.google.com/p/beagleboard/wiki/BeagleSourceCode]]

BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS