0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

蟹さんのJTAG

Last updated at Posted at 2018-02-02

RTL8196Cでopenocd 0.10.0を試してみた。

bootのGPIOの処理はすべて外してJTAGが使えるようにしてあります。

ターゲットの某有線ルーターV2はR366からR341の0ΩでGPIOの接続になっているので、これを全て外しました。

0.10.0のソースにはLexraのコメントもあるので、対応は入っていて、まったく動いていないわけではないが、pcが拾えないなど不完全な様です。

bash-3.2$ ./openocd -f ft232h.cfg -f rlx4181.cfg 
Open On-Chip Debugger 0.10.0
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
adapter speed: 15000 kHz
adapter_nsrst_delay: 100
Info : auto-selecting first available session transport "jtag". To override use 
'transport select <transport>'.
jtag_ntrst_delay: 100
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain connect_de
assert_srst
rlx4181.cpu
Info : ftdi: if you experience problems at higher adapter clocks, try the comman
d "ftdi_tdo_sample_edge falling"
Info : clock speed 15000 kHz
Info : JTAG tap: rlx4181.cpu tap/device found: 0x1438000d (mfg: 0x006 (Harris), 
part: 0x4380, ver: 0x1)
Info : accepting 'telnet' connection on tcp/4444
target halted in MIPS32 mode due to debug-request, pc: 0x00000000
===== mips32 registers
(0) r0 (/32): 0x00000000
(1) r1 (/32): 0x1000FC01
(2) r2 (/32): 0x00000060
(3) r3 (/32): 0xB8002014
(4) r4 (/32): 0x80420E9C
(5) r5 (/32): 0x00000080
(6) r6 (/32): 0x00000001
(7) r7 (/32): 0x00000000
(8) r8 (/32): 0x00000000
(9) r9 (/32): 0x80410000
(10) r10 (/32): 0x80410000
(11) r11 (/32): 0x0000009C
(12) r12 (/32): 0x1FFFFFFF
(13) r13 (/32): 0xFFFF9000
(14) r14 (/32): 0x00000000
(15) r15 (/32): 0x8040E71C
(16) r16 (/32): 0x00000005
(17) r17 (/32): 0x00000005
(18) r18 (/32): 0x00000000
(19) r19 (/32): 0x80420E9C
(20) r20 (/32): 0x00000001
(21) r21 (/32): 0x00000008
(22) r22 (/32): 0x00000020
(23) r23 (/32): 0x00000080
(24) r24 (/32): 0x00000004
(25) r25 (/32): 0x00000000
(26) r26 (/32): 0x80402EAC
(27) r27 (/32): 0x80420E54
(28) r28 (/32): 0x8041F014
(29) r29 (/32): 0x80420E54
(30) r30 (/32): 0xFFFFFFFF
(31) r31 (/32): 0x80403610
(32) status (/32): 0x1000FC01
(33) lo (/32): 0x00000002
(34) hi (/32): 0x00000008
(35) badvaddr (/32): 0x00000000
(36) cause (/32): 0x00001000
(37) pc (/32): 0x00000000
(38) f0 (/32): 0x00000000
(39) f1 (/32): 0x00000000
(40) f2 (/32): 0x00000000
(41) f3 (/32): 0x00000000
(42) f4 (/32): 0x00000000
(43) f5 (/32): 0x00000000
(44) f6 (/32): 0x00000000
(45) f7 (/32): 0x00000000
(46) f8 (/32): 0x00000000
(47) f9 (/32): 0x00000000
(48) f10 (/32): 0x00000000
(49) f11 (/32): 0x00000000
(50) f12 (/32): 0x00000000
(51) f13 (/32): 0x00000000
(52) f14 (/32): 0x00000000
(53) f15 (/32): 0x00000000
(54) f16 (/32): 0x00000000
(55) f17 (/32): 0x00000000
(56) f18 (/32): 0x00000000
(57) f19 (/32): 0x00000000
(58) f20 (/32): 0x00000000
(59) f21 (/32): 0x00000000
(60) f22 (/32): 0x00000000
(61) f23 (/32): 0x00000000
(62) f24 (/32): 0x00000000
(63) f25 (/32): 0x00000000
(64) f26 (/32): 0x00000000
(65) f27 (/32): 0x00000000
(66) f28 (/32): 0x00000000
(67) f29 (/32): 0x00000000
(68) f30 (/32): 0x00000000
(69) f31 (/32): 0x00000000
(70) fcsr (/32): 0x00000000
(71) fir (/32): 0x00000000

