Installing OpenOCD

From spiderboard.org
Jump to: navigation, search

Installing OpenOCD

  • OpenOCD Version >= 0.10 with the libftdi driver is required.
  • If your package distributor provides this version, use your package manager to install OpenOCD:
  • For Debian based distributions the terminal command is:
    $ sudo apt install openocd
  • If the package version does not work, it is possible to compile OpenOCD from source (github).

Shell Script For Easier Use

A shell script can be used that starts OpenOCD, runs the svf file and shuts down afterwards, allowing conveniently programming the FPGA using a single terminal command.

  • Create the file mx10spider_prog under .local/bin in your home directory and insert the content below.
  • If not already done, add .local/bin to the path variable.
    • Open .profile in your home directory with a text editor and add the line:
      PATH=".local/bin:$PATH"
    • Logout and login again or run the following command to reload the path variable:
      $ source ~/.profile
  • Open a terminal and add the executable flag.
    $ chmod +x .local/bin/mx10spider_prog
  • You are now ready to program the fpga using the command:
    $ mx10spider_prog <path/to/file.svf>
  • If your project is for example located under /opt/quartus_projects/Example, use one of the following commands:
    $ mx10spider_prog /opt/quartus_projets/Example/output_files/Example.svf
    $ mx10spider_prog /opt/quartus_projets/Example/output_files/Example_pof.svf
    for programming the .sof or .pof file respectively.


mx10spider_prog:

#!/bin/sh

me=$(basename $0)

if [ -f "$1" ]; then

    openocd -c "interface usb_blaster" -c "usb_blaster_lowlevel_driver ftdi" -c "usb_blaster_vid_pid 0x04d8 0xefd0" -c "jtag newtap max10 tap -irlen 10 -expected-id 0x31810dd -expected-id 0x318a0dd \
	-expected-id 0x31820dd -expected-id 0x31830dd -expected-id 0x31840dd \
	-expected-id 0x318d0dd -expected-id 0x31850dd -expected-id 0x31010dd \
	-expected-id 0x310a0dd -expected-id 0x31020dd -expected-id 0x31030dd \
	-expected-id 0x31040dd -expected-id 0x310d0dd -expected-id 0x31050dd" -c "init" -c "svf $1 progress" -c "shutdown"

elif [ "$1" = "" ]; then

	echo -e "\tError: No file specified.\n\tUsage: $me <file.svf>"

elif [ "$1" = "-h" ] || [ "$1" = "--help" ]; then

	echo -e "\tUtility script to start openocd and run an svf file.\n\tUsage: $me <file.svf>"

else

    echo -e "\tFile not found: $1\n\tUsage: $me <file.svf>"

fi

MX10 Hardware Issue

Due to a hardware issue on the MX10, in order to get PIC JTAG programming through OpenOCD to work, one has to desolder four resistors on the module.

One resistor on the top side of the module, marked with a red cross.
Three resistors on the bottom side of the module, each marked with a red cross.