シリアル接続設定を追加2010/10/19bc10の起動時の動作について説明します。説明する範囲はbc10への電源投入から、OSの起動開始までになります。†2010/06/29bc10(omap3530)でLinuxを動作させる場合、電源の投入後、一般に以下のような順番で実行されます。†2010/06/29omap3530には、電源投入時の動作コードが書き込まれたブート用のROM(BootROM)が内蔵されています。ここではBootROMに書き込まれた動作コードをBootROMコードと呼ぶことにします。BootROMコードは工場出荷状態で既に書きこまれていて、外部から書き換えることはできません。BootROMコードの役割は、周辺デバイスからブートローダを読み込んで実行する、というただ一点にしぼられています。起動可能なブートローダをさがすために、ROMコードは以下のデバイスに直接アクセスすることが可能です。cardUSBSerialブートローダを探索するデバイスの順序は、omap3530のピン設定で変更可能になっています。起動時にBootROMがブートローダを探索するデバイスの順序について、bc10はBeagleBoardと同様の設定になっており、以下の2パターンを選択することができます。NAND探索先のデバイスでブートローダが見つからなかった場合は、スキップして次のデバイスを探索します。通常動作時は、NANDに書き込まれたブートローダを使用することが多いので、USERボタンは押さずに電源を投入します。新しいブートローダの動作を確認する場合などは、ブートローダを書き込んだSDカードを挿入した上で、USERボタンを押しながら電源を投入することになります。この仕様のおかげで、NANDに書き込まれたブートローダの動作がおかしい場合や、工場出荷状態でNANDに書き込みがされていない場合にも、SDカードからブートローダを読み込んで動作させることが可能になります。†2010/06/29X-Loaderは1段目のブートローダとして、2段目のブートローダであるU-Bootを探索して起動します。U-Bootイメージをさがすために、X-Loaderは以下の順序でデバイスにアクセスします。FlashX-Loaderをソースコードからビルドする方法はbc10/x-loaderを参照してください。†2010/06/29U-Bootは2段目のブートローダとして、OSの起動やハードウェアの初期化などをおこなう多機能ブートローダです。コマンドラインインターフェースを備えており、MMC/SDファイルシステムへのアクセスや、NANDへの読み書きもできるので、これが起動すればブート用のセットアップは大抵のことができるようになります。U-Bootをソースコードからビルドする方法はbc10/u-bootを参照してください。kernelのイメージファイルはuImageという名前になります。OpenEmbedded環境でもAndroid環境でも、どちらでも使用できるようになっています。†2010/12/24X-LoaderやU-Bootを起動できるSDカードを作ります。Flashに何も書き込まれていません。そのため、起動用のSDカードを用意することが、bc10を起動させるもっとも簡単な方法となります。bc10は設計上、SDカードスロット(J6)からの起動しかサポートしていません。マイクロSDカードスロット(J5)から起動することはできないので注意してください。U-Bootから起動するOSとしてLinuxを使用することを前提として、最終的にはSDカード内の構成を以下のようにします。kernelLinuxパーティションLinuxルートファイルシステム作業環境はLinuxを想定しています。作業手順は以下のようになります。以下の説明は主にLinuxBootDiskFormat(code.google.com)から引用してアレンジしたものです。コマンドライン上の説明で、角括弧でくくった箇所はユーザが入力するべきコマンドをあらわしています。†このあとパーティション操作やフォーマット作業をおこなうために、SDカードがマウントされている場合には、まずアンマウントをおこないます。以下のようにSDカードがマウントされているとします。/media/disk...アンマウントをおこないます。†fdiskコマンドを実行します。引数にはSDカードのデバイスファイルを指定します。この位置は作業環境によって変わりますので、事前に確認しておいてください。19)パーティションを全て削除します。1エキスパートモードにモード変更します。[x]ヘッダ数を255に設定します。[255]セクタ数を63に設定します。[63]シリンダ数の設定は使用するSDカードごとに異なります。以下の計算式でシリンダ数を計算します。)今回の例で使用しているSDカードでは以下のようになります。245シリンダ数を設定します。今回の例では245になります。[上式で求めた値]ノーマルモードにモード変更します。[r]FAT32パーティションを作成します。(LBA))ブートフラグを設定します。[1]Linuxのファイルシステム用パーティションを作成します。245パーティション設定を確認します。Linuxパーティションテーブルの変更を保存します。†FAT32パーティションとLinuxパーティションをそれぞれフォーマットします。LABEL1とLABEL2の文字列の部分はパーティションのラベルになりますので、お好きな名前で設定してください。†ブートローダのイメージファイルをSDカードに配置します。SDカードを挿しなおすなどして、再度マウントさせます。SDカードのマウントポイントはシステムの都合に合わせて読みかえてください。1段目のブートローダであるX-Loaderは、SDカード上の配置方法に制限があります。以下のように配置してください。FAT32パーティションのフォーマット後、最初に配置するようにします。パーティション内のトップディレクトリに配置します。ファイル名を「MLO」とします。/media/LABEL1/MLO]続いて、2段目のブートローダであるU-Bootを配置します。ファイル名を「u-boot.bin」とします。kernelを配置します。ファイル名を「uImage」とします。/media/LABEL1/uImage]配置する順序を間違えたり、手順に失敗したりした場合には、FAT32パーティションのフォーマットからやり直すのが確実です。配置が完了したら、SDカードをアンマウントして抜き出します。†2010/06/29ブートローダを配置したSDカードをbc10に挿入しておきます。BootROMコードがNANDよりも先にSDカードにアクセスするよう、USERボタンを押しながら電源を投入します。†bc10のシリアル接続の設定は以下のように設定してください。