I've done similar comparison on my dongles.
There is no obvious problems like timeouts and buffer overruns (at
least under Linux).
First differences, as already mentioned, in version string and
interface voltage.
My testboard currently have 2 cores, so scan length 6 instead of 5.

After that TRST/SRTS reset goes equal (although, nothing was readback)

Debug: 476 287 transport.c:240 handle_transport_init(): handle_transport_init
Debug: 477 287 jlink.c:307 jlink_execute_reset(): reset trst: 0 srst 0
Debug: 478 287 jlink.c:571 jlink_reset(): trst: 0, srst: 0
Debug: 479 287 jlink.c:591 jlink_simple_command(): 0xdd
Debug: 480 288 jlink.c:1534 jlink_usb_write(): jlink_usb_write,
out_length = 1, result = 1
Debug: 481 288 jlink.c:1581 jlink_debug_buffer(): 0000 dd
Debug: 482 288 jlink.c:591 jlink_simple_command(): 0xdf
Debug: 483 289 jlink.c:1534 jlink_usb_write(): jlink_usb_write,
out_length = 1, result = 1
Debug: 484 289 jlink.c:1581 jlink_debug_buffer(): 0000 df
Debug: 485 289 core.c:719 jtag_add_reset(): SRST line released
Debug: 486 289 core.c:743 jtag_add_reset(): TRST line released
Debug: 487 289 core.c:323 jtag_call_event_callbacks(): jtag event: TAP reset


Debug: 494 1496 core.c:1412 jtag_init_inner(): Init JTAG chain
Debug: 495 1496 core.c:323 jtag_call_event_callbacks(): jtag event: TAP reset
Debug: 496 1496 jlink.c:269 jlink_execute_statemove(): statemove end in 15
Debug: 497 1496 jlink.c:490 jlink_state_move(): tap_set_state(RESET)
Debug: 498 1496 interface.c:406 jtag_debug_state_machine(): TAP/SM:
START state: RESET
Debug: 499 1496 interface.c:412 jtag_debug_state_machine(): TAP/SM:
TMS bits: 7 (bytes: 1)
Debug: 500 1496 interface.c:454 jtag_debug_state_machine(): TAP/SM:
 RESET -> RESET TMS: 1111111    TDI: 0000000
Debug: 501 1496 interface.c:457 jtag_debug_state_machine(): TAP/SM:
FINAL state: RESET
Debug: 502 1498 jlink.c:1534 jlink_usb_write(): jlink_usb_write,
out_length = 6, result = 6
Debug: 503 1498 jlink.c:1581 jlink_debug_buffer(): 0000 cf 00 07 00 7f 00
Debug: 504 1499 jlink.c:1546 jlink_usb_read(): jlink_usb_read, result = 1
Debug: 505 1499 jlink.c:1581 jlink_debug_buffer(): 0000 00
Debug: 506 1500 jlink.c:1559 jlink_usb_read_emu_result():
jlink_usb_read_result, result = 1
Debug: 507 1500 jlink.c:1581 jlink_debug_buffer(): 0000 00

Everything goes equal, however readback value is 0

