Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
XC3SPROG(1)		    General Commands Manual		   XC3SPROG(1)

NAME
       xc3sprog	- JTAG programming utility for Xilinx FPGAs and	PROMs

SYNOPSIS
       xc3sprog	-c cable [options] file1spec [file2spec	...]
       xc3sprog	-c cable [options] -j

DESCRIPTION
       xc3sprog	is a command-line tool for programming FPGAs, microcontrollers
       and PROMs via JTAG.

       In  a  typical  application, xc3sprog reads a .BIT file generated by an
       FPGA design tool, and programs it into the PROM chip on an  FPGA	 board
       for persistent storage or the configuration RAM of a FPGA for temporary
       storage.	 For other use cases, see the section EXAMPLES below.

       As  its	name  indicates,  xc3sprog  was	originally designed for	Xilinx
       Spartan-3 FPGAs.	 However, it has been extended to handle several other
       types of	devices	including Xilinx FPGAs,	CPLDs, XCF flash PROMs,	 Atmel
       AVRs  and  SPI  flash  chips.   xc3sprog	 supports several JTAG cables,
       including parallel port cables and USB programmers.

OPTIONS
       -c cable
	      Specify the type of  JTAG	 cable.	  The  specified  type,	 cable
	      refers to	a label	in the cable database.
	      Common cable types are pp	(parallel port cable), xpc (Xilinx USB
	      programmer), and ftdi (FTDI-based	USB programmer).

       -j     Detect  the  JTAG	 chain	and  print a list of attached devices.
	      This is the default if no	other action is	specified.

       -p val[,val,...]
	      Use device at JTAG chain position	val, default  is  position  0,
	      the device connected to the TDO pin of the JTAG cable.  Use this
	      option to	select a device	from a multi-device JTAG chain.

	      If multiple chain	positions are specified, the data file will be
	      split,  programming  the	first  part of the file	into the first
	      specified	device and so on. This is useful for  boards  which  a
	      chain of multiple	XCF chips to configure a single	FPGA.

       -Tn    Test the JTAG chain n times.  When running in ISF	mode, test the
	      SPI connection.
	      If n is not specified, the default is to test 10000 times.
	      If n = 0,	keep testing forever.

       -J freq
	      Run  at the specified JTAG clock frequency (freq in Hz).	If not
	      specified, or if freq = 0, the default is	to run at the  maximum
	      frequency	supported by the cable.
	      Currently	only supported for FTDI-based cables.

       -e     Erase the	entire device.

       -I[file]
	      Work  in	ISF  mode  to program an internal serial flash memory.
	      The flash	memory is attached to the primary JTAG target, but not
	      directly accessible via the JTAG chain.  The primary JTAG	target
	      is used as a proxy to forward  SPI  transactions	to  the	 flash
	      memory.	 If  file  is  specified,  start  by  programming  the
	      specified	bitfile	into the primary  JTAG	target	(typically  an
	      FPGA).

       -R     Send  a  reconfiguration command to the target device (XCV, XCF,
	      XCFP for reconfiguration of the connected	FPGA device  or	 XC3S,
	      XC6S, XC2V direct)

       -m mapdir
	      Search for XC2C map files	in the specified directory.  Map files
	      are  required to handle JEDEC files during CPLD programming.  If
	      not specified, defaults to the value of $XC_MAPDIR.

       -d /dev/parportN
	      Specify the parallel port	device to be used.  If not  specified,
	      defaults to the value of $XCPORT or /dev/parport0.
	      Only used	for cable type pp.

       -s serialnum
	      Use  the	USB  device  with  the specified serial	number string.
	      Needed if	several	adapters of the	same type are connected	at the
	      same time.

       -L     Use libFTD2XX instead of libftdi to access FTDI-based cables.

       -D     Dump the device database and cable database to files devlist.txt
	      and cablelist.txt	in the current directory. If  a	 file  already
	      exists, xc3sprog tries to	generate a unique name by appending an
	      increasing number.

       -X opt[,opt...]
	      Set  configuration  mode	for XCFnnP PROM	devices. Configuration
	      from XCFnnP PROM may be done in several modes, depending on  the
	      wiring  between  XCFnnP  and FPGA. By default, xc3sprog prepares
	      XCFnnP devices for slave serial mode  (FPGA  running  in	master
	      serial mode).

	      To  override  the	 defaults,  specify  a comma-separated list of
	      options.	The following options are accepted:
	      master	 XCFnnP	is master (FPGA	is slave)
	      slave	 XCFnnP	is slave (FPGA is master, this is default)
	      parallel	 Parallel configuration	data bus
	      serial	 Serial	configuration data line	(default)
	      extclk	 Use external clock in master mode
	      intclk	 Use internal clock in master mode
	      fastclk	 Use fast internal clock
	      slowclk	 Use slow internal clock

       -v     Enable verbose output.

       -h     Print a help text.

