Closed pamaury closed 1 year ago
Thanks for creating this issue and the workaround in #18051, @pamaury :+1:
I was wondering if tdo
gets sampled while undriven by the debug module but pulled up somehow? In all but the Shift states (Shift-IR and Shift-DR), the DMI JTAG TAP indicates that tdo
should not be driven by assigning tdo_oe_o = 0
. I don't remember off-hand how that is implemented on the FPGA. In any case, OpenOCD should not sample tdo
outside the shift states -- do we know if something could be off there?
@pamaury @andreaskurth @timothytrippel @moidx
This seems to be in the same category as #17729.
Since that issue has been root caused and will be fixed by #18554, shall we close this (or defer to M2.5.2 to double check whether it can be closed)?
Yes I believe we can close this when #18554 merges. Also @pamaury we probably don't need your OpenOCD patch anymore once #18554 merges correct?
The final proper fix (appart from #18554) is #18599
@pamaury can this be closed now?
Yes.
Description
This issue has been investigated as part of #17729. In short, when issuing an abstract commands to read a register, and in yet-to-be-understood circumstances, the rv_dm module seems to get stuck and the jtag output is stuck to 1. It is still unclear which components gets stuck exactly, it looks like the DMI might be working but the DM is not responding for a while so it is just sending back some 1s. A typical error trace looks like this:
See #17729 for more traces.
When this happens, it looks like waiting for the DM to get unstuck and resetting the DMI allows debugging to continue.