chakokuのブログ(rev4)

日々のごった煮ブログです

DN-G200にJTAG(HJ-LINK/USB)をつなぐ

DN-G200のBIOSの調査はちょっとお休みして、DN-G200のCPUであるPPC405にJTAGをつないでみることにした。10年以上も前のハードなので、そのままで繋がるようなJTAGデバッガはない*1のだけど、当時、玄箱のハックとか盛んでPPCJTAGでつなぐ記事がWiki等に残されていたのでそれを参考にした。

JTAGのプローブというか、ケーブルは以前に使っていた、HJ-LINK/USBというやつで、素性としては、FT2232系統(JTAGKey互換..ただしプロダクトコードは不一致)のようであった。このJTAGケーブルは結構いろんなJTAGデバッガ(PC側のソフト)と接続可能で、比較的実績のあるTopJTAG Flash Programmerのお試し版と繋いでみた。結果としては、、JTAGケーブルは認識され、また、IBMPPCも認識した。
続くステップとしてはBSDL(バウンダリスキャンの定義ファイル)を読み込ませるのだけど、以前からかなり時間をかけてPPC405用のBSDLを探し回ったがネット上では見つけることができなかった。そこで、多分それに近いだろうと思われる、FreeScaleのMPC8245等を読み込ませることにした。しかし、、これはエラーになった。少し調べると、JTAGプローブでCPUに接続して、属性情報を取得するのだけど、PPC405は命令長7ビットと検知されたようだ。一方、今回代用しようとしたBSDLは8bitであり、無理やり手動で読み込ませても最後はVerifyが通らずFLASHにはアクセスさせてくれない。
となると、、PPC405用になんちゃってBSDLをでっち上げるしかないのか。。

さすがに道のりは険しい。。JTAGとかバウンダリースキャンをまじめに勉強しますかね。。しかし、、意味あるのやろうか。。

■追記
検索しながら過去の先人の記録を見ていると、MPC8245用のデバッガがPPC405用としても使えるという書き込みあり。ならば、JTAGアプリ側はMPC8245用に仕立てておいて、騙しつつPPC405をつないでみるか。。そんなにうまくいくのか!?

■追記(120729)
上記方式でだまそうとしたけど、接続開始時点で、TopJTAGはターゲットのIDを再確認するようで、ビット長が違うといって処理を中断してしまう。ということなら、、と、今度は7bit長は守りつつ、適当なBSDLファイルを流用して7bitに仕立てて読み込ませてみた。この場合、動くには動いたけど、ターゲットから戻ってきた情報がおかしいとエラーを出した。まぁそらそうやろう。BSDLは嘘だから。
PPC405用のBSDLが手に入らない以上、405にJTAGのパルスをいろいろ投入して何が返ってくるかハックしながらそれなりに作るしかないのではなかろうか。まともに動かすには勉強してJTAGのステートマシンのところから理解しないと動かなそうだ。Xilinxでは405のコアがIPとして?提供されているようでJTAGも動いているようだから、ハード設計に詳しい人ならサクサクと理解できるのではと思われるが、論理合成とかかなり難易度高いし。。
やっぱ飛び道具*2でなんとかしようというのは甘い考えか。

*1:正しくは、アメリカ等では売られているけど、多種類のマイコンをカバーできる汎用品であり、かなり高価

*2:==JTAGデバッガetc