05-06-2014 12:24 PM
I would like to get documentation on the command line options for hw_server.
Typing hw_server -help lists the following:
Usage: agent [OPTION]...
Start Target Communication Framework agent.
-d run in daemon mode (output is sent to system logger)
-L<file> enable logging, use -L- to send log to stderr
-l<level> set log level, the level is comma separated list of:
alloc memory allocation and deallocation (0x1)
eventcore main event queue (0x2)
waitpid waitpid() events (0x4)
events low-level debugger events (0x8)
protocol communication protocol (0x20)
context debug context actions (0x40)
children debug context children (0x10)
discovery discovery (0x80)
asyncreq async I/O (0x100)
proxy proxy state (0x200)
tcflog proxy traffic (0x400)
elf ELF reader (0x800)
lua LUA interpreter (0x1000)
stack stack trace service (0x2000)
plugin plugins (0x4000)
shutdown shutdown of subsystems (0x8000)
-s<url> set agent listening port and protocol, default is tcp::3121;Name=Xilinx Hardware Server
-S print server properties in Json format to stdout
-I<idle-seconds> exit if are no connections for the specified time
-q do not display version information on startup
--init=<file> evaluate initialization command file
-e <command> evaluate initialization command
I have scoured the internet and the Xlinix site for a description of these options but so far have found nothing.
Of particular interest is documention on intialization commands. I ask this because we are having problems with the vivado 'open_hw_target' command not working through our JTAG on our custom carrier board. The JTAG signals appear to be working properly on an oscilloscope, so there is something subtle going on when vivado starts up. There seems to be some JTAG communications happening at the default 6 MHz rate when vivado starts up. I can lower the clock speed after vivado starts and after the 'connect_hw_target' is issued by using the 'set_property PARAM.FREQUENCY', but there doesn't seem to be a way to slow down the clock prior to this point. I am hoping that something in the command line options to 'hw_server' will help us resolve our problems.
05-06-2014 01:08 PM
I've searched myself and I'm afraid I have to agree that there is no additional documentation on hw_server. (even internally I can't find anything additional)
Have you tried the new vcse_server?
It's a remniscent of ISE Chipscope, so I'm afraid we won't be able to improve.
In general, regarding your Vivado debug issue, can you re-post it in the "Design Tools - Others" section?
05-06-2014 02:07 PM
Dries, thanks for your quick reply.
It is my understanding that vivado starts up both hw_server and vsce_server, and seems to need both for connecting to the JTAG. There is a subtle note in the vivado help that alludes to the vsce_server as being used for local host connections, and hw_server for remote connections, yet it also seems to indicate it needs both running in order to use the connect_hw_server tcl command.
05-07-2014 04:13 PM
Which version of Vivado are you using? We have changed the way hw_server and vcse_server communicate with Vivado in 2014.1.
Also are you able to see the hardware targets? If not it could be an issue with the cable, maybe cable drivers etc. Does the connect_hw_server command execute ok? A little more data around your exact situation can help us identify what the root cause could possibly be.
05-08-2014 11:46 AM
We are using Vivado 2014.1. The connect_hw_server command completes without error, but when I issue the open_hw_target command, it says no devices found.
I have an oscilloscope hooked up to the JTAG signals. I can see transactions happening after "open_hw_server" command is executed. Those seem to be happening at 6 MHz. Is there any way to slow down those transactions to see if we have a cable/board trace length problem? It seems that the PARAM.FREQUENCY only applies to the open_hw_devices command. I cannot find an equivalent parameter for open_hw_server or open_hw_target.
05-08-2014 06:29 PM
Try running these tcl commands:
connect_hw_server -host localhost -port 60001 -url localhost:3121
current_hw_target [get_hw_targets */xilinx_tcf/Digilent/210203339395A]
set_property PARAM.FREQUENCY 15000000 [get_hw_targets */xilinx_tcf/Digilent/210203339395A]
05-09-2014 02:10 PM
I tried the commands you suggested. I substituded Digilent with Xilinx since I am using the Xilinx USB-II pod. Also, the set_property PARAM.FREQUENCY 15000000 [current_hw_target] says that is not an acceptable frequency. It did accept 1500000, so perhaps there was an extra 0 on the frequency. I also tried other slower frequencies, such as 750000. But none of them worked. open_hw_target still reports no devices found.
This may be a problem with our Vendor's Kintex 7 daughter board. I can program the K7 FPGA just fine using their on-board JTAG header, but it doesn't work when going through their external XMC JTAG interface. The FPGA 'done' light continuously flickers as soon as I issue the 'connect_hw_server' command, even though that command should not be re-programming the FPGA.
05-11-2014 10:23 PM
05-29-2014 01:31 PM
This turned out to be the vendor's problem with their board. They have made an EC that is supposed to fix the impedance matchin on the TCK line.
05-29-2014 03:24 PM
Sounds like you have your problem resolved. Just FYI, on Linux this is how I would run the hw_server and vcse_server prior to 2014.1 (I knew my USB cable was plugged into USB port 1):
sudo chmod 666 /dev/bus/usb/001/00?
HW_SERVER_ALLOW_PL_ACCESS=1 hw_server -L- -l0xFC00 &
This started both programs. When I was ready to end the session, typing 'quit' in the command window would cause the vcse_server to exit, and then the hw_server would be killed.
07-24-2014 09:06 AM
Is this still the way you start up the hw_server under vivado 2014.1 or 2014.2? We are still having problems with this K7 daughter card. I really need to find a way to slow down the 6 MHz clock during initialization. What do the parameters "-L- -l0xFC00" do?
The way I have been programming the Xilinx devices using Vivado is to start Vivado in tcl mode and then issue these commands:
There doesn't seem to be any need to start vcse_server (I am running the pod on my local Linux machine).
07-24-2014 09:14 AM
On Linux when I start the hw_server I use:
xterm -e /opt/Xilinx/HWSRVR/2014.1/bin/hw_server -S -L- -l0xFC00
This starts the server in an xterm window. The -L- says log to stderr. The -l... option says what level of logging to do:
No, you do not have ot start the vcse_server yourself any more. The hw_server or Vivado is now taking care of it for us.
07-24-2014 09:20 AM
Any chance you might be able to provide some documentation on what the initialization commands are for the -e option?