フラッシュへの書き込み
BishopのNORフラッシュメモリやNANDフラッシュメモリへ書き込む手順です。
- 1. NOR
- 1.1. U-BootによるNORの書き込み
- 1.2. LinuxによるNORの書き込み
- 1.3. JTAG-ICE (デバッガ) によるNORの書き込み
- 1.4. ダウンロードケーブルによるNORの書き込み
- 1.4.1. 必要なもの
- 1.4.2. ライタープログラムのコンパイル
- 1.4.3. 接続
- 1.4.4. ライタープログラムの実行
- 1.4.5. 参考
- 2. NAND
- 2.1. U-BootによるNANDの書き込み
- 2.2. LinuxによるNANDの書き込み
1. NOR
1.1. U-BootによるNORの書き込み
U-BootによるNORへの書き込みをLinuxカーネルを例に説明します。
まず、TFTPでU-Boot形式のLinuxカーネルイメージを転送します。
Bishop # tftpboot 30900000 uImage
dm9000 i/o: 0x20000300, id: 0x90000a46
MAC: 00:1d:2d:00:00:0b
could not establish link
TFTP from server <TFTP サーバの IP>; our IP address is <IP アドレス>
Filename 'uImage'.
Load address: 0x30900000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#########################
done
Bytes transferred = 1787100 (1b44dc hex) ←転送されたサイズ次に、NORを消去します。ここではLinuxカーネルの領域であるセクタ11から56を消去します。
Bishop # erase 1:11-56
最後に、転送したイメージを書き込みます。この時、最後の引数には TFTPで転送したサイズを指定します。
Bishop # cp.b 30900000 40000 1b44dc
TFTPによるファイル転送の詳細については U-Bootリファレンスマニュアル を参照してください。
30900000〜 はダウンロード用に割り当てられた SDRAM上の領域です。詳細は アドレスマップ を参照してください。
U-BootによってU-Boot自体を書き換える事も可能ですが、書き込みに失敗した場合は起動できなくなります。 お客様がU-Bootを上書きした事による起動の不具合についてはサポート対象外とさせていただきます。
1.2. LinuxによるNORの書き込み
Bishopで動作するLinuxからNORへの書き込む手順をinitrdを例に説明します。
Linuxによる書き込みではMTD [1] ドライバが必要になります。まずはMTDドライバの有無を確認してください。
# cat /proc/mtd dev: size erasesize name mtd0: 00400000 00010000 "Bishop NOR flash" mtd1: 00040000 00010000 "U-Boot" mtd2: 002f0000 00010000 "Kernel" mtd3: 000c0000 00010000 "initrd" mtd4: 00010000 00010000 "U-Boot environment variables" mtd5: 08000000 00020000 "Root filesystem"
Bishopの標準カーネルではmtd0がNOR、mtd5がNANDになっています。mtd1からmtd4はNORの疑似パーティションです。今回はinitrdを書き込むため、mtd3が対象になります。initrd以外を書き込む場合は、適時読み替えてください。
書き込む領域を消去します。
# flash_eraseall /dev/mtd3
U-Boot形式のinitrdイメージ (initrd.uimg) をmtd3に書き込みます。
# dd if=initrd.uimg of=/dev/mtd3
mtd のパーティションについては アドレスマップも参照してください。
Bishop標準カーネルではmtd1 (U-Boot) とmtd5 (U-Boot環境変数の保存領域) はリードオンリーになっています。
mtd0を消去するとU-Bootを含むNOR全体が消去され起動できなくなります。mtd0を消去しないようにご注意ください。
1.3. JTAG-ICE (デバッガ) によるNORの書き込み
ビットラン株式会社 様の DR-01 の場合を例に説明します。
- 「ファイル」→「ファイルの読み込み」
- 「追加」ボタンをクリック
- フラッシュの一覧からMacronix MX29LV320AB 32MBit (4Mx8bit/2Mx16bit) を選択
- フラッシュの設定して「OK」をクリック (アクセスサイズ: 16bit アクセス, 個数: 1, スタートアドレス: 0, ターゲットバス幅: 16bit)
- Load Formatを選択 (Bishopの場合、通常はバイナリを選択)
- ファイルイメージを選択して「開く」をクリック
- 「バイナリファイルの書き込み開始アドレス」ダイアログでアドレスに0を指定して「OK」をクリック
1.4. ダウンロードケーブルによるNORの書き込み
1.4.1. 必要なもの
ダウンロードケーブルによる NORの書き込みには以下のものが必要になります。
- ダウンロードケーブル XC3
- Linuxがインストールされたパラレルポート付きPC
- ライタープログラム
1.4.2. ライタープログラムのコンパイル
ライタープログラムのコンパイル手順です。
ソースコード pljflash-0.9.2.tar.gz をダウンロードして、適当な場所に展開します。
$ tar xzvf pljflash-0.9.2.tar.gz
展開したソースコードのディレクトリに移動します。
$ cd pljflash-0.9.2
make します。
$ make
正常にコンパイルされれば、実行ファイルpljが出来ます。
1.4.3. 接続
ダウンロードケーブルでPCとBishopを接続します。PC側はパラレルポートに、Bishop側はJTAGのコネクタに接続します。JTAGのコネクタはダウンロードケーブル付属のバラ線を使います。


1.4.4. ライタープログラムの実行
U-Bootを書き込む場合を例に説明します。
書き込むイメージファイルを引数にpljをroot権限で実行します。
# plj u-boot.bin
1.4.5. 参考
弊社ブログ記事 - CPUボードBishop (6) 『フラッシュメモリの書き込み』
2. NAND
2.1. U-BootによるNANDの書き込み
U-BootによるNANDの書き込みはサポート対象外とさせていただきます。
2.2. LinuxによるNANDの書き込み
jffs2ファイルシステム (rootfs.jffs2) の書き込みを例に説明します。
Linuxによる書き込みではMTDドライバが必要になります。あらかじめMTDドライバの有無を確認してください。
まず、NANDを消去します。Bishopの標準カーネルではNANDのMTDデバイスはmtd5になります。
$ flash_eraseall /dev/mtd5
nandwrite[2] コマンドで書き込みます。
$ nandwrite /dev/mtd5 rootfs.jffs2
- ^ MTD (Memory Technology Devices): メモリデバイスを扱うためのサブシステムです。MTDに関する情報は http://www.linux-mtd.infradead.org/ で得ることができます。
- ^ mtd-toolsに含まれるNANDに書き込むコマンドです。
著作権と免責
Copyright © 2012 Pylone, Inc.
この文書の著作権は株式会社パイロンが保有します。
この文書は「現状のまま(as is)」で提供され、明示的であるかどうかを問わず、内容についてなんら保証するものではありません。
この文書には、技術的な誤り、誤植、不適格な表現や未完成部分等を含む可能性があります。従って、この文書は予告無しに追加、変更、削除される可能性があります。
この文書は「クリエイティブ・コモンズ-表示-2.1-日本 以降」(CC-by-2.1 or later) の下で配布されています。