RTL8198でも試してみた。カーネルがJTAGピンをGPIOかUARTにしているようで、とりあえずbootで止めてアクセスしてみた。こちらも同様です。

bash-3.2$ ./openocd -f ft232h.cfg -f rtl8198.cfg 
Open On-Chip Debugger 0.10.0
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
adapter speed: 15000 kHz
adapter_nsrst_delay: 100
Info : auto-selecting first available session transport "jtag". To override use 
'transport select <transport>'.
jtag_ntrst_delay: 100
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain connect_de
assert_srst
rtl8198.cpu
Info : ftdi: if you experience problems at higher adapter clocks, try the comman
d "ftdi_tdo_sample_edge falling"
Info : clock speed 15000 kHz
Info : JTAG tap: rtl8198.cpu tap/device found: 0x1528100d (mfg: 0x006 (Harris), 
part: 0x5281, ver: 0x1)
Info : accepting 'telnet' connection on tcp/4444
target halted in MIPS32 mode due to debug-request, pc: 0x00000000
===== mips32 registers
(0) r0 (/32): 0x00000000
(1) r1 (/32): 0x1000FC01
(2) r2 (/32): 0x00000060
(3) r3 (/32): 0xB8002014
(4) r4 (/32): 0x00000000
(5) r5 (/32): 0xB8002014
(6) r6 (/32): 0x00000001
(7) r7 (/32): 0x80424F2C
(8) r8 (/32): 0x00000000
(9) r9 (/32): 0x1FFFFFFF
(10) r10 (/32): 0x80410000
(11) r11 (/32): 0x1FFFFFFF
(12) r12 (/32): 0x80410000
(13) r13 (/32): 0x804126E0
(14) r14 (/32): 0x804126E0
(15) r15 (/32): 0x804126F8
(16) r16 (/32): 0x80424EAF
(17) r17 (/32): 0x00000000
(18) r18 (/32): 0x00000003
(19) r19 (/32): 0x80411870
(20) r20 (/32): 0x00000001
(21) r21 (/32): 0x00000080
(22) r22 (/32): 0x80424EAC
(23) r23 (/32): 0xFFFFFFFF
(24) r24 (/32): 0x00000004
(25) r25 (/32): 0x1FFFFFFF
(26) r26 (/32): 0x804031F4
(27) r27 (/32): 0x80424E6C
(28) r28 (/32): 0x80423004
(29) r29 (/32): 0x80424E6C
(30) r30 (/32): 0xFFFFFFFF
(31) r31 (/32): 0x80403708
(32) status (/32): 0x1000FC01
(33) lo (/32): 0x00000681
(34) hi (/32): 0x00000000
(35) badvaddr (/32): 0x00000000
(36) cause (/32): 0x00001000
(37) pc (/32): 0x00000000
(38) f0 (/32): 0x00000000
(39) f1 (/32): 0x00000000
(40) f2 (/32): 0x00000000
(41) f3 (/32): 0x00000000
(42) f4 (/32): 0x00000000
(43) f5 (/32): 0x00000000
(44) f6 (/32): 0x00000000
(45) f7 (/32): 0x00000000
(46) f8 (/32): 0x00000000
(47) f9 (/32): 0x00000000
(48) f10 (/32): 0x00000000
(49) f11 (/32): 0x00000000
(50) f12 (/32): 0x00000000
(51) f13 (/32): 0x00000000
(52) f14 (/32): 0x00000000
(53) f15 (/32): 0x00000000
(54) f16 (/32): 0x00000000
(55) f17 (/32): 0x00000000
(56) f18 (/32): 0x00000000
(57) f19 (/32): 0x00000000
(58) f20 (/32): 0x00000000
(59) f21 (/32): 0x00000000
(60) f22 (/32): 0x00000000
(61) f23 (/32): 0x00000000
(62) f24 (/32): 0x00000000
(63) f25 (/32): 0x00000000
(64) f26 (/32): 0x00000000
(65) f27 (/32): 0x00000000
(66) f28 (/32): 0x00000000
(67) f29 (/32): 0x00000000
(68) f30 (/32): 0x00000000
(69) f31 (/32): 0x00000000
(70) fcsr (/32): 0x00000000
(71) fir (/32): 0x00000000

ちょっと直せば使えるようになるような気もします。

openocdはarmのサポートがメインでmipsはおまけくらいな感じなので、他力本願で待っていても直らないかもしれません。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?