XBURN creates OTP images, and programs images into the OTP memory of xCORE devices.


Overall Options

The following options are used to specify the OTP image and security register contents.


Specifies bootable images to be constructed from the loadable segments from xe-file and a default set of security bits.


Specifies the OTP segments from otp-file which includes the security register value.


Displays the version number and copyrights.


Prints a description of the supported command-line options.

Target Options

The following options are used to specify the target hardware platform.


Prints an enumerated list of all JTAG adapters connected to the host and the devices on each JTAG chain, in the form:


The adapters are ordered by their serial numbers.

--id <ID>

Specifies the adapter connected to the target hardware.


Specifies the serial number of the adapter connected to the target hardware.

--jtag-speed <n>

Sets the divider for the JTAG clock to n. The corresponding JTAG clock speed is 6/(n+1)MHz. The default value is 0 (6MHz).

--spi-div <n>

Sets the divider used in the AES Module for the SPI clock to n. The corresponding SPI clock speed is set to 100/(2 n ) MHz. The deafult value is 20 (2.5MHz).

This option is only valid with --lock.

Security Options

--genkey <keyfile>

Outputs to <keyfile> two 128-bit keys used for authentication and decrpytion. The keys are generated using the open-source library crypto++.

This option is not valid with --burn or --lock.

--lock *keyfile*

Security Register Options

The following options are used to specify the contents of the OTP security register, overriding the default options for burning XE images, OTP images and the AES module, as given in Default security bits written by XBURN.

Default security bits written by XBURN

Security Bit

XE Image

OTP Image

AES Module (--lock)

OTP Boot


As per OTP image file


JTAG Access



Plink Access



Global Debug



Master Lock



Secure Config Access




Enables boot from OTP.


Disables JTAG access. Once disabled, it is not possible to gain debug access to the device or to read the OTP.

This option does not disable boundary scan.

Disables access to the plink registers from other tiles. Disabling plink access restricts all access of the registers of each plinks to the tile local to that plink.


Prevents the device from participating in global debug. Disabling global debug prevents the tiles from entering debug using the global debug pin.


Enables the OTP master lock. No further modification of the OTP is permitted.


Disables access to the security config register.

Programming Options

By default, XBURN writes the specified OTP images to the target platform.


Do not prompt before writing the OTP. This is not default.

--outfile <otp-file>
-o <otp-file>

Place output in <otp-file>, disabling programming.

--make-exec <xe-file>

Place an executable in <xe-file> that when run on an xCORE device performs the specified OTP burning operation; disables programming.

The XE file can be run later using XRUN.

--target-file <xn-file>

Specifies <xn-file> as the target platform.

--target <platform>

Specifies a target platform. The platform configuration must be specified in the file platform .xn, which is searched for in the paths specified by the XCC_DEVICE_PATH environment variable.


Prints the entire contents of the OTP.

--size-limit <n>

Limits the amounts of OTP memory written to the first n bytes of the OTP. If the image doesn’t fit within the specified limit an error will be given.

--mac-address <mac>

Writes a MAC address to the end of the OTP. The MAC address should be specified in the form 12:34:56:78:9A:BC. Multiple MAC addresses can be written by specifying the --mac-address option multiple times. MAC addresses are written to the OTP in the order the options appear.

--serial-number <serial>

Writes a 32-bit serial number to the end of the OTP.


Prevents XBURN from compressing all binary data.


Prevents XBURN from validating the decompression algorithm within XSIM.