Debug: 508 1500 core.c:1048 jtag_examine_chain(): DR scan
interrogation for IDCODE/BYPASS
Debug: 509 1500 core.c:323 jtag_call_event_callbacks(): jtag event: TAP reset
Debug: 510 1500 jlink.c:291 jlink_execute_scan(): scan end in DRPAUSE
Debug: 511 1500 commands.c:184 jtag_build_buffer(): DRSCAN num_fields: 1
Debug: 512 1500 commands.c:195 jtag_build_buffer():
fields[0].out_value[640]: 0x000000FF000000FF
Debug: 513 1500 jlink.c:296 jlink_execute_scan(): scan input, length = 640
Debug: 514 1500 jlink.c:1581 jlink_debug_buffer(): 0000 ff 00 00 00 ff
00 00 00 ff 00 00 00 ff 00 00 00
Debug: 515 1500 jlink.c:1581 jlink_debug_buffer(): 0010 ff 00 00 00 ff
00 00 00 ff 00 00 00 ff 00 00 00
Debug: 516 1500 jlink.c:1581 jlink_debug_buffer(): 0020 ff 00 00 00 ff
00 00 00 ff 00 00 00 ff 00 00 00
Debug: 517 1500 jlink.c:1581 jlink_debug_buffer(): 0030 ff 00 00 00 ff
00 00 00 ff 00 00 00 ff 00 00 00
Debug: 518 1500 jlink.c:1581 jlink_debug_buffer(): 0040 ff 00 00 00 ff
00 00 00 ff 00 00 00 ff 00 00 00
Debug: 519 1500 jlink.c:490 jlink_state_move(): tap_set_state(DRSHIFT)
Debug: 520 1500 jlink.c:563 jlink_scan(): tap_set_state(DRPAUSE)
Debug: 521 1500 jlink.c:269 jlink_execute_statemove(): statemove end in 15
Debug: 522 1500 jlink.c:490 jlink_state_move(): tap_set_state(RESET)
Debug: 523 1500 interface.c:406 jtag_debug_state_machine(): TAP/SM:
START state: RESET
Debug: 524 1500 interface.c:412 jtag_debug_state_machine(): TAP/SM:
TMS bits: 655 (bytes: 82)
(  goes equal TAP/SM )

Debug: 557 1501 jlink.c:1534 jlink_usb_write(): jlink_usb_write,
out_length = 168, result = 168
Debug: 558 1501 jlink.c:1581 jlink_debug_buffer(): 0000 cf 00 8f 02 17
00 00 00 00 00 00 00 00 00 00 00
Debug: 559 1501 jlink.c:1581 jlink_debug_buffer(): 0010 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00
Debug: 560 1501 jlink.c:1581 jlink_debug_buffer(): 0020 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00
Debug: 561 1501 jlink.c:1581 jlink_debug_buffer(): 0030 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00
Debug: 562 1501 jlink.c:1581 jlink_debug_buffer(): 0040 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00
Debug: 563 1501 jlink.c:1581 jlink_debug_buffer(): 0050 00 00 00 00 40
7f 80 7f 00 00 80 7f 00 00 80 7f
Debug: 564 1501 jlink.c:1581 jlink_debug_buffer(): 0060 00 00 80 7f 00
00 80 7f 00 00 80 7f 00 00 80 7f
Debug: 565 1501 jlink.c:1581 jlink_debug_buffer(): 0070 00 00 80 7f 00
00 80 7f 00 00 80 7f 00 00 80 7f
Debug: 566 1501 jlink.c:1581 jlink_debug_buffer(): 0080 00 00 80 7f 00
00 80 7f 00 00 80 7f 00 00 80 7f
Debug: 567 1501 jlink.c:1581 jlink_debug_buffer(): 0090 00 00 80 7f 00
00 80 7f 00 00 80 7f 00 00 80 7f
Debug: 568 1501 jlink.c:1581 jlink_debug_buffer(): 00a0 00 00 80 7f 00 00 00 00
Debug: 569 1505 jlink.c:1546 jlink_usb_read(): jlink_usb_read, result = 82

Now, working dongle returns

Debug: 570 1505 jlink.c:1581 jlink_debug_buffer(): 0000 80 30 ca 82 a0
30 ca 82 a0 7f 00 00 80 7f 00 00
Debug: 571 1505 jlink.c:1581 jlink_debug_buffer(): 0010 80 7f 00 00 80
7f 00 00 80 7f 00 00 80 7f 00 00
Debug: 572 1505 jlink.c:1581 jlink_debug_buffer(): 0020 80 7f 00 00 80
7f 00 00 80 7f 00 00 80 7f 00 00
Debug: 573 1505 jlink.c:1581 jlink_debug_buffer(): 0030 80 7f 00 00 80
7f 00 00 80 7f 00 00 80 7f 00 00
Debug: 574 1505 jlink.c:1581 jlink_debug_buffer(): 0040 80 7f 00 00 80
7f 00 00 80 7f 00 00 80 7f 00 00
Debug: 575 1505 jlink.c:1581 jlink_debug_buffer(): 0050 00 00
Debug: 576 1506 jlink.c:1559 jlink_usb_read_emu_result():
jlink_usb_read_result, result = 1
Debug: 577 1506 jlink.c:1581 jlink_debug_buffer(): 0000 00
Debug: 578 1506 jlink.c:1341 jlink_tap_execute(): pending scan result,
length = 640
Debug: 579 1506 jlink.c:1581 jlink_debug_buffer(): 0000 61 94 05 41 61
94 05 41 ff 00 00 00 ff 00 00 00
Debug: 580 1506 jlink.c:1581 jlink_debug_buffer(): 0010 ff 00 00 00 ff
00 00 00 ff 00 00 00 ff 00 00 00
Debug: 581 1506 jlink.c:1581 jlink_debug_buffer(): 0020 ff 00 00 00 ff
00 00 00 ff 00 00 00 ff 00 00 00
Debug: 582 1506 jlink.c:1581 jlink_debug_buffer(): 0030 ff 00 00 00 ff
00 00 00 ff 00 00 00 ff 00 00 00
Debug: 583 1506 jlink.c:1581 jlink_debug_buffer(): 0040 ff 00 00 00 ff
00 00 00 ff 00 00 00 ff 00 00 00
Debug: 584 1506 commands.c:238 jtag_read_buffer():
fields[0].in_value[640]: 0x4105946141059461
Info : 585 1506 core.c:951 jtag_examine_chain_display(): JTAG tap:
np10.cpu tap/device found: 0x41059461 (mfg: 0x230, part: 0x1059, ver:
0x4)
Info : 586 1506 core.c:951 jtag_examine_chain_display(): JTAG tap:
np10.dsp tap/device found: 0x41059461 (mfg: 0x230, part: 0x1059, ver:
0x4)

Usupported version:

Debug: 572 1607 jlink.c:1581 jlink_debug_buffer(): 0000 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00
Debug: 573 1607 jlink.c:1581 jlink_debug_buffer(): 0010 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00
Debug: 574 1607 jlink.c:1581 jlink_debug_buffer(): 0020 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00
Debug: 575 1607 jlink.c:1581 jlink_debug_buffer(): 0030 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00
Debug: 576 1607 jlink.c:1581 jlink_debug_buffer(): 0040 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00
Debug: 577 1607 jlink.c:1581 jlink_debug_buffer(): 0050 00 00
Debug: 578 1608 jlink.c:1559 jlink_usb_read_emu_result():
jlink_usb_read_result, result = 1
Debug: 579 1608 jlink.c:1581 jlink_debug_buffer(): 0000 00
Debug: 580 1608 jlink.c:1341 jlink_tap_execute(): pending scan result,
length = 640
Debug: 581 1608 jlink.c:1581 jlink_debug_buffer(): 0000 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00
Debug: 582 1608 jlink.c:1581 jlink_debug_buffer(): 0010 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00
Debug: 583 1608 jlink.c:1581 jlink_debug_buffer(): 0020 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00
Debug: 584 1608 jlink.c:1581 jlink_debug_buffer(): 0030 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00
Debug: 585 1608 jlink.c:1581 jlink_debug_buffer(): 0040 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00
Debug: 586 1608 commands.c:238 jtag_read_buffer():
fields[0].in_value[640]: 0x0000000000000000
Error: 587 1608 core.c:941 jtag_examine_chain_check(): JTAG scan chain
interrogation failed: all zeroes
Error: 588 1608 core.c:942 jtag_examine_chain_check(): Check JTAG
interface, timings, target power, etc.
Error: 589 1608 core.c:1457 jtag_init_inner(): Trying to use
configured scan chain anyway...

All zeroes returned, all time after the reset.
This could happen, if the TAP remains in the reset state.

I'll try to borrow a scope to see actual signal levels.

Alex.

2012/5/24 Liviu Ionescu <i...@livius.net>:
>
> 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
OpenOCD-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to