jtagポートからFlash ROMを書き換える方法
openwince/jtagを使ってFlash ROMを書き換えてみた。
まず,玄箱の空きランドのJTAGポートにピンを立てて,PCと接続する。とりあえずザイリンクスのDLC5を使って,接続してみた。特に玄箱側にプルアップ抵抗は必要ないみたい。
PCでLPT1(0x0378)を使えるようにする。ModeはSPPでOK。
cygwin環境でjtag関連のツールをコンパイルする。
$mkdir jtagdir $cd jtagdir $tar xzvf jtagdir.tgz
で解凍する。
cd include $./autogen.sh $make install
これがエラーが出る場合はcygwin用の足りないライブラリを入れる。
$cd .. $cd jtag $./autogen.sh $make $make install
でコンパイル,インストールをする。
bootcode.binとfirmimg.binを,<ディレクトリ>\jtagdir\jtagにコピーする。
$ioperm -i
でパラレルポートを使えるようにするためのサービスを起動する。 ちなみに,
$ioperm -u
でサービス停止する。
jtagを起動
$jtag
でjtagツールを起動する。
jtag> cable parallel 0x378 DLC5
で,ザイリンクスのケーブルを使うようにする。
Initializing Xilinx DLC5 JTAG Parallel Cable III on parallel port at 0x378 jtag> detect IR length: 8 Chain length: 1 Device Id: 0 chain.c(110) Part 0 without active instruction chain.c(133) Part 0 without active instruction chain.c(110) Part 0 without active instruction
こんなメッセージが出ればOK。
jtag> include data/motorola/mpc8241/1.2 jtag> endian big jtag> instruction SAMPLE/PRELOAD jtag> shift ir jtag> shift dr jtag> instruction EXTEST jtag> shift ir jtag> initbus mpc824x jtag> detectflash 0xFFC00000 jtag> flashmem 0xFFF00000 bootcode.bin
でbootcodeを書き換える。30分くらいかかる。
jtag> flashmem 0xFFC00000 firmimg.bin
でfirmimgを書き換える。これは,24時間ぐらいかかる。
これでFlashを復旧できる。
新しくコメントをつける