jtag_init() in jtag_tap.c uses jtag_set_current_state(STATE_TEST_LOGIC_RESET) which sets the microcontroller's understanding of the state to Test-Logic-Reset without actually ensuring that the FPGA's JTAG TAP is in that state. This is worked around by calling jtag_go_to_state(STATE_TEST_LOGIC_RESET) immediately after calling jtag_init() (which is done from the host side with vendor request REQUEST_JTAG_GO_TO_STATE after REQUEST_JTAG_START) every time JTAG is initialized.
This is arguably a bug, but it needs further investigation and test.
jtag_init()
injtag_tap.c
usesjtag_set_current_state(STATE_TEST_LOGIC_RESET)
which sets the microcontroller's understanding of the state to Test-Logic-Reset without actually ensuring that the FPGA's JTAG TAP is in that state. This is worked around by callingjtag_go_to_state(STATE_TEST_LOGIC_RESET)
immediately after callingjtag_init()
(which is done from the host side with vendor requestREQUEST_JTAG_GO_TO_STATE
afterREQUEST_JTAG_START
) every time JTAG is initialized.This is arguably a bug, but it needs further investigation and test.