2015年10月7日水曜日

Linksys WRT54G v8 を分解

真贋判定が出来ていない リンクシス WRT54G v8 を分解してみました。

前面の青色のパネルを思いっきり手前に引っ張って取り外した後、順次筐体を分解して内部のボードを見ることができました。アンテナが固定式ということもあって、これ以上の分解にはアンテナケーブルをハンダゴテで取り外す必要がありました。

筐体を開いた WRT54G v8 の様子です。

ボードの表面と裏面をしっかり観察しました。ボードの製造はしっかりと設備が整った工場で作られているようでした。偽物にありがちな手業で行った場所はアンテナ・ケーブルの接続部分以外にありませんでした。このボードを見る限り、本物のように見えました。特にフラッシュメモリの上にペイントマーカーで印を付けている様子などはリンクシスの製品の特徴どおりでした。

WRT54G v8 のボードの裏側です。
無線回路やイーサネット・スイッチなどを統合した BCM5354 が搭載されていました。
部品点数がこのチップのおかげで一気に減少しています。

この WRT54G v8 には、シリアルコンソールのランドと JTAG のランドが用意されていました。近くにあるプルアップ抵抗器の抵抗値を計測すると 4.7KΩ でした。

シリアルコンソールと JTAG のランドの様子です。

いつものようにシリアルコンソールと JTAG 用にピンヘッダを取り付けました。

シリアルコンソールと JTAG へピンヘッダをハンダ付けしたところです。

さらに電源ソケットのセンターピンの接触不良対策としてセンターピンとラグ板の部分をリード線でハンダ付けしました。この WRT54G v8 では背後の部品が近くまで迫っていたので、センターピンから伸びたリード線はボードの裏側のプラス極へハンダ付けしておきました。

電源ソケットのセンターピンの接触不良対策のリード線の追加です。

シリアルコンソールの動作確認

シリアルコンソールの動作試験を行なってみました。リンクシスでよくありがちなピン配置となっていました。動作は問題ありませんでした。ただしファームウェアに DD-WRT の micro タイプがインストールされているため、CFE の部分まではシリアルコンソールで制御可能でしたが、DD-WRT が起動した後はシリアルコンソールは制御できませんでした。

シリアルコンソールへケーブルを接続して試験しているところです。

JTAG の動作確認

シリアルコンソールと同様に JTAG の動作確認をしてみました。まずはプローブ動作からです。

WIGGLER タイプの JTAG ケーブルで動作確認をしているところです。

# ./tjtag3 -probeonly /cable:wiggler

================================================
 EJTAG Debrick Utility v3.0.2.1 Tornado-MOD
================================================

Detected IR chain length = 8
Number of device(s) = 1

IDCODE for device 1 is 0x1535417F

Probing bus ... Done

Instruction Length set to 8

CPU Chip ID: 00010101001101010100000101111111 (1535417F)
*** Found a Broadcom BCM5354 KFBG Rev 1 CPU chip ***

    - EJTAG IMPCODE ....... : 00000000000000000000000000000000 (00000000)
    - EJTAG Version ....... : 1 or 2.0
    - EJTAG DMA Support ... : Yes
    - EJTAG Implementation flags: R4k MIPS32

Intial value of Control register is 0000000C
Intial value of status register is  00000077
01110111 (00000077)

Status bit 7 Busy Inverted pin 11 = 1
Status bit 6 *Ack          pin 10 = 1
Status bit 5 Paper-out     pin 12 = 1
Status bit 4 Select        pin 13 = 1
Status bit 3 *Error        pin 15 = 0
* means low = true, e.g., *Error

VCC connected
values of Control register after init 0x0000000C
value of status register after init   0x00000077
system reset complete

Issuing Processor / Peripheral Reset ... Done
Enabling Memory Writes ... Done
Halting Processor ... ... Done
Init PrAcc ... Skipped
Clearing Watchdog ... Done


Chip ID 0
Chip Rev 0
Package Options 0
Number of Cores 0
Core Revision 15
Core Type 0
Core Vendor ID 0
Flash Type 0
Flash Type = FLASH_NONE
Flash bus is 8 bits
Dest is bits 0
Flash is byteswapped 0
Endian Type is LE 0
PLL Type 00000000
Enter Flash Probe

Probing Flash at (Flash Window: 0x1fc00000) ...
Enter SPI Flash Probe
Enter SPI Flash Probe
Enter SPI Flash Probe
Enter SPI Flash Probe
Done

*** Unknown or NO Flash Chip Detected ***


*** REQUESTED OPERATION IS COMPLETE ***


しかし問題発生です。フラッシュメモリを認識することができませんでした。確認のためにフラッシュメモリの表面に貼り付けられていたファームウェアのバージョンシールをプラモデル用のプラカラーの薄め液で剥がしました。そこにあったメーカと型番は SPANSION S29AL016D90TFI01 でした。先日通気口を設けた リンクシス WTR54GS と同じフラッシュメモリでした。

搭載されていたフラッシュメモリは SPANSION S29AL016D90TFI01 です。

TJTAG3 のオプション設定できるフラッシュメモリの一覧表には上記のフラッシュメモリの記述はありませんでした。そのため自動認識しなくても仕方がありませんが、互換性があるかもしれない 2MB のフラッシュメモリのオプション番号を設定して CFE データを読みだしてみるとオールゼロなのです。何か問題がありそうでした。

ネット上を検索してみると WRT54G v8 でも TJTAG3 でプローブ動作でフラッシュメモリを認識しているようで、この問題がこの個体だけのものなのかもしれませんでした。

結局フラッシュメモリのバックアップを取得することは諦めました。

今後の予定

システムメモリとフラッシュメモリの容量不足はチップ交換をしようと思っていました。しかしフラッシュメモリの JTAG バックアップが出来ない状況を考えるとフラッシュメモリの交換は不可能ですし、2MB の容量で動作するファームウェアも限られていることからシステムメモリの拡張の必要性もありませんでした。

JTAG でフラッシュメモリへのアクセスが出来るかもう少し挑戦してダメだったら、元通りに組み立てなおしてコレクションの一つにしたいと思っています。

0 件のコメント:

コメントを投稿