インテルのみ表示可能 — GUID: sfo1410070168767
Ixiasoft
1.3.2.2. SD/MMCフラッシュ・デバイス
次の図は、ブートに向けたSD/MMCフラッシュ・イメージ・レイアウトの例です。マスタ・ブート・レコード(MBR)はメモリの最初の512バイトに位置しています。MBRには、パーティションについての情報(パーティションのアドレスとサイズ)が含まれます。第2ステージ・ブートローダ・イメージはパーティションA2に格納されます。パーティションA2は、ファイル・システムを持たないカスタムRawパーティションです。
SD/MMCコントローラは2つのブート・モードをサポートします。
- MBR(パーティション)モード
- ブート・イメージはカスタム・パーティション(0xA2)からリードされます
- 最初のイメージはパーティションの最初であるオフセット0x0に配置されます
- 開始アドレス = パーティション開始アドレス
- Rawモード
- MBRシグネチャーが検索されない場合、SD/MMCドライバはそれをRawモードであると仮定します
- ブート・イメージ・データはユーザ・エリアのセクタから直接リードされ、SD/MMCの最初のセクタに配置されます
- 最初のイメージはメモリ・カードの開始であるオフセット0x0に配置されます
- 開始アドレス = 0x0
MBRにはパーティション・テーブルが含まれますが、これは512バイトのメモリ・サイズで常に最初のセクタ(LBA0)に配置されます。MBRは実行可能コード、4つのパーティション・エントリ、そしてMBRシグネチャーで構成されます。MBRはFDISKプログラムといった特別なツールによって作成可能です。
オフセット |
サイズ(バイト) |
説明 |
---|---|---|
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に配置されます。
オフセット |
サイズ(バイト) |
説明 |
---|---|---|
0x0 |
1 |
ブート・インディケータ。0x80はブート可能であることを表します。 |
0x1 |
3 |
CHS値の開始 |
0x4 |
1 |
パーティション・タイプ |
0x5 |
3 |
CHS値の終了 |
0x8 |
4 |
パーティション内の最初のセクションのLBA |
0xB |
4 |
パーティション内のセクタ数 |
ブートROMコードは、サポートされるSD/MMCフラッシュ・メモリに向けてSD/MMCコントローラをデフォルト設定にコンフィギュレーションします。