[[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]]