ACTION SPECIFICATION
       One or more programming actions may be specified.  Each action consists
       of  a  filename,	 optionally  followed  by  attributes  in   the	  form
       <filename:action:offset:style:length>.

       filename
	   The file to be written to the device, or the	file in	which to store
	   data	 after reading from the	device.	On windows systems, a colon on
	   position 2 is considered as filename	part  and  not	as  an	action
	   separator.

       action
	   One letter indicating whether to write, read, or verify the device.
	   If not specified, the default action	is 'w'.
	   w   Erase, then write data from file	to device and verify.
	   W   Write with auto-sector erase, then verify.
	   v   Verify device against file.
	   r   Read from device	and write to file (no overwriting).
	   R   Read from device	and write to file, overwriting existing	files.

       offset
	   The	byte offset inside the device where programming/reading	should
	   start.  Only	supported for SPI, XCFnnS devices and XMEGA.

       style
	   The format of the specified file.

	   BIT	    Xilinx .BIT	file format.  Default for FPGA,	XCF and	 SPI
		    devices.
	   BIN	    Raw	binary file.
	   BPI	    Raw	binary file not	bit reversed.
	   MCS	    Xilinx .MCS	file format.
	   IHEX	    Intel  HEX	format.	  Also	used  by Xilinx	PROMGEN	when
		    writing MCS	files.	Default	for XMEGA devices.
	   HEXRAW   Raw	sequence of hexadecimal	digits.
	   JEDEC    Default for	CPLD devices.

       length
	   The number of bytes	to  program/read.   Only  supported  for  SPI,
	   XCFnnS and XMEGA devices.

DEVICE DATABASE
       The  device  database  contains a list of supported JTAG	devices.  When
       xc3sprog	starts,	it scans the  JTAG  chain  to  discover	 all  attached
       devices.	  A  device database is	used to	map the	32-bit ID codes	of the
       devices to descriptive names and	get basic knowledge how	to handle  the
       part, at	minimum	how to skip it.

       A  default  device  database  is	compiled into the xc3sprog executable.
       The database is tried to	be loaded from a file at  run  time.   If  the
       environment  variable  $XCDB  is	 defined, it specifies the name	of the
       device database file, otherwise the file	devlist.txt is read  from  the
       current	directory.   If	 a  database  file  is	not  found at all, the
       internal	compile-time database will be used.

       If a device is not yet know,  the  builtin  list	 can  be  dumped,  the
       information  on the unknown part	added and on the next run the new list
       will be read and	used.

CABLE DATABASE
       The cable database contains a list  of  supported  JTAG	cables.	  Each
       cable  type  is	identified  by a short label, such as pp, ftdijtag, or
       xpc.  The database maps the label to parameters to be  used  to	access
       the hardware of the cable.

       A default cable database	is compiled into the xc3sprog executable.  The
       database	 is  tried  to	be  loaded  from  a  file at run time.	If the
       environment variable $CABLEDB is	defined, it specifies the name of  the
       cable  database file, otherwise the file	cablelist.txt is read from the
       current directory.  If a	 database  file	 is  not  found	 at  all,  the
       internal	compile-time database will be used.

       If  a  cable  subtype  (e.g.  different	VID/PID)  is not yet know, the
       builtin list can	be dumped, the information on the new cable added  and
       on the next run the new list will be read and used.

       The  database contains a	line for each nown cable. The line consists of
       the alias for that cable	to used	with the -c option, the	basic type  of
       the  cable,  the	 maximum  allowed  JTAG	 frequency of the cable	and an
       optional	option string.

       For FTDI	devices	the option string contains the USB  vendor  ID	(VID),
       USB  product  ID	 (PID),	 the  USB  device description string, the FTDI
       channel of the JTAG interface and eventual commands for	setting	 other
       pins  beside the	JTAG pins. e.g.	to switch on some buffers. If the JTAG
       device uses a FTDI default VID/PID, the USB device  description	string
       is  important  to  destinguish  your  JTAG  device  from	other eventual
       connected FTDI devices with the same VID/PID

