Forum Discussion

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

Programming DE1-SoC FPGA only from Quartus Prime Lite Edition Ubuntu 16.04

Hello, I am trying to simply program my CycloneV FPGA on the DE1-SoC board from Quartus Prime Lite in Ubuntu 16.04. I cannot seem to get it to work. The user guide says to do an auto-detect from the hardware programmer but the option is greyed out.

https://alteraforum.com/forum/attachment.php?attachmentid=15301&stc=1

I have also changed the USB configs in /etc/udev/rules.d/90-usbblaster.rules

# USB-Blaster

BUS=="usb", SYSFS{idVendor}=="09fb", SYSFS{idProduct}=="6001", MODE="0666"

BUS=="usb", SYSFS{idVendor}=="09fb", SYSFS{idProduct}=="6002", MODE="0666"

BUS=="usb", SYSFS{idVendor}=="09fb", SYSFS{idProduct}=="6003", MODE="0666"

# USB-Blaster II

BUS=="usb", SYSFS{idVendor}=="09fb", SYSFS{idProduct}=="6010", MODE="0666"

BUS=="usb", SYSFS{idVendor}=="09fb", SYSFS{idProduct}=="6810", MODE="0666"

I still can not seem to find a way to get this thing programmed.

15 Replies

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

    jfrye@jfrye-Inspiron-5547:~$ sudo /home/jfrye/Quartus/quartus/bin/jtagconfig

    [sudo] password for jfrye:

    No JTAG hardware available

    Still nothing

    Did some more investigating and saw this

    jfrye@jfrye-Inspiron-5547:~$ lsusb

    Bus 001 Device 005: ID 0bda:5754 Realtek Semiconductor Corp.

    Bus 001 Device 004: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller

    Bus 001 Device 003: ID 8087:07dc Intel Corp.

    Bus 001 Device 009: id 09fb:6810 Altera

    Bus 001 Device 002: ID 8087:8000 Intel Corp.

    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

    Bus 002 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver

    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    jfrye@jfrye-Inspiron-5547:~$ dmesg | tail

    [19384.983330] wlp2s0: authenticate with a0:ab:1b:75:f8:46

    [19384.985620] wlp2s0: send auth to a0:ab:1b:75:f8:46 (try 1/3)

    [19384.987823] wlp2s0: authenticated

    [19384.988216] wlp2s0: associate with a0:ab:1b:75:f8:46 (try 1/3)

    [19384.992448] wlp2s0: RX AssocResp from a0:ab:1b:75:f8:46 (capab=0x431 status=0 aid=2)

    [19385.003832] wlp2s0: associated

    [19385.003881] IPv6: ADDRCONF(NETDEV_CHANGE): wlp2s0: link becomes ready

    [19411.895662] usb 1-1.3: new high-speed USB device number 9 using ehci-pci

    [19412.004477] usb 1-1.3: New USB device found, idvendor=09fb, idproduct=6810

    [19412.004481] usb 1-1.3: New USB device strings: Mfr=0, Product=0, SerialNumber=0

    That looks promising but I am not sure what exactly I have to do to make Quartus recognize the device is present to program it
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Then it's not a permission problem. I'm using Gentoo, but my USB blasters are identified by their name, e.g.

     usb 1-2: new high-speed USB device number 5 using ehci-pci
     usb 1-2: New USB device found, idVendor=09fb, idProduct=6010
     usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
     usb 1-2: Product: CV SoCKit
     usb 1-2: Manufacturer: Altera
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Unless there was a stale jtagd process left over when you were running as user jfrye.

    To rule out this you could try

    sudo killall -9 jtagd
    sudo /home/jfrye/Quartus/quartus/bin/jtagconfig
    
    If that does not detect anything it might be related to the FTDI driver. Perhaps somebody with a Ubuntu 16.04 system have some input...
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I have the answer. I will provide my files

    /etc/udev/rules.d/51-usbblaster.rules

    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"

    # USB-Blaster

    # BUS=="usb", SYSFS{idVendor}=="09fb", SYSFS{idProduct}=="6001", MODE="0666"

    # BUS=="usb", SYSFS{idVendor}=="09fb", SYSFS{idProduct}=="6002", MODE="0666"

    # BUS=="usb", SYSFS{idVendor}=="09fb", SYSFS{idProduct}=="6003", MODE="0666"

    # USB-Blaster II

    # BUS=="usb", SYSFS{idVendor}=="09fb", SYSFS{idProduct}=="6010", MODE="0666"

    # BUS=="usb", SYSFS{idVendor}=="09fb", SYSFS{idProduct}=="6810", MODE="0666"

    /etc/udev/rules.d/altera-usb-blaster.rules

    ATTR{idVendor}=="09fb", ATTR{idProduct}=="6001", MODE="666"

    I also copied pgm_parts.txt into the bin directory, which also has jtagd. I then ran jtagd. After that everything worked
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Glad you got it working. I would assume killing jtagd and running jtagconfig as root would have detected the USB blaster since all the udev rules are doing is changing the permissions to 666.