Arria 10 SoCブート・ユーザーガイド

ID 683735
日付 10/30/2015
Public
ドキュメント目次

1.3.2.2. SD/MMCフラッシュ・デバイス

次の図は、ブートに向けたSD/MMCフラッシュ・イメージ・レイアウトの例です。マスタ・ブート・レコード(MBR)はメモリの最初の512バイトに位置しています。MBRには、パーティションについての情報(パーティションのアドレスとサイズ)が含まれます。第2ステージ・ブートローダ・イメージはパーティションA2に格納されます。パーティションA2は、ファイル・システムを持たないカスタムRawパーティションです。

図 16. SD/MMCフラッシュ・イメージ・レイアウト

SD/MMCコントローラは2つのブート・モードをサポートします。

  • MBR(パーティション)モード
    • ブート・イメージはカスタム・パーティション(0xA2)からリードされます
    • 最初のイメージはパーティションの最初であるオフセット0x0に配置されます
    • 開始アドレス = パーティション開始アドレス
  • Rawモード
    • MBRシグネチャーが検索されない場合、SD/MMCドライバはそれをRawモードであると仮定します
    • ブート・イメージ・データはユーザ・エリアのセクタから直接リードされ、SD/MMCの最初のセクタに配置されます
    • 最初のイメージはメモリ・カードの開始であるオフセット0x0に配置されます
    • 開始アドレス = 0x0

MBRにはパーティション・テーブルが含まれますが、これは512バイトのメモリ・サイズで常に最初のセクタ(LBA0)に配置されます。MBRは実行可能コード、4つのパーティション・エントリ、そしてMBRシグネチャーで構成されます。MBRはFDISKプログラムといった特別なツールによって作成可能です。

表 2.  MBRストラクチャ

オフセット

サイズ(バイト)

説明

0x000

446

コード・エリア

0x1BE

16

パーティション1へのパーティション・エントリ

0x1CE

16

パーティション2へのパーティション・エントリ

0x1DE

16

パーティション3へのパーティション・エントリ

0x1EE

16

パーティション4へのパーティション・エントリ

0x1FE

2

MBRシグネチャー:0xAA55

標準的なMBRには、16バイトのエントリを4個備えたパーティションが1個含まれます。このため、この標準的なテーブルを使用するメモリカードは4個を超えるプライマリ・パーティションあるいは3個のパーティションと1個の拡張パーティションを含めることはできません。

各パーティション・タイプはパーティション・エントリによって定義されます。ブート・イメージはカスタム・パーティション・タイプ(0xA2)を持つプライマリ・パーティション内に格納されます。SD/MMCフラッシュ・ドライバはファイル・システムをサポートしていないため、ブート・イメージは固定位置のパーティションA2に配置されます。

表 3.  パーティション・エントリ

オフセット

サイズ(バイト)

説明

0x0

1

ブート・インディケータ。0x80はブート可能であることを表します。

0x1

3

CHS値の開始

0x4

1

パーティション・タイプ

0x5

3

CHS値の終了

0x8

4

パーティション内の最初のセクションのLBA

0xB

4

パーティション内のセクタ数

ブートROMコードは、サポートされるSD/MMCフラッシュ・メモリに向けてSD/MMCコントローラをデフォルト設定にコンフィギュレーションします。