Hack BBS

[全部のスレッド一覧][新規投稿][記事の削除・変更] [Home Page]

返信投稿はタイトルのリンクをクリックして下さい
スレッド【No.2510】の中の記事をすべて表示しています

【No.2510】のスレッド
05/05/20(金) 20:47:58 投稿者[わんこ ] [No.2510]のスレッド内
【No.2510】 タイトル[JTAGでのFLASHの修復について] この記事がスレッドの最初です
こんばんは、わんこです。
hnishiさんの記事をみて、私もFLASHの修復に挑戦していますが、jtagのコンパイルが通らずに困っています。

hnishiさんの手順の
3. jtagのautogen.shを実行(automake1.6が必要)
が、エラーとなってしまいます。


Debian woody i386
apt-get install libreadline4-dev
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/openwince login
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/openwince co -P jtag
automake1.6.3をGNUからGETしてinstall
autoconf2.54をGNUからGETしてinstall
./autogen.shを実行
Can't exec "autopoint": No such file or directory at /usr/local/share/autoconf/A
utom4te/FileUtils.pm line 288, <GEN0> line 101.
autoreconf: failed to run autopoint: No such file or directory

automake,autoconfのバージョン違いのせいでしょうか?
automakeは1.6.3 1.7 1.9.5の3種類で試しました。
autoconfは2.54 2.59で試しています。

アドバイスいただけますでしょうか?
よろしく、お願い致します。

05/05/21(土) 00:48:47 投稿者[hnishi] [No.2510]のスレッド内
【No.2511】 タイトル[Re: JTAGでのFLASHの修復について] 【No.2510】に対する返信
わんこさんこんばんは

さて,下記のエラーメッセージを見る限りautopointがないと
怒られていますね.
ちょっと調べた結果,autopointはgettextにふくまれています.
ただし,woodyではプログラムがなくsarge以上でないとだめみたいですね
私の環境はDebian sargeなので,特に混乱せずにコンパイルできたみたいです.

以上,がんばってください.

>こんばんは、わんこです。
>hnishiさんの記事をみて、私もFLASHの修復に挑戦していますが、jtagのコンパイルが通らずに困っています。
>
>hnishiさんの手順の
>3. jtagのautogen.shを実行(automake1.6が必要)
>が、エラーとなってしまいます。
>
>
>Debian woody i386
>apt-get install libreadline4-dev
>cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/openwince login
>cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/openwince co -P jtag
>automake1.6.3をGNUからGETしてinstall
>autoconf2.54をGNUからGETしてinstall
>./autogen.shを実行
>Can't exec "autopoint": No such file or directory at /usr/local/share/autoconf/A
>utom4te/FileUtils.pm line 288, <GEN0> line 101.
>autoreconf: failed to run autopoint: No such file or directory
>
>automake,autoconfのバージョン違いのせいでしょうか?
>automakeは1.6.3 1.7 1.9.5の3種類で試しました。
>autoconfは2.54 2.59で試しています。
>
>アドバイスいただけますでしょうか?
>よろしく、お願い致します。

05/05/22(日) 01:08:12 投稿者[わんこ ] [No.2510]のスレッド内
【No.2521】 タイトル[Re: JTAGでのFLASHの修復について] 【No.2511】に対する返信
hnishiさん、アドバイスありがとうございます。
早速、linuxを思い切ってsargeに変更して、コンパイルに成功しました。
最後に、suじゃないとパラレルポートアクセスできないことに気がつかず、ちょっとはまりましたが、実行できました。

実行できたところで、まずflashのバックアップを取ろうとおもって、readmemコマンドを実行しましたが、取得できるデータがゴミまたは、0連続となってしまいます。
FLASHの情報はとれている雰囲気なので、自作ハードの問題ではなさそうなのですが、いかがでしょうか? (FLASHチップはST M29W3200Tでした)

下記、実行結果です。

hiroyuki@nekochan:~/jtag$ sudo jtag
JTAG Tools 0.6
Copyright (C) 2002, 2003 ETC s.r.o.
JTAG Tools is free software, covered by the GNU General Public License, and you
are
welcome to change it and/or distribute copies of it under certain conditions.
There is absolutely no warranty for JTAG Tools.

Warning: JTAG Tools may damage your hardware! Type "quit" to exit!

Type "help" for help.

