So when glasgow flashes some gateware to the fpga, it also runs some asyncio python code on the host machine to interact with it. Does it use some generic or bespoke protocol on usb, or does e.g. the uart applet make the device enumerate as a tty on the host machine? Not able to test atm. I ask, 'cause I am trying to figure out how easy it would be to get the jtag/swd open ocd applets/gateway to use another (much faster) driver. I imagine ftdi would not be too difficult since it's still basically just jiggling lines, but I don't think every singe transition would have to be a two syscall (one to write to the socket, another to send data over usb). There'd still be whatever syscall to send out data over usb , but that's fewer, plus I think a lot more could get done per. Of course, there could be more wins if the gateway were made smarter, so that it knew to e.g. do whatever scans without needing to have its hand held for each transition