another diff session, this time on the openocd logs, reveled a difference in
the way two firmware versions respond to a certain EMU_CMD_HW_JTAG3 (0xCF)
command issued by openocd:
Debug: 399 977 jlink.c:1516 jlink_usb_write(): jlink_usb_write,
out_length = 168, result = 168
Debug: 400 977 jlink.c:1563 jlink_debug_buffer(): 0000 cf 00 8f 02 17
00 00 00 00 00 00 00 00 00 00 00
Debug: 401 977 jlink.c:1563 jlink_debug_buffer(): 0010 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00
Debug: 402 977 jlink.c:1563 jlink_debug_buffer(): 0020 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00
Debug: 403 977 jlink.c:1563 jlink_debug_buffer(): 0030 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00
Debug: 404 977 jlink.c:1563 jlink_debug_buffer(): 0040 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00
Debug: 405 977 jlink.c:1563 jlink_debug_buffer(): 0050 00 00 00 00 40
7f 80 7f 00 00 80 7f 00 00 80 7f
Debug: 406 977 jlink.c:1563 jlink_debug_buffer(): 0060 00 00 80 7f 00
00 80 7f 00 00 80 7f 00 00 80 7f
Debug: 407 977 jlink.c:1563 jlink_debug_buffer(): 0070 00 00 80 7f 00
00 80 7f 00 00 80 7f 00 00 80 7f
Debug: 408 977 jlink.c:1563 jlink_debug_buffer(): 0080 00 00 80 7f 00
00 80 7f 00 00 80 7f 00 00 80 7f
Debug: 409 977 jlink.c:1563 jlink_debug_buffer(): 0090 00 00 80 7f 00
00 80 7f 00 00 80 7f 00 00 80 7f
Debug: 410 977 jlink.c:1563 jlink_debug_buffer(): 00a0 00 00 80 7f 00
00 00 00
with the 4.42 firmware, the result looks like this:
Debug: 411 978 jlink.c:1528 jlink_usb_read(): jlink_usb_read, result =
82
Debug: 412 978 jlink.c:1563 jlink_debug_buffer(): 0000 ff 3b 02 d0 9d
20 80 20 8b 7f 00 00 80 7f 00 00
Debug: 413 978 jlink.c:1563 jlink_debug_buffer(): 0010 80 7f 00 00 80
7f 00 00 80 7f 00 00 80 7f 00 00
Debug: 414 978 jlink.c:1563 jlink_debug_buffer(): 0020 80 7f 00 00 80
7f 00 00 80 7f 00 00 80 7f 00 00
Debug: 415 978 jlink.c:1563 jlink_debug_buffer(): 0030 80 7f 00 00 80
7f 00 00 80 7f 00 00 80 7f 00 00
Debug: 416 978 jlink.c:1563 jlink_debug_buffer(): 0040 80 7f 00 00 80
7f 00 00 80 7f 00 00 80 7f 00 00
Debug: 417 978 jlink.c:1563 jlink_debug_buffer(): 0050 80 7f
Debug: 418 978 jlink.c:1541 jlink_usb_read_emu_result():
jlink_usb_read_result, result = 1
Debug: 419 978 jlink.c:1563 jlink_debug_buffer(): 0000 00
Debug: 420 978 jlink.c:1323 jlink_tap_execute(): pending scan result,
length = 640
Debug: 421 978 jlink.c:1563 jlink_debug_buffer(): 0000 77 04 a0 3b 41
00 41 16 ff 00 00 00 ff 00 00 00
Debug: 422 978 jlink.c:1563 jlink_debug_buffer(): 0010 ff 00 00 00 ff
00 00 00 ff 00 00 00 ff 00 00 00
Debug: 423 978 jlink.c:1563 jlink_debug_buffer(): 0020 ff 00 00 00 ff
00 00 00 ff 00 00 00 ff 00 00 00
Debug: 424 978 jlink.c:1563 jlink_debug_buffer(): 0030 ff 00 00 00 ff
00 00 00 ff 00 00 00 ff 00 00 00
Debug: 425 978 jlink.c:1563 jlink_debug_buffer(): 0040 ff 00 00 00 ff
00 00 00 ff 00 00 00 ff 00 00 00
Debug: 426 978 commands.c:238 jtag_read_buffer():
fields[0].in_value[640]: 0x164100413BA00477
Info : 427 978 core.c:951 jtag_examine_chain_display(): JTAG tap:
stm32f1x.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)
Info : 428 978 core.c:951 jtag_examine_chain_display(): JTAG tap:
stm32f1x.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)
Debug: 429 978 core.c:1208 jtag_validate_ircapture(): IR capture
validation scan
with the 4.46 firmware, the result is all 1:
Debug: 411 995 jlink.c:1528 jlink_usb_read(): jlink_usb_read, result =
82
Debug: 412 995 jlink.c:1563 jlink_debug_buffer(): 0000 ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff
Debug: 413 995 jlink.c:1563 jlink_debug_buffer(): 0010 ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff
Debug: 414 995 jlink.c:1563 jlink_debug_buffer(): 0020 ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff
Debug: 415 995 jlink.c:1563 jlink_debug_buffer(): 0030 ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff
Debug: 416 995 jlink.c:1563 jlink_debug_buffer(): 0040 ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff
Debug: 417 995 jlink.c:1563 jlink_debug_buffer(): 0050 ff 7f
Debug: 418 996 jlink.c:1541 jlink_usb_read_emu_result():
jlink_usb_read_result, result = 1
Debug: 419 996 jlink.c:1563 jlink_debug_buffer(): 0000 00
Debug: 420 996 jlink.c:1323 jlink_tap_execute(): pending scan result,
length = 640
Debug: 421 996 jlink.c:1563 jlink_debug_buffer(): 0000 ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff
Debug: 422 996 jlink.c:1563 jlink_debug_buffer(): 0010 ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff
Debug: 423 996 jlink.c:1563 jlink_debug_buffer(): 0020 ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff
Debug: 424 996 jlink.c:1563 jlink_debug_buffer(): 0030 ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff
Debug: 425 996 jlink.c:1563 jlink_debug_buffer(): 0040 ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff
Debug: 426 996 commands.c:238 jtag_read_buffer():
fields[0].in_value[640]: 0xFFFFFFFFFFFFFFFF
Error: 427 996 core.c:941 jtag_examine_chain_check(): JTAG scan chain
interrogation failed: all ones
Error: 428 996 core.c:942 jtag_examine_chain_check(): Check JTAG
interface, timings, target power, etc.
Error: 429 996 core.c:1457 jtag_init_inner(): Trying to use configured
scan chain anyway...
Debug: 430 996 core.c:1208 jtag_validate_ircapture(): IR capture
validation scan
my first thought is a bug in the new firmware, that in this configuration fails.
(the test was performed with exactly the same hardware, with the two firmware
versions; no other differences were noted).
Xiofan/Alexander,
Q1: any idea where does this long JTAG sequence come from? can we shorten it?
(since other long transactions seem to work, only this particular one fails).
Q2: can you imagine an erroneous condition in our code (the usb stack?) that
could lead to such a situation?
if not, I will report this to Segger.
Liviu
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel