Still trying to get my IXP422 target board working...

I have compared the debug output (with -d3 and _DEBUG_JTAG_IO_ enabled) of 
someone else's Olimex JTAG-Tiny, which does work, with the output from 
both an IAR J-Link adapter and the USBprog adapter, which don't work. The 
target boards were identical models, though not actually the same physical 
board.

The symptoms are that the adapter will initialise OK, but toward the end 
of a 'reset halt', after the 2030 TCK cycles, and after loading the Mini 
I-cache, the DCSR write is OK, but the first capture from the TX register 
fails.

This can only be in the adapter-specific code, since some adapters work 
and others don't, and incidentally the J-Link code was derived from the 
USBprog code, according to its headers. I wonder if the particular tap 
state transitions that the J-Link goes through cause a bit to be slipped 
somehow? (from the traces below, the Olimex show tap_set_state(IDLE) 
before the DR scan, but the J-Link shows DR_SHIFT, DR_PAUSE, IDLE)

I am now beyond the extent of my knowledge, and would appreciate some 
assistance, particularly from the writers of the FT2232 and J-Link adapter 
code. One of the things confusing me I think is the reporting of queued 
state transitions, and not necessary when they get sent to target.

Many thanks in advance for any help.


Olimex-JTAG-Tiny, on USR8200, IXP422 rev A0 (works)
---------------------------------------------------
Debug: 3710 2653 target.c:3930 jim_target(): target names 
Debug: 3711 2653 jtag.c:1244 jtag_build_buffer(): num_fields: 1
Debug: 3712 2653 jtag.c:1256 jtag_build_buffer(): fields[0].out_value[7]: 0x10
Debug: 3713 2653 ft2232.c:607 ft2232_add_scan(): tap_set_state(IRSHIFT)
Debug: 3714 2653 ft2232.c:735 ft2232_add_scan(): tap_set_state(IDLE)
Debug: 3715 2653 ft2232.c:1465 ft2232_execute_queue(): IR scan, 7 bits, end in 
IDLE
Debug: 3716 2653 ft2232.c:576 ft2232_add_pathmove(): tap_set_state(DRSELECT)
Debug: 3717 2653 ft2232.c:576 ft2232_add_pathmove(): tap_set_state(DRCAPTURE)
Debug: 3718 2653 ft2232.c:576 ft2232_add_pathmove(): tap_set_state(DREXIT1)
Debug: 3719 2653 ft2232.c:576 ft2232_add_pathmove(): tap_set_state(DRPAUSE)
Debug: 3720 2653 ft2232.c:576 ft2232_add_pathmove(): tap_set_state(DREXIT2)
Debug: 3721 2653 ft2232.c:576 ft2232_add_pathmove(): tap_set_state(DRSHIFT)
Debug: 3722 2653 ft2232.c:1419 ft2232_execute_queue(): pathmove: 6 states, end 
in DRSHIFT
Debug: 3723 2653 jtag.c:1244 jtag_build_buffer(): num_fields: 3
Debug: 3724 2653 ft2232.c:735 ft2232_add_scan(): tap_set_state(IDLE)
Debug: 3725 2653 ft2232.c:1465 ft2232_execute_queue(): DR scan, 36 bits, end in 
IDLE
Debug: 3726 2655 jtag.c:1288 jtag_read_buffer(): fields[0].in_value[7]: 0x01
Debug: 3727 2655 jtag.c:1288 jtag_read_buffer(): fields[0].in_value[3]: 0x03
Debug: 3728 2655 jtag.c:1288 jtag_read_buffer(): fields[1].in_value[32]: 
0x00000193
Debug: 3729 2655 jtag.c:1288 jtag_read_buffer(): fields[2].in_value[1]: 0x00
Debug: 3730 2655 jtag.c:1244 jtag_build_buffer(): num_fields: 1
Debug: 3731 2655 jtag.c:1256 jtag_build_buffer(): fields[0].out_value[7]: 0x09
Debug: 3732 2655 ft2232.c:607 ft2232_add_scan(): tap_set_state(IRSHIFT)
Debug: 3733 2655 ft2232.c:735 ft2232_add_scan(): tap_set_state(DRPAUSE)
Debug: 3734 2655 ft2232.c:1465 ft2232_execute_queue(): IR scan, 7 bits, end in 
DRPAUSE
Debug: 3735 2655 jtag.c:1244 jtag_build_buffer(): num_fields: 3
Debug: 3736 2655 jtag.c:1256 jtag_build_buffer(): fields[0].out_value[3]: 0x00
Debug: 3737 2655 jtag.c:1256 jtag_build_buffer(): fields[2].out_value[1]: 0x00
Debug: 3738 2655 ft2232.c:612 ft2232_add_scan(): tap_set_state(DRSHIFT)
Debug: 3739 2655 ft2232.c:735 ft2232_add_scan(): tap_set_state(DRPAUSE)
Debug: 3740 2655 ft2232.c:1465 ft2232_execute_queue(): DR scan, 36 bits, end in 
DRPAUSE
Debug: 3741 2657 jtag.c:1288 jtag_read_buffer(): fields[0].in_value[7]: 0x01
Debug: 3742 2657 jtag.c:1288 jtag_read_buffer(): fields[0].in_value[3]: 0x02
Debug: 3743 2657 jtag.c:1288 jtag_read_buffer(): fields[1].in_value[32]: 
0xC0010000
Debug: 3744 2657 jtag.c:1288 jtag_read_buffer(): fields[2].in_value[1]: 0x00
===============================================================================
J-Link, on USR8200, IXP422 rev A0 (fails)
-----------------------------------------
Debug: 5020 51449 target.c:3930 jim_target(): target names 
Debug: 5021 51449 jlink.c:193 jlink_execute_queue(): scan end in 8
Debug: 5022 51449 jtag.c:1244 jtag_build_buffer(): num_fields: 1
Debug: 5023 51449 jtag.c:1256 jtag_build_buffer(): fields[0].out_value[7]: 0x10
Debug: 5024 51449 jlink.c:201 jlink_execute_queue(): scan input, length = 7
Debug: 5025 51449 jlink.c:360 jlink_state_move(): tap_set_state(IRSHIFT)
Debug: 5026 51449 jlink.c:436 jlink_scan(): tap_set_state(IRPAUSE)
Debug: 5027 51449 jlink.c:360 jlink_state_move(): tap_set_state(IDLE)
Debug: 5028 51449 jlink.c:187 jlink_execute_queue(): pathmove: 6 states, end in 
3
Debug: 5029 51449 jlink.c:383 jlink_path_move(): tap_set_state(DRSELECT)
Debug: 5030 51449 jlink.c:383 jlink_path_move(): tap_set_state(DRCAPTURE)
Debug: 5031 51449 jlink.c:383 jlink_path_move(): tap_set_state(DREXIT1)
Debug: 5032 51449 jlink.c:383 jlink_path_move(): tap_set_state(DRPAUSE)
Debug: 5033 51449 jlink.c:383 jlink_path_move(): tap_set_state(DREXIT2)
Debug: 5034 51449 jlink.c:383 jlink_path_move(): tap_set_state(DRSHIFT)
Debug: 5035 51449 jlink.c:193 jlink_execute_queue(): scan end in 8
Debug: 5036 51449 jtag.c:1244 jtag_build_buffer(): num_fields: 3
Debug: 5037 51449 jlink.c:201 jlink_execute_queue(): scan input, length = 36
Debug: 5038 51449 jlink.c:360 jlink_state_move(): tap_set_state(DRSHIFT)
Debug: 5039 51449 jlink.c:436 jlink_scan(): tap_set_state(DRPAUSE)
Debug: 5040 51449 jlink.c:360 jlink_state_move(): tap_set_state(IDLE)
Debug: 5041 51450 jlink.c:864 jlink_usb_write(): jlink_usb_write, out_length = 
24, result = 24
Debug: 5042 51454 jlink.c:878 jlink_usb_read(): jlink_usb_read, result = 10
Debug: 5043 51455 jlink.c:892 jlink_usb_read_emu_result(): 
jlink_usb_read_result, result = 1
Debug: 5044 51455 jlink.c:703 jlink_tap_execute(): pending scan result, length 
= 7
Debug: 5045 51455 jtag.c:1288 jtag_read_buffer(): fields[0].in_value[7]: 0x01
Debug: 5046 51455 jlink.c:703 jlink_tap_execute(): pending scan result, length 
= 36
Debug: 5047 51455 jtag.c:1288 jtag_read_buffer(): fields[0].in_value[3]: 0x05
Warn : 5048 51455 jtag.c:1350 jtag_check_value(): TAP ixp42x.cpu:
Warn : 5049 51455 jtag.c:1360 jtag_check_value(): value captured during scan 
didn't pass the requested check:
Warn : 5050 51455 jtag.c:1362 jtag_check_value(): captured: 0x05 check_value: 
0x02 check_mask: 0x06
Warn : 5051 51455 jtag.c:1300 jtag_read_buffer(): in_handler: with "in_value", 
mismatch in SDR
Debug: 5052 51455 jtag.c:1288 jtag_read_buffer(): fields[1].in_value[32]: 
0x00000003
Debug: 5053 51455 jtag.c:1288 jtag_read_buffer(): fields[2].in_value[1]: 0x00
Error: 5054 51455 xscale.c:502 xscale_read_tx(): JTAG error while reading TX
User : 5055 51455 xscale.c:1013 xscale_poll(): error while polling TX register, 
reset CPU
Debug: 5056 51455 target.c:696 target_call_event_callbacks(): target event 4 
(early-halted)
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to