Sign In

Don't have a Xilinx account yet?

  • Choose to receive important news and product information
  • Gain access to special content
  • Personalize your web experience on Xilinx.com

Create Account

Username

Password

Forgot your password?
XClose Panel
Xilinx Home
Reply
Visitor
jflinsb
Posts: 4
Registered: ‎03-14-2012
0
Accepted Solution

jtagloader64 on Windows 7 and ML605 board not loading program (despite otherwise working)

[ Edited ]

Using an ML605 board and a Windows 7/64b system, jtagloader64 isn't loading the program into the Virtex-6 (LX240T).

I've researched the issue across the posts, readme_firsts, docs, etc., and also upgraded to ISE 13.4.  My PATH and XILINX vars are set right (shown below) given Ken's note these are the root-cause of all jtag loader issues (to date).

The jtagloader64 is otherwise working well: the report & the cables are fine as shown in the text capture (below), the program correctly reports on the part but it DOES NOT load the program.  The assembled program that's compiled and loaded works fine, including incrementing the LEDs.  But the new program merely jumps past the first few instructions to avoid the "memory corruption bug" (not taking any chances) to simply "output" a static value to the LED port on the ML605 board.  Never happens, yet on the compiled program, it works fine.  That kind of verifies it's all mapped right, etc.

Have tried a myriad of tests to resolve.  The jtagloader64 dump is below along with the path and Xilinx variables.  Appreciate any guru wisdom :)

Thanks,

Jack

Text dump plus Win 7 environment variables (sorry, editor inserts spacing) ==>

------------------------------------------------------------------------

