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  per-
     sistent  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  Spar-
     tan-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 speci-
	    fied 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 fre-
	    quency 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 di-
	    rectly 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,  de-
	    faults 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  de-
	    vices 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:ac-
     tion: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  po-
	 sition 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 de-
     scriptive 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 informa-
     tion 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 ca-
     ble, 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  destin-
     guish  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, start-
	 ing 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  de-
	    vlist.txt in the current directory.

     CABLEDB
	    Name  of  the  file  to  use  as cable database.  The default is ca-
	    blelist.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 writ-
	    ten 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.1.quarterly>

home | help