2015年8月22日土曜日

Buffalo WAPS-HP-AM54G54 の分解

以前無線 LAN ルータの詰め合わせ品として落札していたバッファロー WAPS-HP-AG54G54 を分解してみました。そして JTAG にてフラッシュメモリの内容をバックアップしました。

分解作業

筐体を固定しているネジはヘクスグローブ(T8)でした。専用のねじ回しでネジを外した後、筐体を上下に分割して、更にプラスチック製のフロントパネルを取り外しました。

WAPS-HP-AM54G54 の筐体の蓋を開けたところです。

筐体背面にワッシャで固定されているアンテナ接栓も取り外した後、ボードを筐体底部から取り外しました。

WAPS-HP-AM54G54 のボード表面
WAPS-HP-AM54G54 のボード裏面

ボードの裏面と筐体底部の間には発熱の多いイーサネットスイッチのチップの熱を逃がすように伝熱製のラバーが貼り付けられていました。そのためボードを剥がすには力が必要でした。

筐体底部に貼り付けてあった放熱ラバー

ボードの表面を水分で湿らせた刷毛で綺麗に掃除をした後、チップなどを観察してみました。さすがに業務用機とあってフラッシュメモリは 8MB で、システムメモリは 64MB という仕様でした。
  • 制御チップ BCM4704
  • RAM HY5DU561622ETP-J (16Mx16=32MB) x2 個
  • FLASH TC58FVM6T2A (4Mx16bit=8MB, TopB)
WAPS-HP-AM54G54 のプロセッサ、システムメモリ、フラッシュメモリ

更に無線 LAN カードは以下の二枚でした。作業の都合でこの無線 LAN カードはボードから取り外しました。
  • WLI2-MPCI-AM54 (BCM4318 ですが BCM4319 と認識されます)
  • WLI2-MPCI-G54 (BCM4318)

JTAG とシリアルコンソールの端子取り付け

ボードの表面の観察が終わったところで、JTAG とシリアルコンソールの端子(ピンヘッダ)を取り付けました。ただ今回のボードのアースパターンが強力なもので、アースに接続されているスルーホールのハンダが抜けなくて苦労しました。いつも使っている電子用ハンダゴテでは熱量不足ということで、金工用の 100W ハンダゴテを使ってようやくスルーホールのハンダを抜き取りました。

スルーホールのハンダを抜き取ったところです。
特にシリアルコンソールの GND のスルーホールが抜けなくて苦労しました。

苦労しましたがスルーホールのハンダが抜けたところでピンヘッダをハンダ付けしました。シリアルコンソールのピンヘッダのハンダ付けと一緒にシリアルコンソールを RS232Cの信号レベルへ変換するチップ(IC15)のランド部分も WLAH-G54 などで行った短絡加工を施しました。

ハンダ付けが終わったところです。
IC15 の部分は #7-#8, #11-#12-#13 を短絡しました。
JTAG の #15,#16 は間違え防止のため、ピンヘッダを取り付けませんでした。
ボード表面のピンヘッダの様子です。

シリアルコンソールの動作試験と JTAG によるバックアップ

JTAG とシリアルコンソールのピンヘッダが用意できたところで、早速シリアルコンソールの動作試験から行いました。通信速度は一般的な 115200bps で動作しました。Ctrl + C で起動時にブレーク信号を送ると CFE のコンソールへと移行することができました。

次に JTAG によるフラッシュメモリのバックアップを行いました。使用した JTAG ケーブルはバッファタイプの WIGGLER ケーブルを使用しました。バックアップの種類は、CFE の部分だけとフラッシュメモリ全体(WHOLEFLASH)で行いました。それぞれ二回ずつバックアップを行なって、データが一致するか MD5 のハッシュで比較を行いました。なおフラッシュメモリ全体のバックアップには一回あたり二時間ほど時間が必要でした。

JTAG ケーブルは WIGGLER ケーブルを使用しました。
3.3 ボルト電源は、シリアルコンソールのピンヘッダから供給しました。
JTAG でバックアップ中の WAPS-HP-AM54G54 です。

プローブ動作の様子です。
# ./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 0x0470417F

Probing bus ... Done

Instruction Length set to 8

CPU Chip ID: 00000100011100000100000101111111 (0470417F)
*** Found a Broadcom BCM4704 Rev 8 CPU chip ***

    - EJTAG IMPCODE ....... : 00000000100000000000100100000100 (00800904)
    - 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 4704
Chip Rev 8
Package Options 0
Number of Cores 0
Core Revision 79
Core Type 700
Core Vendor ID 80000
Flash Type 700
Flash Type = PFLASH
Dest is bits 0
Flash is byteswapped 0
Endian Type is LE 0
PLL Type 00020000
Enter Flash Probe

Probing Flash at (Flash Window: 0x1fc00000) ...
Done

Flash Vendor ID: 00000000000000000000000010011000 (00000098)
Flash Device ID: 00000000000000000000000001010111 (00000057)
*** Found a TC58FVM6T2A  4Mx16 TopB    (8MB) Flash Chip ***

    - Flash Chip Window Start .... : 1C000000
    - Flash Chip Window Length ... : 00800000
    - Selected Area Start ........ : 00000000
    - Selected Area Length ....... : 00000000



 *** REQUESTED OPERATION IS COMPLETE ***

筐体の洗浄

最後に筐体の洗浄も行なっておきました。レンジ周り用アルカリ洗剤で洗浄した後、洗剤残りが無いようにしっかりすすぎ洗いをしておきました。

洗浄中の筐体の様子です。

今後は各種のファームウェアをインストールしてみたいと思っています。

0 件のコメント:

コメントを投稿