第2章 変更による影響: フラッシュメモリのメモリマップ

ここでは、フラッシュメモリのメモリマップの変更に関して説明します。

電気的特性、外観仕様、寸法仕様、機能・性能に関する影響につましては「変更通知に関して」に記載されている変更通知文書を参照してください。

2.1. メモリマップ変更点(hermit-at-v3 + linux-3.14-at の場合)

従来品のフラッシュメモリのメモリマップを表2.1「従来品 フラッシュメモリ メモリマップ」に示します。

表2.1 従来品 フラッシュメモリ メモリマップ

物理アドレスパーティション名サイズ工場出荷状態で書き込まれているソフトウェア

0xA0000000

0xA001FFFF

bootloader128kByte

Hermit-Atブートローダーイメージ

0xA0020000

0xA041FFFF

kernel4MByte

Linuxカーネルイメージ

0xA0420000

0xA1EFFFFF

userland26.875Mbyte

Atmark Distユーザーランドイメージ

0xA1F00000

0xA1FFFFFF

config1MByte

アプリケーションの設定情報など


新フラッシュメモリ適用品では表2.2「新フラッシュメモリ適用品 フラッシュメモリ メモリマップ」に変更となります

表2.2 新フラッシュメモリ適用品 フラッシュメモリ メモリマップ

物理アドレスパーティション名サイズ工場出荷状態で書き込まれているソフトウェア

0xA0000000

0xA003FFFF

bootloader256kByte

Hermit-Atブートローダーイメージ

0xA0040000

0xA043FFFF

kernel4MByte

Linuxカーネルイメージ

0xA0440000

0xA1EFFFFF

userland26.75Mbyte

Atmark Distユーザーランドイメージ

0xA1F00000

0xA1FFFFFF

config1MByte

アプリケーションの設定情報など


bootloader領域は128kByteから256kByteに拡張にされ、その影響で、kernelとuserland領域の先頭アドレスが128kByteずつ後方にずれます。また、ユーザーランド領域が128kByte減少しています。

2.2. メモリマップ変更点(hermit-at + linux-2.6.26-at の場合)

従来品のフラッシュメモリのメモリマップを表2.3「従来品 フラッシュメモリ メモリマップ」に示します。

表2.3 従来品 フラッシュメモリ メモリマップ

物理アドレスパーティション名サイズ工場出荷状態で書き込まれているソフトウェア

0xA0000000

0xA001FFFF

bootloader128kByte

Hermit-Atブートローダーイメージ

0xA0020000

0xA021FFFF

kernel2MByte

Linuxカーネルイメージ

0xA0220000

0xA1FDFFFF

userland29.75Mbyte

Atmark Distユーザーランドイメージ

0xA1FE0000

0xA1FFFFFF

config128kByte

アプリケーションの設定情報など


新フラッシュメモリ適用品では表2.4「新フラッシュメモリ適用品 フラッシュメモリ メモリマップ」に変更となります

表2.4 新フラッシュメモリ適用品 フラッシュメモリ メモリマップ

物理アドレスパーティション名サイズ工場出荷状態で書き込まれているソフトウェア

0xA0000000

0xA003FFFF

bootloader256kByte

Hermit-Atブートローダーイメージ

0xA0040000

0xA023FFFF

kernel2MByte

Linuxカーネルイメージ

0xA0240000

0xA1FDFFFF

userland29.625Mbyte

Atmark Distユーザーランドイメージ

0xA1FD0000

0xA1FFFFFF

config128kByte

アプリケーションの設定情報など


bootloader領域は128kByteから256kByteに拡張にされ、その影響で、kernelとuserland領域の先頭アドレスが128kByteずつ後方にずれます。また、ユーザーランド領域が128kByte減少しています。

2.3. フラッシュメモリ メモリマップの変更が必要になった経緯

従来製品のフラッシュメモリはErase Blockの構成が、top 32kByteが4個、残りがbottom 128kByteとなっています。 32kByteのErase Blockを4つ、合計128kByteをbootloader領域として割り当て、4つ目のErase Blockを、ブートローダー:hermit-atのsetenvやsetbootdeviceコマンドのパラメータを保存する「パラメータ領域」として使用していました。

しかし、新フラッシュメモリでは、top 32kByteのErase Blockはなくなり、すべてが、128kByte Erase Blockの構成となっております。 このため、新フラッシュメモリ適用品では、128kByte Erase Blockを2つbootloader領域として割り当て、2つめの128kByte Erase Blockを「パラメータ領域」として使用するように変更しました。

なお、フラッシュメモリ全体のサイズは変更はありません。

Erase Blockサイズの違いによるbootloader領域の違い

図2.1 Erase Blockサイズの違いによるbootloader領域の違い