Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
11 years ago

USB-Blaster: Unable to read device chain - JTAG chain broken

I'm using Ubuntu14.04 and quartus14.1. When I run jtagconfig, I get:

$ jtagconfig

1) USB-Blaster [3-6]

Unable to read device chain - JTAG chain broken

The hardware is correct because I can read the JTAG chain using a old PC.

Some extra information:

$ cat /etc/udev/rules.d/51-usbblaster.rules# USB-Blaster# # from http://www.fpga-dev.com/altera-usb-blaster-with-ubuntu/# For Altera USB-Blaster permissions.

SUBSYSTEM=="usb",

ENV{DEVTYPE}=="usb_device",

ATTR{idVendor}=="09fb",

ATTR{idProduct}=="6001",

MODE="0666",

NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}",

RUN+="/bin/chmod 0666 %c"

$ ls -l /etc/jtagd/pgm_parts.txt

-rw-r--r-- 1 root root 921110 Jan 12 12:54 /etc/jtagd/pgm_parts.txt

I have also re-run:

$ sudo udevadm control --reload

But nothing help!

Any tips?

14 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I find the issue: The USB-blaster must first be powered from the board and then connected to the PC.

    So the procedure step by step:

    - connect the USB-Blaster to your board

    - power-on the board

    - plug the USB cable in the PC

    Doing so, jtagconfig is working:

    $ jtagconfig

    1) USB-Blaster [3-6]

    4BA00477 SOCVHPS

    02D120DD 5CSE(BA5|MA5)/5CSTFD5D5/..
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Well, even following this procedure doesn't work 100%.

    It's look like running quartus_hps first help jtagconfig working:

    $ quartus_hps -c1 -o PV -a 0x0 -s 262144 ./preloader-mkpimage.bin

    The conditions to make jtagconfig working are not clear to me.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Charly78,

    Disregard previous. It is not working after all. Not only that, Quartus keeps crashing. Believe the Ubutu machine is going back to System 76, and I'm going back to Windows.
  • SThor8's avatar
    SThor8
    Icon for Occasional Contributor rankOccasional Contributor

    Hi

    I have had the same problem on Ubuntu 18.04 but got it working

    Try to enter this in a terminal window

    killall jtagd
    jtagd --user-start

    Then my jtagconfig return this

    intelFPGA/18.1/quartus/bin/jtagconfig 
    1) USB-Blaster [1-5]
      031050DD   10M50DA(.|ES)/10M50DC

    Wait 10 seconds before you try to program the FPGA so the restart takes effect.

    Beside creating the rule (as i guess you have done) /etc/udev/rules.d/51-usbblaster.rules

    I also did

    sudo apt-get install libudev-dev

    But I am not sure if that was necessary

    Note that you have to redo

    killall jtagd
    jtagd --user-start

    Every time it loose connection, this is noway a good solution but at least you can now program it

    Regards

    • jobonono's avatar
      jobonono
      Icon for New Contributor rankNew Contributor

      Hi @SThor8

      I tried implementing your solution on my Ubuntu 20.04 machine, but I get an

      Command 'jtagd' not found

      error.

      Any suggestions on what to do?

      I can get the USB-blaster to work very sporadically, fiddling with plugging the usb cable in/out of the pc and powering the FPGA on/off

      • SThor8's avatar
        SThor8
        Icon for Occasional Contributor rankOccasional Contributor

        I do nto have the 'jtagd' command either but 'killall jtagd' works

        I do not know why it is so

  • Hi,

    if anyone encountered same problem, for me worked ( i'm using Ubuntu 20.4 and Quartus Prime Lite 21.1 )

    ->create new file in etc/udev/rules.d named 51-usbblaster.rules ( for me worked: sudo gedit 51-usbblaster.rules)

    ->copy this:

    # USB Blaster
    SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6001", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"
    SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6002", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"
    SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6003", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"

    # USB Blaster II
    SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6010", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"
    SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6810", MODE="0666", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", RUN+="/bin/chmod 0666 %c"

    paste to file 51-usbblaster.rules , save and restart your computer

    ->if you don't have, install:

    sudo apt-get install libxext6:i386
    sudo apt-get install libxtst6:i386
    sudo apt-get install libxi6:i386

    ->and install 32-bits version of libudev library

    sudo apt-get install libudev1:i386

    sudo ln -sf /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0

    then it should work( for me it works )

    Hope it helps someone.

    Regrads

    Halmon Celman

  • rthomp's avatar
    rthomp
    Icon for New Contributor rankNew Contributor

    My problem stemmed from UDEV rules. Below are my steps to circumvent the issue.

    Only need to do once

    Copy the following into /etc/udev/rules.d/92-usbblaster.rules simply copy the attached rules as /etc/udev/rules.d/92-usbblaster.rules

    # For Altera USB-Blaster permissions:

    # USB-Blaster
    SUBSYSTEM=="usb", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6001", MODE="0666", GROUP="plugdev"
    SUBSYSTEM=="usb", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6002", MODE="0666", GROUP="plugdev"
    SUBSYSTEM=="usb", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6003", MODE="0666", GROUP="plugdev"

    # USB-Blaster II
    SUBSYSTEM=="usb", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6010", MODE="0666", GROUP="plugdev"
    SUBSYSTEM=="usb", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6810", MODE="0666", GROUP="plugdev"

    (I read that 92 mattered somewhere as it needed to be larger than one of the other rule numbers. I understand that Intel claims 51 should be sufficient. Please correct me here if someone knows more about this.)

    You will have to do this again when necessary

    1. Run service udev restart

    2. Replug in all associated USB devices.
    After a few retries, I realized the USB-C adapter
    needed to be reinserted along with the the USB Blaster

  • Pouya1's avatar
    Pouya1
    Icon for New Contributor rankNew Contributor

    I have the same problem for an Intel Stratix 10 MX FPGA installed in a workstation. The board is powered up using an 8-pin AUX connector (in addition to pcie slot). I'm running Ubuntu 18.04 LTS. A couple of days ago, when I was running jtagconfig everything worked perfectly (I could see the device name and jtag chain was also correct). But after a few days (I didnt touch anything or any commands or even I didnt program the fpga) when I entered the same command, jtag chain was broken:

    1) Intel Stratix 10 MX FPGA Development Kit [1-14]

    Unable to read device chain - JTAG chain broken

    I tried all suggestions here in this forum, but none was helpful. I would appreciate it if you could help me with this.

    Thank you!