ADSP-21369を捌く

SVN trunk も含め,今日現在の UrJTAGには ADSP-21369 用のデータもバスドライバも含まれていないので,
その辺りから用意する必要がある.
とりあえず,bsdl2jtag でデータは作って本家trackerには投げた

$ src/jtag

UrJTAG 0.10 #0
Copyright (C) 2002, 2003 ETC s.r.o.
Copyright (C) 2007, 2008, 2009 Kolja Waschk and the respective authors

UrJTAG 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 UrJTAG.

WARNING: UrJTAG may damage your hardware!
Type "quit" to exit, "help" for help.

jtag> cable oocdlink-s
Connected to libftd2xx driver.
jtag> detect
IR length: 5
Chain length: 1
Device Id: 0 (0x0000000000000000)
../../../jtag/src/tap/chain.c(149) Part 0 without active instruction
../../../jtag/src/tap/chain.c(200) Part 0 without active instruction
../../../jtag/src/tap/chain.c(149) Part 0 without active instruction

ADSP-23169はIDCODEレジスタが無いのはいつか書いた通りで,必ず検出に失敗する.
しかし,detect は必ず行わなければいけない.さもないと,次に行う設定ファイルの include で

Run "detect" first.
Run "detect" first.
Run "detect" first.
Run "detect" first.
Run "detect" first.
Run "detect" first.
Run "detect" first.
Run "detect" first.
Run "detect" first.
Run "detect" first.

という表示が山のように出てくる*1

jtag> include analog/sharc21369/sharc21369

Blackfinなどでは自動で読んでくれる設定ファイルを手読みしなければならない.残念だけれど.
あとは,他のチップと同様.

jtag> instruction SAMPLE/PRELOAD
jtag> shift ir
jtag> shift dr
jtag> dr
0100100100100100100100100100100100100100100100100100000100000100010100010100010100010100000100010100100100010100010100010100100100100111100100100101100100100100100101100100100100100100100100100100000000100010000010010010010010110000100000000100100100100100100100100100000000000000000000000100111110111010111111111111111111010010010010010010010010010010100010100010010100010100010100010100010010010010010010010010010010
jtag> 

今回本家に投げたパッチでは,EMU周りのレジスタは考慮していない.私がSHARCのEMU周りを理解していないというのも理由の一つだが,bsdl2jtag が ADSP-21369 の BSDL のパーズに失敗するため.まあ,UrJTAG自身が扱いきれない*2ので,大きな問題では無いはず.

とりあえず,生存確認みたいなことは,ここまで実装できれば実現できる.でも,スイッチだけでブートストラップコードを書くなんていう,若き日のシーモア・クレイのような芸当は,ごめん被りたい.そこで,バスドライバの作成に入る.

*1:この挙動はcriticalではないが,UrJTAGのバグと言ってよいだろう…そのうちパッチを投げておかなきゃ

*2:bfin-gdbserverでは,この辺りは独自拡張している