jtag> cable parallel 0x378 DLC5
Initializing Xilinx DLC5 JTAG Parallel Cable III on parallel port at 0x378
port=378
retrun code=0 : 0
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
jtag> include motorola/mpc8241/1.2
jtag> endian big
jtag> instruction SAMPLE/PRELOAD
jtag> shift ir
jtag> shift dr
jtag> dr
01010111000011101101111111110000000000000000000000000000000000000000000000000000
00000000000000000000000111111010111100000000000000000000000000000000000000000000
00000000000000000000000000000011111010010000000110001101111011111110000001100000
00000000000000010000000000000001100001011011111111111101111110111101011111101000
01011000000010010111111100000011111101111110000010101101100010001011111111010000
00000000000000000000000000000000000000000100011111010011111011001110011001111101
111111100000000000000000000
jtag> instruction EXTEST
jtag> shift ir
jtag> initbus mpc824x
jtag> detectflash 0xFFC00000
Query identification string:
Primary Algorithm Command Set and Control Interface ID Code: 0x0002 (AMD
/Fujitsu Standard Command Set)
Alternate Algorithm Command Set and Control Interface ID Code: 0x0000 (n
ull)
Query system interface information:
Vcc Logic Supply Minimum Write/Erase or Write voltage: 2700 mV
Vcc Logic Supply Maximum Write/Erase or Write voltage: 3600 mV
Vpp [Programming] Supply Minimum Write/Erase voltage: 11500 mV
Vpp [Programming] Supply Maximum Write/Erase voltage: 12500 mV
Typical timeout per single byte/word program: 16 us
Typical timeout for maximum-size multi-byte program: 0 us
Typical timeout per individual block erase: 1024 ms
Typical timeout for full chip erase: 0 ms
Maximum timeout for byte/word program: 512 us
Maximum timeout for multi-byte program: 0 us
Maximum timeout per individual block erase: 16384 ms
Maximum timeout for chip erase: 0 ms
Device geometry definition:
Device Size: 4194304 B (4096 KiB, 4 MiB)
Flash Device Interface Code description: 0x0002 (x8/x16)
Maximum number of bytes in multi-byte program: 1
Number of Erase Block Regions within device: 4
Erase Block Region Information:
Region 0:
Erase Block Size: 16384 B (16 KiB)
Number of Erase Blocks: 1
Region 1:
Erase Block Size: 8192 B (8 KiB)
Number of Erase Blocks: 2
Region 2:
Erase Block Size: 32768 B (32 KiB)
Number of Erase Blocks: 1
Region 3:
Erase Block Size: 65536 B (64 KiB)
Number of Erase Blocks: 63
jtag> readmem 0xFFC00000 0x1000 1.dat
address: 0xFFC00000
length: 0x00001000
reading:
addr: 0xFFC01000
Done.
jtag> quit


05/05/22(日) 11:03:55 投稿者[わんこ ] [No.2510]のスレッド内
【No.2524】 タイトル[Re: JTAGでのFLASHの修復について] 【No.2521】に対する返信
自己レスです。
jtag> detectflash 0xFFC00000を実行せずにreadmemすれば、問題なく読み出しできました。detectflash後のreadmemはCFIデータを読み出してしまっていたようです。

ところが、FLASH書き込みがうまくいきません。書き込みを行うとすべてFFになってしまいます。
たぶん、FLSAHがST Micro製のためだとおもうのですが、こうなるとソースの修正が必要でしょうか?

05/05/23(月) 12:41:04 投稿者[わんこ] [No.2510]のスレッド内
【No.2532】 タイトル[(成功) JTAGでのFLASHの修復について] 【No.2524】に対する返信
また、自己レスになってしまいました。すみません。

cfi.cにパッチをあてて、セクタアドレスと物理アドレスの関連を正常化したところ、うまく書き込みできるようになりました。

PC Pentium MMX166 Debian sarge
JTAGハードは自作。パラレル接続で74HC125を1個のみ。電源はHD-LANから。
HD-LANは初期化SWを押しながら電源ON
fl2(bootloader)の復旧は成功。所要36分
fl1(kernel)の復旧は現在実施中です。予想所要時間36時間、、、

パッチ個所は後で書き込みさせていただきます。
ありがとうございました。

05/05/23(月) 23:36:29 投稿者[hnishi] [No.2510]のスレッド内
【No.2533】 タイトル[Re: (成功) JTAGでのFLASHの修復について] 【No.2532】に対する返信
書き換え成功おめでとうございます.

わたしもまたカーネルの書き換えに失敗して
いま,ROMを焼いています><
pentium3 1Gだと24hぐらいかかります.
わたしはHPを立てない主義なので(めんどくさがりなので)
手順をまとめてもらえるとたすかります

>また、自己レスになってしまいました。すみません。
>
>cfi.cにパッチをあてて、セクタアドレスと物理アドレスの関連を正常化したところ、うまく書き込みできるようになりました。
>
>PC Pentium MMX166 Debian sarge
>JTAGハードは自作。パラレル接続で74HC125を1個のみ。電源はHD-LANから。
>HD-LANは初期化SWを押しながら電源ON
>fl2(bootloader)の復旧は成功。所要36分
>fl1(kernel)の復旧は現在実施中です。予想所要時間36時間、、、
>
>パッチ個所は後で書き込みさせていただきます。
>ありがとうございました。

05/05/27(金) 22:07:51 投稿者[わんこ ] [No.2510]のスレッド内
【No.2538】 タイトル[Re: (成功) JTAGでのFLASHの修復について] 【No.2533】に対する返信
こんばんは、わんこです。

hnishiさんのパッチに加えるパッチです。
cfi.cの201 202行にパッチを当てます。
cfi->device_geometry.erase_block_regions[tmp-1-i].erase_block_size = z;
cfi->device_geometry.erase_block_regions[tmp-1-i].number_of_erase_blocks = y + 1;
[i]を[tmp-1-i]に変更します。

これで、ブートエリアが最後にあるFLASHメモリーのセクタ番号と物理アドレスの関係が正常となります。



JTAGハードは自作。パラレル接続で74HC125を1個のみ。電源はHD-LANから。HD-LANからは直接基盤から半田でJTAG取り出し。基盤上のプルアップ抵抗は未設置。
http://d4.princess.ne.jp/hardware/xilinx/impact.htmlを参考にさせて頂きました。(3.3V電源部はLinkstationから電源を取るので省略、2.2Kプルアップも省略)
Linkstationは初期化SWを押しながら電源ONでWatchDOG停止及びFLASH書き込みモードとなる。

fl2にたつやさんのbootloaderを書き込みし、tatsuya-debug-modeで立ち上げ。(fl2の先頭48Kだけなので、JTAG書き込み約30分)
その後、シリアルでカーネルを流し込み、そのカーネルをEMモードで起動しEMモードからfl1を書き込み、完全復旧しました。

HD-LAN(私がパッチ)、HD-HLAN、HD-HGLANなら、たつやさんのbootloaderを使用して、1時間程度でflashの復旧が可能です。

では、