|
From: Paul F. <fer...@gm...> - 2025-10-22 16:17:58
|
Hi, On Sun, Oct 19, 2025 at 11:15:32PM +0000, Neil Shipp wrote: > I've noticed that a number of JTAG drivers insert a transition to TAP_IRPAUSE or > TAP_DRPAUSE in their _execute_scan functions. The OpenJTAG, armjtagew, > buspirate, usbprog, and vsllink all do this. Other drivers such as ftdi bypass > the pause state in certain conditions. I believe the reason behind it is to > leave the JTAG state machine in a stable state between operations. Removing the > mandatory pause for long operations can give a non-trivial performance boost. Is > there any other reason to insert the pause state I'm not aware of? Looks like it's an artifact of very early years of development, see e.g. 4411c2643e41d023a1909b1040361912422be6c0 which supports your idea that developers thought every scan should end in a stable state. All the drivers you mentioned are very rarely used for JTAGing these days and there's hardly much motivation anyone has to try to improve their performance. I see I removed that code from J-Link driver 10 years ago: ae8cdc139e12a851107e8f882c5a166a21103ad4 hah :) so it's not just a performance issue but also a problem for FPGA/CPLD interactions. -- Be free, use free (http://www.gnu.org/philosophy/free-sw.html) software! mailto:fer...@gm... |