AndroidTwitterで良いページがあることを教えてもらったので、軽く翻訳してみました。ProjectOMAPブートローダ概要いくつかの段階のブートローダがあります、そしてそれぞれのブートローダはOMAPプラットフォーム上で異なるレベルの初期化を実行します。それは最終的にファイルシステムをロードして実行するためです。この図はROMコード、x-loader、u-bootそしてカーネルのブートシーケンスを示しています。それぞれの段階は次の段階でロードと実行が出来るように十分な設定を実行を行います。Projectは特にx-loaderとu-bootをカバーしています。コードの概要とどのようにコードを取得してビルドするかに関してです。2つのブートローダがあるのでしょうか?最初のブートローダ、x-loaderはOMAPの小さなチップ上のSRAMで実行するように設計されたu-bootのストリップダウンバージョンです。x-loaderはシステムのオフチップメモリと他の必要なデバイスを初期化します、そしてそれからLinuxのためのより大きなブートローダすなわち-u-bootをロードします。TRMの初期化の章において利用可能です。複数のOMAPプラットフォーム用TRMS(OMAP4430、OMAP4460、OMAP34xxなど)はここで入手できます。Pins内蔵ROMコードはいくつかの異なる周辺機器とメモリデバイスからブートを試みることが出来ます。NANDそしてUSBなど、しかしこれらに限定されません。有効な第一段階のブートイメージ(x-loader)の取得のためにこれらのデバイスを検索する順はSYSBOOTと呼ばれるGPIO設定ピンのセットによって決定されます。TRMはSYSBOOTピンのそれぞれの組み合わせが参照するブートデバイス一覧の表を含んでいます。SYSBOOT値は物理アドレスの0x480022f0からJTAGを使用するかあるいは、もしLinuxが動作していれば、devmem2を使うことで読み取ることが出来ます。0x2FOMAP34xxx用には、ブート順を表示するためのツールもあります。3)NANDフラッシュといったブートデバイスの一覧から成るとします。この場合はROMコードは最初に有効なx-loaderとしてシリアルポート経由で、それからSDカードの中、そしてNANDフラッシュの中を探します。有効なx-loaderを見つけるたびにそのバイナリの実行に進みます。シリアルブートシリアルブートにおいて、単純なIDはシリアルポートの外部に書かれています。ホストが短時間の間に正しく応答した場合、ROMはシリアルポートから読み込んでデータを内部SRAMに転送するでしょう。エラーが検出されなかったら制御はSDRAMの先頭に渡されます。UART3はROMがロードを試みる唯一のUARTです。SDカードブートもしMMCがブートデバイス一覧に含まれていたら、ROMは最初のMMCコントローラー上のSDカードを探します。カードが見つかったら、ROMはそれからパーティションテーブル内の最初のFAT32パーティションを探します。パーティションが見つかると、ルートディレクトリは”MLO”と呼ばれる特別な署名されたファイルを見つけるためにスキャンされます。(MLOはファイルをロードするためのメモリの場所とファイルのサイズを含むヘッダとx-loaderのバイナリです。)全てがファイル内に正しく存在すると仮定し、MLOは内部SRAMに転送され制御をMLOに渡します。MMC1とMMC2の両方がブートに使用することが出来ます。eMMCブートもしNANDがブートでバイス一覧に含まれていたら、ROMはNANDの最初のセクターをロードしようとします。セクタが不良、破損、あるいは空白の場合、ROMは終了する前に次のセクタ(最大4)を試すでしょう。正常なセクタが見つかったら、ROMは内容をSRAMに転送し、制御をそれに移します(もしeMMCがNANDの代わりにブートデバイスの一覧に含まれていれば同じステップをeMMCに対して実行します)第二段階のブートx-laoderの役目はu-bootと呼ばれる第二段階のローダをメインメモリに転送することです。通常はx-loaderとu-bootの両方が同じ記憶媒体から読み込まれます。一般的にもしx-loaderがUSB経由で転送された場合、u-bootもUSB経由で転送されるでしょう。x-loaderがSDカード経由で転送されたなら、u-bootもまたSDカード経由で転送されるでしょう。これは必須ではありません。あなたはシリアルx-loaderをNANDに書き込むことが出来ます。ROMはx-loaderをNANDからロードして制御をx-loaderに移動します、x-loaderはシリアルポートからダウンロードされるu-bootを待ちます。シリアルブートシリアルポートを介してu-bootと両方をロードする場合は、x-loaderはメインメモリに大きなファイルを確実に転送するためにホストがkermitのコネクションを開始するのを待ちます。フィアル転送が正常に完了すると制御が渡されます。SDカードブートu-bootがSDカード経由でロードされる場合、SDカードのx-loaderは最初のMMCコントローラ上のFAT32パーティソンを探して”u-boot.bin”という名前のファイルを探すためにトップレベルのディレクトリをスキャンする。それからu-boot.binはメインメモリに転送されて、制御をu-boot.binに移す。eMMCブートu-bootがNANDに格納されている場合、x-loaderはu-bootが5番目のセクタ(オフセット0x00800000)の位置に配置されていることを期待します。u-bootはNANDからメインメモリに転送されて、制御をu-bootに移動します。u-bootがeMMCに格納されている場合、x-loaderはu-bootがオフセット0x200の位置に配置されていることを期待します。x-loader概要x-loaderは小さな第一段階のブートローダでu-bootベースのコードから派生しました。ROMコードによりスタティックROM内にロードされます。内部スタティックROMのサイズが小さいため、x-loaderは必要不可欠なもの意外は除去されています。x-loaderはピンの多重化、クロック、DDRそしてシリアルコンソールを設定します。そのため、第二段階のブートローダ(u-boot)にアクセス、DDRにロード出来ます。この図はstart.Sから始まるx-loader内のコードの流れを示しています。u-bootの概要u-bootは第二段階のブートローダでx-loaderによりDDRにロードされます。U-Bootから来ています。u-bootはCPU依存、そしてボード依存の初期化と設定を実行することが出来ます、x-loaderの中では実行しません。u-bootはまたeMMCに対するパーディショニングとフラッシュをするfastboot機能を含んでいます。0)上で動作し、マスターCPUは初期化とブートに対して責任があります。1)はイベント待ち状態で保持されます。この図はstart.Sから始まるu-bootのコードの流れを示しています。ブートローダのビルド以下の手順はx-loaderとu-bootをビルドするためのものです。PandaあるいはZoom)に対応したomappediaのリリースノートページを使用してそのリリースの指示に従うことをお勧めします。http://www.omappedia.com/wiki/Release_Notes一般的に命令は以下の例外を除いて非常に類似したものになります。●u-bootとx-loaderのgitツリーからコードを取り出すために使用されるコミットIDはリリースに基づいて異なります。これはどう検証が実行されるかなのであなたのリリースに対応した正しいコミットIDを使用することをお勧めします。●設定のコンフィグレーション時に使用される設定ファイル、それはあなたが使用するさまざまなプラットフォームに基づいてu-bootとx-laoderをビルドする時に使用します。以下のテーブルを参照して下さい。ブートローダをビルドするための前提条件パッケージがインストールされていることを確認、すなわちgitとCodreSourceryのARMコンパイラです。これらの命令はあなたが使用するリリースに対応するomappediaのリリースノートを含んでいます。ここで情報を見つけるこごが出来ます。●Gitはgit-scm.comからダウンロード出来ます。pageを参照して下さい●CodeSourceryのARMコンパイラについては、Support_Tools/Cross_Compilersをご覧下さいu-bootu-bootのソースファイルをダウンロードu-bootツリーのクローンを作成して、このリリースに対応するソースコードをチェックアウトします。Blazeomap4430sdp_config3430SDPomap3430sdp_config3630SDPomap3630sdp_config3430LDPomap3430labrador_configZoom2omap3430zoom2_configZoom3omap3630zoom3_config2430sdpomap2430sdp_config2420h4omap2420h4_configその結果u-boot.binはあなたのディレクトリのトップレベルに配置されます。x-loaderx-loaderへのアクセスx-loaderツリーのクローンを作成して、このリリースに対応するソースコードをチェックアウトします。<>x-loaderのビルドあなたのプラットフォームに対応した正しい設定ファイルを使用してx-loaderのソースコードをmakeします。1GBomap3630sdp_1G_config3430LDPomap3430labrador_configZoom2omap3430zoom2_configZoom3omap3630zoom3_config2430sdpomap2430sdp_config2420h4omap2420h4_configOMPA3用のシリアル接続経由ブートx-loaderをビルドするにはomap3430labradordownload_configを使用します。その結果MLOがあなたのディレクトリのトップレベルに配置されます。Sequity)OMPAでバイスを使用しているなら、拡張ステップが必要です。最初にx-loaderを上記の手順でビルドします。それから以下のコマンドでMShiled署名ツールをダウンロードします。このツールへのアクセスを取得するには、TIの担当者へお問い合わせ下さい。x-load.binその結果MLOがあなたのmshiled-dkディレクトリに配置されます。Bootを参照して下さい。PandaBoard用のUSBダウンローダは[1]を参照して下さい。U-bootU-Bootのupstreamingは、個別のプロジェクトとして実施されています。詳細については、次のリンクを参照してください。第19回PF部資料の場所ブログ気持玉クリックして気持ちを伝えよう!ログインしてクリックすれば、自分のブログへのリンクが付きます。写経を続けて、Entityの追加のとこまで来ました。開発してるとDBの内容はどんどん変わっていきますね。×この広告は1年以上新しい記事の投稿がないブログに表示されております。