2015年5月16日土曜日

Buffalo WLA-G54C へ JTAG アクセス

随分と昔に内部に在った Mini-PCI 無線 LAN アダプタ(BCM4306)を抜き取るために分解を行ったバッファローの WLA-G54C のプリント印刷基盤をたまたま発見しました。そこで今回は、この WLA-G54C へ JTAG アクセスを試みてみました。
ThinkPad A30 へ無線LAN
http://near-unix.blogspot.jp/2010/10/thinkpad-a30-lan.html

WLA-G54C のプリント印刷基盤です。
すでに無線 LAN アダプタは抜き取ってしまっています。

WLA-G54C のプリント印刷基盤の上には、いかにも JTAG か何かのためのピンホールが並んでいました。ここが JTAG 端子になるのではないかと期待していました。ネット上を検索してみると DD-WRT のフォーラムで、この WLA-G54C への JTAG の話題がすでに掲載されていました。そして写真付きの詳しい解説までありました。全然違う場所に JTAG 端子がありました(笑)。これを参考にして JTAG 端子を取り付けました。
dd-wrt.com -- Buffalo WLA-G54C
http://www.dd-wrt.com/phpBB2/viewtopic.php?t=6801

もうとても小さな場所での作業なので、ルーペを使用してのハンダ付け作業でした(涙)。もう歳には勝てないようです。

プリント印刷基盤の JTAG 端子へリード線をハンダ付けしているところです。
プリント印刷基盤の JTAG 端子へリード線をハンダ付けしたところです。
青:TMS
緑:TCK
橙:TDI
茶:TDO

プリント印刷基盤からリード線で引き出した JTAG 端子はピンヘッダへ取り付けました。ちょっと不安定ですが、とりあえずの実験のため、これで十分です。

小さく切り出した蛇の目基盤へピンヘッダをハンダ付けした後、リード線を取り付けました。

さて早速パソコン(Debian Wheezy)から JTAG ケーブルを取り付けてプローブ動作をしてしました。

JTAG ケーブルで接続したところです。

何か様子が変なのです。確かに JTAG ケーブルによりプロセッサ情報(BCM4702)などは読み出しているようですが、フラッシュメモリの認識もなく、途中で動作が中断している感じです。そしてプリント印刷基盤上の LED ランプも点灯しません。いったいどうしたことでしょう。もしかして、以前の分解のときにどこか破損をしてしまったのでしょうか? 今日はとりあえずここまでの実験としました。

以下はプローブ動作の結果です。
# ./tjtag3 -probeonly /cable:DLC5

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

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

IDCODE for device 1 is 0x0471017F

Probing bus ... Done

Instruction Length set to 5

CPU Chip ID: 00000100011100010000000101111111 (0471017F)
*** Found a Broadcom BCM4702 Rev 1 CPU chip ***

    - EJTAG IMPCODE ....... : 00000000100000000000100100001000 (00800908)
    - 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  0000007F
01111111 (0000007F)

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 = 1
* means low = true, e.g., *Error

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

Issuing Processor / Peripheral Reset ... Done
Enabling Memory Writes ... Done
Halting Processor ... ... Done
Init PrAcc ... Skipped
^C


0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。