EXAMPLES
       xc3sprog	-c pp -j
	   Show	a list of JTAG devices attached	 to  the  parallel  port  JTAG
	   cable.

       xc3sprog	-c ftdijtag -v -p 0 design.bit
	   Program the specified bitfile into the first	device (position 0) in
	   the	JTAG  chain.  Use an FTDI-based	USB JTAG cable.	 Show detailed
	   progress information.

       xc3sprog	-c ftidjtag -T
	   Test	the integrity of the JTAG chain.

       xc3sprog	-c xpc -p 1 dump.bit:r
	   Read	the contents from the JTAG device in position 1	in the	chain,
	   and	write  the  data  as  a	 Xilinx	 .BIT  file.  Use a Xilinx USB
	   programmer.

       xc3sprog	-c cable -Ibscan_spi/xc3s50an.bit design.bit
	   Load	xc3s50an.bit into the FPGA in position 0 in  the  JTAG	chain.
	   Then, program design.bit into the ISF memory	in the FPGA.

       xc3sprog	-c cable -I image.bit:w:0x10000
	   Program  the	 image	file into the SPI memory attached to the FPGA,
	   starting at byte offset 0x10000.   An  appropriate  bscan_spi  file
	   must	already	be loaded in the FPGA, so that it will act as a	bridge
	   between the JTAG cable and SPI bus.

ENVIRONMENT
       XCDB   Name  of	the  file  to  use as device database.	The default is
	      devlist.txt in the current directory.

       CABLEDB
	      Name of the file to use  as  cable  database.   The  default  is
	      cablelist.txt in the current directory.

       XCPORT Parallel	port  device  to  be used for JTAG cable type pp.  The
	      default is /dev/parport0.	 This setting  may  be	overridden  by
	      command-line option -d.

       XC_MAPDIR
	      Default  directory  to  search for XC2C map files.  This setting
	      may be overridden	by command-line	option -m.

       JTAG_DEBUG
	      If specified, a log of JTAG operations is	written	to a file with
	      this name.

       FTDI_DEBUG
	      If specified, a log of interactions  with	 the  FTDI  device  is
	      written  to  a  file  with  this name.  Only used	for FTDI-based
	      cable types.

       XPC_DEBUG
	      If specified, a log of interactions with the XPC	programmer  is
	      written to a file	with this name.	 Only used for XPC-based cable
	      types.

       SPI_DEBUG
	      If  specified, a log of SPI operations is	written	to a file with
	      this name.  Only used in ISF mode.

       PDI_DEBUG
	      If specified, a log of PDI operations is written to a file  with
	      this name.  Only used when programming an	Atmel XMega device.

FILES
       devlist.txt
	      The  device  database,  containing  a  list of known JTAG	target
	      devices.	This file  is  read  from  the	current	 directory  by
	      default,	or from	the location indicated by the XCDB environment
	      variable.	 If not	found, an internal compile-time	version	of the
	      device database is used.

       cablelist.txt
	      The cable	database, containing a list of known JTAG cable	types.
	      This file	is read	from the current directory by default, or from
	      the location indicated by	the CABLEDB environment	variable.   If
	      not  found,  an  internal	 compile-time  version	of  the	 cable
	      database is used.

SEE ALSO
       http://sourceforge.net/projects/xc3sprog/

Contribute back
	Feedback on success/failure/enhancement	requests:
	    http://sourceforge.net/mail/?group_id=170565

				  2011-09-04			   XC3SPROG(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=xc3sprog&sektion=1&manpath=FreeBSD+Ports+15.0>

home | help