c:\project\z\s>jtagloader64 -l uart_control.hex

   \ \| |_  __ _  __ _  / /   ___   __ _  __| | ___ _ __

    \ \ __|/ _` |/ _` |/ /   / _ \ / _` |/ _` |/ _ \ '__|

 /\_/ / |_| (_| | (_| / /___| (_) | (_| | (_| |  __/ |

 \___/ \__|\__,_|\__, \____/ \___/ \__,_|\__,_|\___|_|

                 |___/

         JTAG Loader by Kris Chaplin, Xilinx UK

           Use the -h option if you need help

 

Info:Connecting to cable (Usb Port - USB21).

Info:Checking cable driver.

Info: Driver file xusb_emb.sys found.

Info: Driver version: src=1029, dest=1029.

Info: Driver windrvr6.sys version = 10.2.1.0.Info: WinDriver v10.21 Jungo (c) 19

97 - 2010 Build Date: Aug 31 2010 x86_64 64bit SYS 14:14:44, version = 1021.

Info: Cable PID = 0008.

Info: Max current requested during enumeration is 74 mA.

Info:Type = 0x0004.

Info: Cable Type = 3, Revision = 0.

Info: Setting cable speed to 3 MHz.

Info:Cable connection established.

Info:Firmware version = 1303.

Info:File version of C:/Xilinx/13.4/ISE_DS/ISE/data/xusb_xlp.hex = 1303.

Info:Firmware hex file version = 1303.

InfoLD file version = 0012h.

Info: PLD version = 0012h.

Info:Type = 0x0004.

Info:ESN option: 000013C812F201.

Infopen cable successfully

Infobtained cable lock

Info:Found 2 devices

Device 0: System_ACE_CF         [Bypass]

Device 1: XC6VLX240T            [FPGA with user registers]

Scan completed

AutoDetected FPGA target as Device 1

Detected that target device 1 is configured

 

Number of BlockRAMs in system  : 1

Maximum BlockRAM Data Width    : 18

Maximum BlockRAM Address Width : 11

 

BlockRAM : 0 Reset : 0 Address Width : 11

JTAG Loader has completed successfully

c:>echo %XILINX%

C:\Xilinx\13.4\ISE_DS\ISE

c:>PATH

PATH=C:\Windows\system32;C:\Windows;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Sony\VAIO Startup Setting Tool;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\QuickTime\QTSystemC:\Xilinx\13.4\ISE_DS\PlanAhead\bin;C:\Xilinx\13.4\ISE_DS\ISE\bin\nt64;C:\Xilinx\13.4\ISE_DS\ISE\lib\nt64;C:\Xilinx\13.4\ISE_DS\EDK\bin\nt64;C:\Xilinx\13.4\ISE_DS\EDK\lib\nt64;C:\Xilinx\13.4\ISE_DS\EDK\gnu\microblaze\nt64\bin;C:\Xilinx\13.4\ISE_DS\EDK\gnu\powerpc-eabi\nt64\bin;C:\Xilinx\13.4\ISE_DS\EDK\gnuwin\bin;C:\Xilinx\13.4\ISE_DS\common\bin\nt64;C:\Xilinx\13.4\ISE_DS\common\lib\nt64;C:\Xilinx\13.4\ISE_DS\common\lib\nt;C:\Xilinx\13.4\ISE_DS\ISE\lib\nt;C:\WINDOWS\system32;C:\Program Files (x86)\Common Files\Acronis\SnapAPI\;C:\OrCAD\OrCAD_16.5_Lite\tools\bin;C:\OrCAD\OrCAD_16.5_Lite\tools\specctra\bin;C:\OrCAD\OrCAD_16.5_Lite\tools\PSpice;C:\OrCAD\OrCAD_16.5_Lite\tools\PSpice\Library;C:\OrCAD\OrCAD_16.5_Lite\tools\Capture;C:\OrCAD\OrCAD_16.5_Lite\tools\fet\bin;C:\OrCAD\OrCAD_16.5_Lite\tools\pcb\bin;C:\OrCAD\OrCAD_16.5_Lite\OpenAccess\bin\win32\opt;

 

Xilinx Employee
chapman
Posts: 413
Registered: ‎09-05-2007
0

Re: jtagloader64 on Windows 7 and ML605 board not loading program (despite otherwise working)

Definitely something strange going on! There is no fundamental issues using JtagLoader64 with Win7 as after all that is what the ‘64’ version is supposed to do. You are using the ML605 which should be a known good hardware environment. Most of all, your log indicates that JtagLoader64 has found the USB cable and even found the one PicoBlaze memory of 2K instructions (11-bit address and 18-bit data). So that indicates everything is working so far.

 

However, what I do notice at the end of your log is that it just says ‘JTAG Loader has completed successfully’. This is what happens when you only execute the JtagLoader64 command without supplying any options. Again your log suggests that you did use the load option (just check that is a lower case ‘L’) but the implication is that for some reason the option was not seen by the  JtagLoader64. I suggest you try ‘JtagLoader64 –h’ and then the ‘-r’ command just to see if the command is even being invoked properly. Please don’t ask me why it shouldn’t, I’m just trying to think of something else that you can try!

Ken Chapman
Principal Engineer, Xilinx UK
Visitor
jflinsb
Posts: 4
Registered: ‎03-14-2012
0

Re: jtagloader64 on Windows 7 and ML605 board not loading program (despite otherwise working)

SOLVEDjtagloader64 issue when executed from a batch file.

The jtagloader64 program is picking up the "-t" and "-l" argument delimeters incorrectly when handed off from a batch file  -vs- from the dos command line.

 

Details:

Executing jtagloader64 from the command line using the following arguments:

* "-t1" for the 0-indexed 2nd device on the scan chain

* "-l" for the hex file to load

works great:

 

   c:\project\z\s>jtagloader64 –t1 –l u11.hex


But when the same line is invoked from a batch file, the jtagloader64 output shows the command line as:

   c:\project\z\s>jtagloader64 ût1 ûl u11.hex

in case it wasn't clear, note that the dashes are converted into û's -->

   c:\project\z\s>jtagloader64 ût1 ûl u11.hex

 

The jtagloader64 reports everything about the design correctly, but does not load the u11.hex or thus run it.

Duplicates perfectly (ow).  Batch files yielding efficiencies for long command-lines esp.with several arguments so kind of useful to have that work, but the bigger thing is just knowing why it was broke and a way to make it work so I could avoid 10 minute V6 recompiles.  Hope it helps others maybe not get as hit from the same issue.

 

Xilinx Employee
chapman
Posts: 413
Registered: ‎09-05-2007
0

Re: jtagloader64 on Windows 7 and ML605 board not loading program (despite otherwise working)

Note that when you see the following on your screen...

 

   c:\project\z\s>jtagloader64 ût1 ûl u11.hex

 

...that is the Win7 system displaying the command that it is executing and NOT a message coming out of JtagLoader64.

 

My guess is that you are writing batch files in an editor that is then writing out a file in an extended ASCII character set rather than standard ASCII. Try saving your batch file as plain text (possibly a ‘save as’ option in your editor).

Ken Chapman
Principal Engineer, Xilinx UK
Visitor
jflinsb
Posts: 4
Registered: ‎03-14-2012
0

Re: jtagloader64 on Windows 7 and ML605 board not loading program (despite otherwise working)

Ran a binary-to-ascii on the batch files and was dismayed to see the dashes "-" in the params were 0x96 rather than 0x2d as they should be.

 

Turns out that notepad creates the right dash (0x2d), but it will save a 0x96 dash as 0x96.  Following are the strings:

BAD STRING (0x96 dash)   :  jtagloader64 –t1 –l u11.hex

GOOD STRING (0x2d dash):  jtagloader64 -t1 -l u11.hex

 

Saving in notepad is no longer sufficient: one must watch the type of dash else jtagloader will reject it.

 

Ken, the idea to add the "no params" flag to the jtagloader is a good idea that will take the edge off of this type of problem and any other similar ones.  Thx!