diff options
Diffstat (limited to 'tools')
| -rwxr-xr-x | tools/impact_jtag_programmer.sh | 148 | 
1 files changed, 0 insertions, 148 deletions
| diff --git a/tools/impact_jtag_programmer.sh b/tools/impact_jtag_programmer.sh deleted file mode 100755 index df563da14..000000000 --- a/tools/impact_jtag_programmer.sh +++ /dev/null @@ -1,148 +0,0 @@ -#!/bin/bash -# - -### Helper functions ########################################## -function help { -	cat <<EOHELP - -Usage: impact_jtag_programmer.sh [--help|-h] [--impact-path=<PATH>] --fpga-path=<FPGA Image File> - --h             - Shows this. ---impact-path  - Path to the iMPACT binary (if not already in PATH). -                 Often something like /opt/Xilinx/14.4/ISE_DS/ISE/bin/lin64/impact ---fpga-path    - Path to the FPGA image. ---nipcie       - When this option is set, this script will fail if it was unable -                 to stop the NI RIO USRP PCIe driver. - -This script uses Xilinx iMPACT to reprogram the FPGA through the USB JTAG connector. -You can use this to unbrick USRP X3x0 devices. - -EOHELP -} - -### Go, go, go! ############################################### -echo "=======================================" -echo " Copyright 2014 Ettus Research LLC" -echo "" -echo " JTAG Programming Tool" -echo "=======================================" -echo "" - -IMPACTPATH="impact" # This'll work if impact is in $PATH -FPGAIMG="" -FORCENIPCIECHECK=0 - -# Go through cmd line options -for i in "$@" -do -case $i in -    -h|--help) -        help -        exit -        ;; -    --impact-path=*) -    IMPACTPATH="${i#*=}" -    ;; -    --fpga-path=*) -    FPGAIMG="${i#*=}" -    ;; -    --nipcie) -        FORCENIPCIECHECK=1 -        ;; -    *) -        echo Unrecognized option: $i -        echo -        help -        exit -        break -        ;; -esac -done - -# Test impact binary is available -IMPACTEXECUTABLE=`which $IMPACTPATH` -if [ ! $? -eq 0 ]; then -    echo "ERROR: Cannot find 'impact' executable. Make sure you have iMPACT installed" -    echo "and that it is in your PATH, or use the --impact-path option to provide the" -    echo "location of the 'impact' executable." -    exit 1 -fi - -# Test the FPGA image file is readable -if [ -z $FPGAIMG ]; then -    echo "ERROR: No FPGA image file provided." -    exit 1 -fi -if [ ! -r $FPGAIMG ]; then -    echo "ERROR: Can't read the FPGA image file ($FPGAIMG)." -    exit 1 -fi - -# Test if we need to stop PCIe -NIUSRPRIOPCIE=`which niusrprio_pcie` -HASNIUSRPRIOPCIE=$? -if [ ! $HASNIUSRPRIOPCIE -eq 0 -a $FORCENIPCIECHECK -eq 1 ]; then -    echo "ERROR: Cannot find the niusrprio_pcie executable. Make sure it is in your PATH." -    exit 1 -fi - -NIUSRPRIOWASLOADED=0 -# If we do, check if we can run niusrprio_pcie -if [ $HASNIUSRPRIOPCIE -eq 0 ]; then -    NIUSRPRIOSTATUSOUTPUT=`niusrprio_pcie status` -    NIUSRPRIORETVAL=$? -    if [ ! $NIUSRPRIORETVAL -eq 0 ]; then -        echo "ERROR: Can't run 'niusrprio_pcie status'. Maybe you forgot to use sudo?" -        exit $NIUSRPRIORETVAL -    fi -    NIUSRPRIOSTATUSOUTPUTGREP=`niusrprio_pcie status | grep usrp` -    if [ ! -z "$NIUSRPRIOSTATUSOUTPUTGREP" ]; then -        NIUSRPRIOWASLOADED=1 -    fi -fi -if [ $NIUSRPRIOWASLOADED -eq 1 ]; then -    echo "==== Stopping nisurprio drivers... " -    niusrprio_pcie stop -    NIUSRPRIORETVAL=$? -    if [ ! $NIUSRPRIORETVAL -eq 0 ]; then -        echo "ERROR: Can't run 'niusrprio_pcie stop'. Maybe you forgot to use sudo?" -        exit $NIUSRPRIORETVAL -    else -        echo "Done." -    fi -fi - -# Create batch file -CMD_PATH=`mktemp XXXXXXXX.impact.cmd` -echo "==== Generating impact batch file ${CMD_PATH}..." -echo "setmode -bscan" > ${CMD_PATH} -echo "setcable -p auto" >> ${CMD_PATH} -echo "addDevice -p 1 -file ${FPGAIMG}" >> ${CMD_PATH} -echo "program -p 1" >> ${CMD_PATH} -echo "quit" >> ${CMD_PATH} - -# Run impact -echo "==== Running impact -- loading ${FPGAIMG} into the FPGA..." -${IMPACTEXECUTABLE} -batch ${CMD_PATH} -RETVAL=$? -if [ ! $RETVAL -eq 0 ]; then -    echo "ERROR: Programming failed. Check output above for hints. Maybe you forgot to use sudo?" -else -    echo "==== Programming complete! ==============" -fi - -# Remove batch file -rm $CMD_PATH -if [ $NIUSRPRIOWASLOADED -eq 1 ]; then -    echo "==== Re-starting nisurprio drivers... " -    niusrprio_pcie start -    NIUSRPRIORETVAL=$? -    if [ ! $NIUSRPRIORETVAL -eq 0 ]; then -        echo "WARNING: nisusrprio drivers were running before, but could not be reloaded after flashing." -        echo "This is usually not a problem with the FPGA image burning." -    fi -fi - -exit $RETVAL - -# C'est tout | 
