jtagd JTAG chain broken on Ubuntu 19.04 only on logical cable 1
On Ubuntu releases post-16.04, I've always had a difficult or impossible time getting devices to program (MAX10-lite, DE2i-150, DE10-standard, etc). I've gone through all of the standard things (USB cables, ports, different machines, etc) and finally I decided that with Quartus 18.1.1 and Ubuntu 19.04 I figured I'd try to track down the root issue.
I figured it out, or at least a way to make it work.
If you run "quartus_pgm -l" you get a list of ports. What I've found is that whatever device is enumerated as 1 won't work, but the others works as expected. If I swap the devices to different ports, the broken JTAG chain error stays with the logical port, not the device.
Since it's less verbose, I'll demonstrate with the output of jtagconfig. I kill jtagd between the tests because it gets a bit confused about the device swap otherwise:
mstock@peach:~/projects/soc$ jtagconfig --enum
1) USB-Blaster [1-13.2]
Unable to read device chain - JTAG chain broken
2) USB-Blaster [1-13.4.1]
031050DD 10M50DA(.|ES)/10M50DC
mstock@peach:~/projects/soc$ ps agux | grep jtag
mstock 4916 1.4 0.0 35156 3468 ? S 12:46 0:01 jtagd --user-start --config /home/mstock/.jtagd.conf
mstock 4966 0.0 0.0 8856 908 pts/0 S+ 12:48 0:00 grep --color=auto jtag
mstock@peach:~/projects/soc$ kill 4916
mstock@peach:~/projects/soc$ jtagconfig --enum
1) USB-Blaster [1-13.2]
Unable to read device chain - JTAG chain broken
2) USB-Blaster [1-13.4.1]
028040DD EP4CGX150
Is anyone running Ubuntu 19.04 and not having any issues at all, or conversely, can any folks who have had issues with this confirm that this "fix" works?
I can submit a bug report to Intel if I can get some confirmation I'm not nuts.
[update]
I should also note that this is true even when I totally swap around USB ports - via a hub, direct to the host, etc. Whichever is enumerated at the top doesn't work, and the other one is fine.
Thanks,
Matt