<PaulFertser>
karlp1: I'd say yes, as it's breaking assumptions of the flash driver and do not ensure consistent hardware state.
slobodan has joined #openocd
manawyrm has joined #openocd
<manawyrm>
Hey folks :)
<manawyrm>
I've been working with OpenOCDs remote-bitbang driver over the last couple of days very successfully, but the hardware I'm using also has support to do JTAG natively, which would increase performance pretty significantly, I'd hope.
<manawyrm>
Is there a similar TCP (or otherwise networked) protocol in OpenOCD that I could implement to get a higher layer JTAG interface?
<manawyrm>
(at least higher layer than direct bitbanging)
<manawyrm>
As my performance bottleneck is between the TCP receiver and the device under test, I almost thought about implementing a custom JTAG "sink" in software, parsing the bitbanging commands back into instruction/data and so on, but that sounds overly complex and fragile
<clever>
manawyrm: was just asking this very question a few days ago!
<karlp1>
potentially better than remote bitbang, potentially just another square peg in a round hole?
<manawyrm>
karlp1: yes, indeed, that already looks better :)
<manawyrm>
I'll have to check the implementation of the JTAG peripheral and see if I can map this properly, but removing the multiple writes required for a single state transition should already improve speeds by orders of magnitude
d_olex has joined #openocd
ericonr has quit [Ping timeout: 264 seconds]
ericonr has joined #openocd
urja has quit [Read error: Connection reset by peer]
urja has joined #openocd
Haohmaru has quit [Quit: saionara]
nerozero has quit [Ping timeout: 252 seconds]
rgr has joined #openocd
rgr has quit [Client Quit]
rgr has joined #openocd
rgr has quit [Client Quit]
rgr has joined #openocd
rgr has quit [Quit: ERC 5.6.1-git (IRC client for GNU Emacs 31.0.50)]
rgr has joined #openocd
rgr has quit [Client Quit]
rgr has joined #openocd
rgr has quit [Quit: ERC 5.6.1-git (IRC client for GNU Emacs 31.0.50)]
rgr has joined #openocd
rgr has quit [Quit: ERC 5.6.1-git (IRC client for GNU Emacs 31.0.50)]
PlasmaHH has quit [Ping timeout: 264 seconds]
rgr has joined #openocd
rgr has quit [Remote host closed the connection]
Deneb has joined #openocd
Deneb has quit [Client Quit]
<clever>
manawyrm: one thought i came to, the arm jtag protocol involves sending a 35bit command to the cpu, and receiving a 35bit reply back
<clever>
and within that reply, is a WAIT flag, meaning the 2nd last command is still busy, the last command you just gave it wasnt accepted, and to discard the reply you saw WAIT in
<clever>
so you can just keep repeating that command until its accepted
<clever>
so in theory, openocd can fire off a list of commands, saying to write something to the IR register, or to write a series of things to the special 35bit DR register
<clever>
and then the remote device can walk that whole list of commands, and retry when needed, building up a list of 35bit replies
<clever>
and once its done, fire the entire set of replies back off to openocd