15.1.9 Troubleshooting

This section lists the exit codes for PolarFire, RTG4, and SmartFusion 2 and IGLOO 2, and SPI Flash .

15.1.9.1 Exit Codes Applicable to All Families

The following table lists the exit codes applicable to all families.

Table 15-6 15-11. Exit Codes Applicable To All Families
ProgrammerError CodeExit CodeExit MessagePossible CausePossible Solution
eFP6 (Does not apply to FlashPro6)Failed to open eFP6 HID handleThis error could be caused by the programmer being out of sync with the software application.

Unplug the USB cable from either the programmer or the host PC and reconnect it.

FlashPro6 (Does not apply to eFP6)-7Failed to perform cyusb_bulk_transferThis error could be caused by poor hardware USB connection to the host.
Note: This error is specific to FP6 only. The occurrence of the error is random and cannot be predicted.
Try unplugging and plugging the programmer and rescan for new programmers to refresh the programmer list.
FlashPro54General device I/O errorLoss of USB packets while performing an action with FlashPro5 or embedded FlashPro5 programmers.Make sure that the USB cable is firmly connected to the programmer and PC. Avoid placing other cables on top or near the USB cable to minimize noise.

15.1.9.2 PolarFire SoC Exit Codes

The following table lists the PolarFire SoC exit codes.

Table 15-7 15-8. PolarFire SoC Exit Codes
Error CodeExit CodeExit MessagePossible CausePossible Solution
0x8020

-22

Invalid Public Key for Boot Mode 3 eNVM client

Public key may have been entered incorrectly.Ensure that the public key is entered correctly.

15.1.9.3 PolarFire® Exit Codes

The following table lists the PolarFire exit codes.

Table 15-7 15-8. PolarFire® Exit Codes
Error CodeExit CodeExit MessagePossible CausePossible Solution

0

Passed

0x8003

5

Failed to enter programming mode

Unstable/Insufficient voltage level

Monitor the related power supplies causing the issue during programming. Check for transients outside of Microchip specifications. For more information on transient specifications, see the corresponding datasheet.

Tie DEVRST_N to HIGH prior to programming the device.

Signal integrity issues on JTAG pins

Monitor JTAG supply pins during programming. Measure JTAG signals for noise or reflection.

DEVRST_N is tied to LOW.

Tie DEVRST_N to HIGH prior to programming the device.

DEVRST_N is not tied HIGH

Tie DEVRST_N to HIGH prior to programming the device.

0x8004

6

Failed to verify IDCODE

Incorrect programming file

Choose the correct programming file and select the correct device in the chain.

Incorrect device in chain

Measure JTAG pins and noise for reflection. If TRST is left floating, then add pull-up to pin.

Signal integrity issues on JTAG pins

Reduce the length of Ground connection.

0x8005

0x8006

0x8007

0x8008

0x8009

11

Failed to verify FPGA Array

Failed to verify Fabric Configuration

Failed to verify Security

Failed to verify sNVM

Failed to verify eNVM

Device is programmed with a different design or the component is blank.

Unstable/Insufficient voltage level

Signal integrity issues on JTAG pins

DEVRST_N is not tied HIGH

Verify the device is programmed with the correct data/design.

Monitor the related power supplies causing the issue during programming. Check for transients outside of Microchip specifications. For more information on transient specifications, see the corresponding datasheet.

Monitor JTAG supply pins during programming. Measure JTAG signals for noise or reflection.

Tie DEVRST_N to HIGH prior to programming the device.

0x8013

–18

External digest check via JTAG/SPI Slave is disabled.

External Digest check via JTAG/SPI Target is disabled.

Need to use a bit stream file with a valid FlashLock/UPK1 to enable external digest check through JTAG/SPI Target.

0x801B

–20

CHECK FABRIC digest verification: FAIL

sNVM digest verification: FAIL

eNVM digest verification: FAIL

CC digest verification: FAIL

UL digest verification: FAIL

UKDIGEST0 digest verification: FAIL

UKDIGEST1 digest verification: FAIL

UKDIGEST2 digest verification: FAIL

UKDIGEST3 digest verification: FAIL

UKDIGEST4 digest verification: FAIL

UKDIGEST5 digest verification: FAIL

UKDIGEST6 digest verification: FAIL

UKDIGEST7 digest verification: FAIL

UKDIGEST8 digest verification: FAIL

UKDIGEST9 digest verification: FAIL

UKDIGEST10 digest verification: FAIL

UPERM digest verification: FAIL

Component is either erased, or the data has been corrupted or tampered with.Reprogram the device.
0x801C-20SYS digest verification: FAILFactory have been erased through zeroization, or the data has been corrupted or tampered with.Switch the device (return for FA).

0x801D

–21

Device security prevented operation.

The device is protected with user pass key 1 and the bit stream file does not contain user pass key 1.

User pass key 1 in the bit stream file does not match the device.

Run DEVICE_INFO to view security features that are protected.

Provide a bit stream file with a user pass key 1 that matches the user pass key 1 programmed into the device.

0x801F-22Bitstream data is corrupted or noisy.Bitstream file has been corrupted or was incorrectly generated.

Regenerate bitstream file.

Monitor the related power supplies causing the issue during programming. Check for transients outside of Microchip specifications. See your device's data sheet for more information on transient specifications.

0x8021

–23

Programming Error

Invalid/Corrupted encryption key.

File contains an encrypted key that does not match the device

File contains user encryption key but device has not been programmed with the user encryption key.

Provide a programming file with an encryption key that matches that on the device.

First program security with ​initiater programming file, then program with user encryption 1/2 field update programming files.

0x8023

–24

Programming Error

Back level not satisfied.

Design version is not higher than the back-level programmed device.

Generate a programming file with a design version higher than the back level version.

0x8001

–24

Failed to read DSN

Device is in System Controller Suspend Mode

Check board connections

Unstable voltage level, DEVRST_N is not tied HIGH

TRSTB should be driven High or disable System Controller Suspend Mode.

Tie DEVRST_N to HIGH prior to programming the device.

0x8027

–26

Programming Error

Insufficient device capabilities.

Device does not support the capabilities specified in programming file.

Generate a programming file with the correct capabilities for the target device.

0x8029

–27

Programming Error. Incorrect DEVICEID

Incorrect programming file.

Incorrect device in chain.

Signal integrity issues on JTAG pins.

Choose the correct programming file and select the correct device in chain.

Measure JTAG pins and noise or reflection. If TRST is left floating, then add pull-up to pin.

Reduce the length of ground connection.

0x802B

–28

Programming Error

Signal integrity issues on JTAG pins, please check.

Signal integrity issues on JTAG pins, please check.

Monitor JTAG supply pins during programming. Measure JTAG signals for noise or reflection.

0x8030

–31

Programming Error

Invalid or inaccessible Device Certificate.

FAB_RESET_N is tied to ground.

FAB_RESET_N should be tied to HIGH.

0x8032

–32

Instruction timed out

Unstable/Insufficient voltage level

Signal integrity issues on JTAG pins

DEVRST_N is not tied HIGH

Monitor the related power supplies causing the issue during programming. Check for transients outside of Microchip specifications. See your device's data sheet for more information on transient specifications.

Monitor JTAG supply pins during programming. Measure JTAG signals for noise or reflection.

Tie DEVRST_N to HIGH prior to programming the device.

0x8010

–35

Failed to unlock user pass key 1

Pass key in file does not match device.

Provide a programming file with a pass key that matches pass key programmed into the device.

0x8011

–35

Failed to unlock user pass key 2

Pass key in file does not match device.

Provide a programming file with a pass key that matches pass key programmed into the device.

0x804F

–38

Bitstream programming action is disabled

Unstable/Insufficient voltage level

Monitor the related power supplies causing the issue during programming. Check for transients outside of Microchip specifications. See your device's data sheet for more information on transient specifications.

Tie DEVRST_N to HIGH prior to programming the device.

Bitstream programming action has been disabled in Security Policy Manager

DEVRST_N is not tied HIGH

Use a bit stream file that has a valid FlashLock/UPK1 to enable the bit stream programming action.

0x805B

–42

Error: security must be either programmed on a blank device or with the FPGA Fabric design.

Security only bit stream programming on a programmed device.

Use this bit stream on a blank device or generate a new bit stream that contains the FPGA Fabric design along with the security.

0x80596

Failed to verify IDCODE

MPF300(XT|T_ES|TS_ES) programming file is not compatible with MPF300 production devices.

You must use a programming file for MPF300(T|TS|TL|TLS) device.

MPF300(XT|T_ES|TS_ES) programming file is not compatible with MPF300 production devices.You must use a programming file for MPF300(T|TS|TL|TLS) device.
0x805A6

Failed to verify IDCODE

MPF300(T|TS|TL|TLS) programming file is not compatible with MPF300(XT|T_ES|TS_ES) devices.

You must use a programming file for MPF300(XT|T_ES|TS_ES) device.

MPF300(T|TS|TL|TLS) programming file is not compatible with MPF300(XT|T_ES|TS_ES) devices.You must use a programming file for MPF300(XT|T_ES|TS_ES) device.
0x80EB7Error reading device integrity bits.

PUF or crypto core failed

Factory NVM containing signing key is corrupted.

Monitor the related power supplies causing the issue during programming; check for transients outside of Microchip specifications. See your device's data sheet for more information on transient specifications.

Switch the device (return for FA)

0x802C14sNVM Encryption Key (SMK) is not initializedsNVM Encryption Key (SMK) is not initialized.Initialized sNVM Encryption Key (SMK)
0x8014-19Failed while running verify digestFactory parameters are corrupted.

Monitor the related power supplies causing the issue during programming. Check for transients outside of Microchip specifications. See your device's data sheet for more information on transient specifications.

Switch the device (return for FA)

0x80EA-36Device certificate could not be validated due to internal error

PUF or crypto core failed

Factory NVM containing signing key is corrupted.

Monitor the related power supplies causing the issue during programming. Check for transients outside of Microchip specifications. See your device's data sheet for more information on transient specifications.

Switch the device (return for FA)

0x8051-40Failed to zeroize the deviceZeroization through JTAG/SPI Target is disabled in user security settings.Enable zeroization through JTAG/SPI Target in user security settings.
0x8056-42Failed to read zeroization certificate

Error occurred during generation of zeroization certificate due to corrupted factory parameters.

Zeroization completion data is invalid.

Switch the device (return for FA).

Make sure to run zeroization before reading the result.

0x8040-32Brownout error detected during programmingSupplied power is insufficient for the device.Connect the device to an adequate and stable power supply.
0x805D6

Failed to verify IDCODE. NOTE: RTPF500 {T|L|S} and RTPF500Z{T|L|S}

RT PolarFire and PolarFire programming files are not interchangeable.Ensure that the device selection in the Libero® SoC project that is used to generate the programming file matches the device part number being programmed.
0x800A11Failed to verify Security.User lock settings may have changed.Verify that the user lock settings remain consistent.
0x800C11Failed to verify Security.Permanent lock settings may have changed.Verify that the permanent lock settings remain consistent.

15.1.9.4 RTG4 Exit Codes

The following table lists the RTG4 exit codes.

Table 15-9. RTG4 Exit Codes
Error CodeExit CodeExit MessagePossible CausePossible Solution
0

Passed

0x802B -28Signal integrity issues on JTAG pins, please check.Signal integrity issues on JTAG pins, please check.Monitor JTAG supply pins during programming. Measure JTAG signals for noise or reflection.

0x8001

-24

Failed to read DSN

Device is in System Controller Suspend Mode.

Check board connections.

Unstable voltage level, DEVRST_N is not tied HIGH

TRSTB must be driven High on device power-up.

Disable System Controller Suspend mode in the Programming Bitstream Settings tool within Libero® and reprogram the device.

Tie DEVRST_N to HIGH prior to programming the device.

0x8002

5

Device is busy

Unstable/Insufficient VDDIx voltage level

DEVRST_N is not tied HIGH

Monitor related power supplies that cause the issue during programming; check for transients outside of Microchip specifications. See your device data sheet for more information on transient specifications.

0x8003

5

Failed to enter programming mode

Unstable/Insufficient voltage level

Signal integrity issues on JTAG pins

DEVRST_N is tied to LOW

DEVRST_N is not tied HIGH

Monitor related power supplies that cause the issue during programming; check for transients outside of Microchip specifications. See your device data sheet for more information on transient specifications.

Monitor JTAG supply pins during programming; measure JTAG signals for noise or reflection.

Tie DEVRST_N to HIGH prior to programming the device.

0x8004

6

Failed to verify IDCODE

Incorrect programming file.

Incorrect device in chain.

Signal integrity issues on JTAG pins.

Choose the correct programming file and select the correct device in the chain.

Measure JTAG pins and noise for reflection. If TRST is left floating then add pull-up to pin.

Reduce the length of Ground connection.

0x8005

6

Failed to verify IDCODE RT4G150_ES

STAPL file is not compatible with RT4G150 production devices. You must use a STAPL file for RT4G150 device.

Programming file is for RT4G150_ES and device is RT4G150.

Incorrect programming file Incorrect device in chain.

Signal integrity issues on JTAG pins.

Generate a programming file for RT4G150 device.

Choose the correct programming file and select the correct device in the chain.

Measure JTAG pins and noise for reflection. If TRST is left floating then add pull-up to pin.

Reduce the length of Ground connection.

0x8006

6

Failed to verify IDCODE RT4G150

STAPL file is not compatible with RT4G150_ES

devices. You must use a STAPL file for RT4G150_ES device.

Programming file is for RT4G150 and device is RT4G150_ES.

Incorrect programming file Incorrect device in chain.

Signal integrity issues on JTAG pins.

Generate a programming file for RT4G150_ES device.

Choose the correct programming file and select the correct device in the chain.

Measure JTAG pins and noise for reflection. If TRST is left floating then add pull-up to pin.

Reduce the length of Ground connection.

0x8008

-17

Device is blank

Attempting to verify digest of a blank device.

Program the device prior to running the VERIFY_DIGEST action.

0x8009

-18

Fabric digest check is disabled

Digest check has been disabled by the Programming Bitstream Settings tool within Libero.

Drive TRSTB high during device power-up.

Enable digest check in the Programming Bitstream Settings tool within Libero and reprogram the device.

0x8009

-19

Failed to verify digest: Instruction timed out

Unstable/Insufficient voltage level.

Signal integrity issues on JTAG pins.

DEVRST_N is not tied HIGH

Run the VERIFY_DIGEST action again.

Monitor related power supplies that cause the issue during programming; check for transients outside of Microchip specifications. See your device data sheet for more information on transient specifications.

Monitor JTAG supply pins during programming; measure JTAG signals for noise or reflection.

Tie DEVRST_N to HIGH prior to programming the device.

0x800B

-20

FPGA Fabric digest verification: FAIL

Programming bit stream components do not match components programmed.

FPGA Fabric is either erased or the data has been corrupted or tampered with.

Use the same programming file that was used to program the device.

0x800C

-20

Factory row segment digest verification: FAIL

Programming bit stream components do not match components programmed.

Factory row segment data has been corrupted or tampered with.

Use the same programming file that was used to program the device.

0x800D

-22

Bitstream Error. Bitstream or data is corrupted or noisy.

Bitstream file has been corrupted.

Bitstream was incorrectly generated.

Unstable/Insufficient voltage level.

Signal integrity issues on JTAG pins.

DEVRST_N is not tied HIGH

Regenerate bit stream file.

Monitor related power supplies that cause the issue during programming; check for transients outside of Microchip specifications. See your device data sheet for more information on transient specifications.

Monitor JTAG supply pins during programming; measure JTAG signals for noise or reflection.

Tie DEVRST_N to HIGH prior to programming the device.

0x800E

15

Failed to query programming bit stream settings: Instruction timed out

Unstable/Insufficient voltage level.

Signal integrity issues on JTAG pins.

DEVRST_N is not tied HIGH

Run the DEVICE_INFO action again.

Monitor related power supplies that cause the issue during programming; check for transients outside of Microchip specifications. See your device data sheet for more information on transient specifications.

Monitor JTAG supply pins during programming; measure JTAG signals for noise or reflection.

Tie DEVRST_N to HIGH prior to programming the device.

0x800F

-27

Bitstream Error. Incorrect DEVICEID

Incorrect programming file.

Incorrect device in chain.

Signal integrity issues on JTAG pins.

Choose the correct programming file and select the correct device in the chain.

Measure JTAG pins and noise for reflection. If TRST is left floating then add pull-up to pin.

Reduce the length of Ground connection.

0x8011

-32

Failed to check bit stream: Instruction timed out

Unstable/Insufficient voltage level.

Signal integrity issues on JTAG pins.

DEVRST_N is not tied HIGH

Monitor related power supplies that cause the issue during programming; check for transients outside of Microchip specifications. See your device data sheet for more information on transient specifications.

Monitor JTAG supply pins during programming; measure JTAG signals for noise or reflection.

Tie DEVRST_N to HIGH prior to programming the device.

0x8012

-32

Failed to erase device: Instruction timed out

Unstable/Insufficient voltage level Signal integrity issues on JTAG pins.

DEVRST_N is not tied HIGH

Monitor related power supplies that cause the issue during programming; check for transients outside of Microchip specifications. See your device data sheet for more information on transient specifications.

Monitor JTAG supply pins during programming; measure JTAG signals for noise or reflection.

Tie DEVRST_N to HIGH prior to programming the device.

0x8013-32Failed to verify device: Instruction timed outUnstable/Insufficient voltage level Signal integrity issues on JTAG pins.

DEVRST_N is not tied HIGH

Monitor related power supplies that cause the issue during programming; check for transients outside of Microchip specifications. See your device datasheet for more information on transient specifications.

Monitor JTAG supply pins during programming; measure JTAG signals for noise or reflection.

Tie DEVRST_N to HIGH prior to programming the device.

0x8014

-32

Failed to program device: Instruction timed out

Unstable/Insufficient voltage level. Signal integrity issues on JTAG pins.

DEVRST_N is not tied HIGH

Monitor related power supplies that cause the issue during programming; check for transients outside of Microchip specifications. See your device data sheet for more information on transient specifications.

Monitor JTAG supply pins during programming; measure JTAG signals for noise or reflection.

Tie DEVRST_N to HIGH prior to programming the device.

0x8015

-33

Error, device is not ready.

DEVRST_N may have been driven LOW during programming.

Need to ensure that DEVRST_N is driven HIGH during programming. The reliability of the device in space cannot be ensured if this has occurred. It is the user's responsibility to ensure that DEVRST_N is driven HIGH during programming.

15.1.9.5 SPI-Flash Exit Messages

The following table lists the error codes returned when programming SPI Flash memory devices using FlashPro Express. These errors are independent of the target FPGA device family and apply across all supported configurations that use external SPI Flash memory.

Table 15-10. SPI Flash Error Codes
Error CodeExit MessagePossible CausePossible Solution

6

Failed to recognize device density

Failed to verify SPI-Flash IDCode

SPI-Flash is not connected.

Connect SPI-Flash device.

SPI-Flash is not supported.

Contact Microchip tech support.

SPI-Flash is not powered up.

Power up device.

Signal integrity issues.

Resolve board issues causing signal integrity issues.

200

Failed to disable bottom SPI-Flash security bits

Failed to disable top SPI-Flash security bits

Disabling block protection fails.

Check power supplies, signal integrity, or replace device.

202

Erase Action is not applicable to this device

Not an error. Specific to AS301G208 and AS302G208 devices from Avalanche Technology.

Not an error; program operation will overwrite existing data.

202

Failed to erase SPI Flash

Erase operation fails.

Check power supplies, signal integrity, or replace device.

203

Failed to program SPI Flash

Program operation fails.

Check power supplies, signal integrity, or replace device.

204

SPI-Flash verify operation failed

Device is programmed with different data.

Program the device with the desired data.

206

Time out polling error detected

Polling operation during erase or program actions fails.

Check power supplies, signal integrity, or replace device.

207

Invalid SPI-Flash image detected

Corrupted image is received.

Try a different programmer, USB port, or USB cable.

209

Image byte size is greater than available memory space

The target SPI-Flash device does not have enough memory space to store the entire image.

Choose a larger target SPI-Flash device.

210

SPI-Flash is not blank

Target SPI-Flash device is not blank.

Erase the SPI-Flash device.

15.1.9.6 SmartFusion® 2 and IGLOO® 2 Exit Codes

Check for the following common troubleshooting steps before looking at the troubleshooting table.

  1. Monitor the related power supplies that can cause issue during programming; check for transients outside of Microchip specifications.
  2. Make sure to tie DEVRST_N to HIGH, prior to programming the device.
  3. Make sure that the reset signal of the Tamper macro is correctly configured in your design. When the Tamper macro reset signal is not configured correctly, all the communication with the device fails with a Device is busy error, regardless of the action you try to run.

The following table lists the SmartFusion 2 and IGLOO 2 exit codes.

Table 15-6 15-11. SmartFusion® 2 and IGLOO® 2 Exit Codes
Error CodeExit CodeExit MessagePossible CausePossible Solution

0

Passed

0x8003

5

Failed to enter programming mode

Unstable/Insufficient voltage level.

Signal integrity issues on JTAG pins.

DEVRST_N is tied to LOW.

DEVRST_N is not tied HIGH

Monitor the related power supplies causing the issue during programming. Check for transients outside of Microchip specifications. See your device's data sheet for more information on transient specifications.

Monitor JTAG supply pins during programming. Measure JTAG signals for noise or reflection.

Tie DEVRST_N to HIGH prior to programming the device.

0x8004

6

Failed to verify IDCODE

Incorrect programming file.

Incorrect device in chain.

Signal integrity issues on JTAG pins.

Choose the correct programming file and select the correct device in the chain.

Measure JTAG pins and noise for reflection. If TRST is left floating then add pull-up to pin.

Reduce the length of Ground connection.

0x8005

0x8006

8x804A

10

Failed to program eNVM

Unstable/Insufficient voltage level.

Signal integrity issues on JTAG pins.

DEVRST_N is not tied HIGH

Monitor the related power supplies causing the issue during programming. Check for transients outside of Microchip specifications. See your device's data sheet for more information on transient specifications.

Monitor JTAG supply pins during programming. Measure JTAG signals for noise or reflection.

Tie DEVRST_N to HIGH prior to programming the device.

0x8007

0x804C

11

Failed to verify FPGA Array

Failed to verify Fabric Configuration

Failed to verify Security

Device is programmed with a different design or the component is blank.

Unstable/Insufficient voltage level.

Signal integrity issues on JTAG pins.

DEVRST_N is not tied HIGH

Verify that the device is programmed with the correct data/design.

Monitor related power supplies that cause the issue during programming; check for transients outside of Microchip specifications. See your device data sheet for more information on transient specifications.

Monitor JTAG supply pins during programming; measure JTAG signals for noise or reflection.

Tie DEVRST_N to HIGH prior to programming the device.

0x8008

0x8009

0x8049

11

Failed to verify eNVM

Device is programmed with a different design.

Unstable/Insufficient voltage level.

Signal integrity issues on JTAG pins.

DEVRST_N is not tied HIGH

Verify that the device is programmed with the correct data/design.

Monitor the related power supplies causing the issue during programming; check for transients outside of Microchip specifications. See your device's data sheet for more information on transient specifications.

Monitor JTAG supply pins during programming. Measure JTAG signals for noise or reflection.

Tie DEVRST_N to HIGH prior to programming the device.

0x8013

–18

Digest request from SPI/JTAG is protected by User Pass Key 1

Digest request from SPI/JTAG is protected by user pass key 1.

Lock bit has been configured in the Debug Policy within Security Policy Manager (SPM).

Provide a programming file with a pass key that matches pass key programmed into the device.

0x8014

–19

Failed while running verify digest

Unstable/Insufficient voltage level.

Signal integrity issues on JTAG pins.

DEVRST_N is not tied HIGH

Monitor the related power supplies causing the issue during programming. Check for transients outside of Microchip specifications. See your device's data sheet for more information on transient specifications.

Monitor JTAG supply pins during programming; measure JTAG signals for noise or reflection.

Tie DEVRST_N to HIGH prior to programming the device.

0x8015

–20

FPGA Fabric digest verification: FAIL

Programming bit stream components do not match components programmed.

FPGA Fabric is either erased or the data has been corrupted or tampered with.

Use the same programming file that was used to program the device.

0x8016

–20

eNVM_0 digest verification: FAIL

Programming bit stream components do not match components programmed.

eNVM_0 data has been corrupted or tampered with.

Use the same programming file that was used to program the device.

0x8017

–20

eNVM_1 digest verification: FAIL

Programming bit stream components do not match components programmed.

eNVM_1 data has been corrupted or tampered with.

Use the same programming file that was used to program the device.

0x8018

–20

User security policies digest verification: FAIL

Programming bit stream components do not match components programmed.

User security policy data has been corrupted or tampered with.

Use the same programming file that was used to program the device.

0x8019

–20

User key set 1 digest verification: FAIL

Programming bit stream components do not match components programmed.

User key set 1 data has been corrupted or tampered with.

Use the same programming file that was used to program the device.

0x801A

–20

User key set 2 digest verification: FAIL

Programming bit stream components do not match components programmed.

User key set 2 data has been corrupted or tampered with.

Use the same programming file that was used to program the device.

0x801B

–20

Factory row and factory key digest verification: FAIL

Programming bit stream components do not match components programmed.

Factory row and factory key data has been corrupted or tampered with.

Use the same programming file that was used to program the device.

0x801C

–20

Fabric configuration digest verification: FAIL

Programming bit stream components do not match components programmed.

Fabric configuration data has been corrupted or tampered with.

Use the same programming file that was used to program the device.

0x801D

0x801E

0x804B

–21

Device security prevented operation

The device is protected with user pass key 1 and the bit stream file does not contain user pass key 1.

User pass key 1 in the bit stream file does not match the device.

Run DEVICE_INFO to view security features that are protected.

Provide a bit stream file with a user pass key 1 that matches the user pass key 1 programmed into the device.

0x801F

0x8020

0x8040

–22

Authentication Error

Bitstream or data is corrupted or noisy

eNVM has been locked by a initiator in your design.

Running VERIFY action on a blank device.

Bitstream file has been corrupted.

Bitstream was incorrectly generated.

Release the lock on the eNVM after your initiator has completed its access operations. Write 0x00 to "REQACCESS" register in eNVM Control Registers (address 0x600801FC) to release the access.

Program the device prior to running VERIFY action.

Regenerate the bit stream file.

0x8021

0x8022

0x8041

–23

Authentication Error

Invalid/Corrupted encryption key

File contains an encrypted key that does not match the device.

Attempting to erase a device with no security using initiator security file.

File contains user encryption key, but device has not been programmed with the user encryption key.

Device has user encryption key 1/2 enforced and you are attempting to reprogram security settings.

Provide a programming file with an encryption key that matches that on the device.

Run DEVICE_INFO action to verify that the device has no security. If the device does not have security, it cannot be erased.

First program security with initiator programming file, then program with user encryption 1/2 field update programming files.

You must first ERASE security with the initiator security file, then you can reprogram new security settings.

0x8023

0x8024

0x8042

–24

Authentication Error

Back level not satisfied.

Design version is not higher than the back-level programmed device.

Generate a programming file with a design version higher than the back level version.

0x8001

–24

Failed to read DSN

Device is in System Controller Suspend Mode.

Check board connections.

Unstable voltage level, DEVRST_N is not tied HIGH

TRSTB must be driven High or disable "System Controller Suspend Mode."

Tie DEVRST_N to HIGH prior to programming the device.

0x8025

0x8026

0x8043

–25

Authentication Error

DSN binding mismatch

DSN specified in programming file does not match the device being programmed.

Use the correct programming file with a DSN that matches the DSN of the target device being programmed.

0x8028

–26

Authentication Error

Insufficient device capabilities

Device does not support the capabilities specified in programming file.

Generate a programming file with the correct capabilities for the target device.

0x8027

0x8044

–26

Authentication Error

Bitstream and device mismatch

Libero® device selection does not match the target device.

Generate a programming file with the correct device selection for the target device.

0x8029

0x802A

0x8045

–27

Authentication Error

Incorrect DEVICEID

Incorrect programming file.

Incorrect device in chain.

Signal integrity issues on JTAG pins.

Choose the correct programming file and select the correct device in chain.

Measure JTAG pins and noise or reflection. If TRST is left floating, then add pull-up to pin.

Reduce the length of ground connection.

0x802B

–28

Authentication Error

Signal integrity issues on JTAG pins, please check.

Signal integrity issues on JTAG pins.

Monitor JTAG supply pins during programming; measure JTAG signals for noise or reflection.

0x8030

0x8031

0x8048

–31

Authentication Error

Invalid or inaccessible Device Certificate.

M2S090 Rev. A or M2S150

Rev. A:

Either certificate is corrupted or the user has not provided the application code in the eNVM or provided invalid application code.

FAB_RESET_N is tied to ground.

User can program a valid application code. This can be done with SoftConsole.

FAB_RESET_N should be tied to HIGH.

0x8032

–32

Instruction timed out

Unstable/Insufficient voltage level.

Signal integrity issues on JTAG pins.

DEVRST_N is not tied HIGH

Monitor related power supplies that cause the issue during programming; check for transients outside of Microchip specifications. See your device data sheet for more information on transient specifications.

Monitor JTAG supply pins during programming; measure JTAG signals for noise or reflection.

Tie DEVRST_N to HIGH prior to programming the device.

0x8010

–35

Failed to unlock User Pass Key 1

Pass key in file does not match device.

Plaintext pass key match is disabled. This occurs if HSM was used to program the device.

Provide a programming file with a pass key that matches pass key programmed into the device.

Match pass key using HSM.

0x8011

–35

Failed to unlock User Pass Key 2

Pass key in file does not match device.

Plaintext pass key match is disabled. This occurs if HSM was used to program the device.

Provide a programming file with a pass key that matches pass key programmed into the device.

Match pass key using HSM.

0x8012

–35

Failed to unlock debug pass key

Pass key in file does not match device.

Plaintext pass key match is disabled. This occurs if HSM was used to program the device.

Provide a programming file with a pass key that matches pass key programmed into the device.

Match pass key using HSM.

0x804E

–37

Device already has Security programmed. Please erase the device using master file before reprogramming Security Settings.

HSM flow does not support reprogramming device directly if Security has already been programmed.

Erase security and program the device.

0x8055

–35

Please have valid Cortex®®-M3 firmware code client at page 0 for Rev 0 M2S090 and M2S150 devices, else it will lead to unexpected behavior including programming lockout condition. Please see section 3.14 at ER0196: SmartFusion2 Device v1.5 Errata.

Invalid Cortex-M3 firmware code client at page 0 for Rev 0 M2S090 and M2S150 devices.Please have valid Cortex-M3 firmware code at page 0.
0x8054-38

Failed to read device certificate, device is busy.

Failed to read device certificate (AHB HRESP error).

User has not programmed valid Cortex-M3 code in beginning page(s) of eNVM.

Unstable/Insufficient voltage level.

Signal integrity issues on JTAG pins.

DEVRST_N is not tied HIGH

Program valid Cortex-M3 code in beginning page(s) of eNVM.

Monitor related power supplies that cause the issue during programming; check for transients outside of Microchip specifications. See your device data sheet for more information on transient specifications.

Monitor JTAG supply pins during programming; measure JTAG signals for noise or reflection.

Tie DEVRST_N to HIGH prior to programming the device.

0x8052-38 Device certificate is invalid.

Factory parameters are corrupted.

Power supply issue.

Monitor related power supplies that cause the issue during programming; check for transients outside of Microchip specifications. See your device data sheet for more information on transient specifications.

15.1.9.7 Remote Programmer Troubleshooting

To recover from connection, detection, or reservation problems in Remote Programmer functionality, follow the instructions in this section to verify network connectivity, confirm the programming server is running on the remote machine, and resolve any remaining application issues.

Note: User-facing log files are not generated for the remote-side processes.
Attention: RPS is designed for trusted lab and corporate network environments. The client machine and remote machine must be on the same trusted network or connected through an approved VPN. The RPS service requires an open network port on the remote machine. Do not expose this port to the public internet. In the current release, RPS relies on the customer’s network security controls, firewall rules, and VPN infrastructure to protect access to the remote machine.

15.1.9.7.1 Configuring Network Ports

If a connection fails to a remote machine from the Configure Remote Hosts dialog box even though the hostname or IP address is correct, you must verify that the required TCP ports are open on the remote machine.
Note: Ports 57605 and 57606 are the defaults assigned at installation. If the remote Host was installed with a different port configuration, check the actual ports configured on that machine and use them instead.
Perform the following steps on the remote machine (the machine where the programmer is physically connected).
  • AlmaLinux OS/Red Hat® Linux®:
    1. Open the terminal.
    2. Run the following command:

      sudo firewall-cmd --permanent --add-port 57605-57606/tcp

  • Ubuntu:
    1. Open the terminal.
    2. Run the following command:

      sudo ufw allow 57605:57606/tcp

  • Windows® OS:
    1. From the Start Menu, search for Windows Defender Firewall with Advanced Security, right-click, and select Run as administrator.
    2. Click Inbound Rules, then click New Rule.
    3. In the New Inbound Rule Wizard, you are prompted to select the type of rule you want to create. Choose Port to specify that this rule controls traffic based on network port numbers, and click Next.
    4. Select TCP as the protocol, since the remote programmer requires TCP communication.
    5. Select Specific local ports and enter 57605, 57606 to limit TCP communication access to theses two ports. Click Next.
    6. Select Allow the connection and click Next.
    7. Select all three network profile options: Domain, Private, and Public. This ensures that the rule is active regardless of the type of network your computer is connected to. Click Next.
    8. Enter a name for the rule and click Finish.

15.1.9.7.2 Configuring the RPS

When the remote server is reachable on the network but no programmers are detected, refer to the Libero® SoC Media Installer to verify the post-installation checks.

If the issue has not been resolved, uninstall the RPS from the Media Installer and install again.

15.1.9.7.3 Application Issues

In critical cases where normal behavior cannot be achieved, run the script in administrative mode from the bin folder to clean up any stuck processes and memory.

Note: The following solution needs to be considered cautiously and must be used as a last resort.

In case of a critical crash and abnormal behavior from the remote programmer functionality, run the bin/CleanUpRPS script in the RPS's bin folder or command shell.

For a manual equivalent, complete the following instructions to resolve the issue:
  • Linux®: Enter the rm /dev/shm/* command.
  • Windows® OS: Navigate to the C:/ProgramData/boost_interprocess/ folder and remove all the content.
  • Unified Solution: Depending on your operating system, complete the following steps:
  1. Find the following processes:
    • prgsrvdmn
    • prgservapp
    • dbgservapp
  2. Kill all the processes.

Locally Connected Programmer Not Detected in Windows® OS

If everything appears to be working but your locally connected programmer is still not recognized, your antivirus or firewall may be blocking the programming software from operating correctly. To resolve this issue, follow these steps to add exceptions for the required applications:

Add firewall rules for the daemon and related processes by performing the following steps:
  1. Open the command prompt as administrator.
  2. Enter each of the following commands one at a time with the correct installation path. Press the Enter key after entering each command:
    New-NetFirewallRule -DisplayName "Programming and Debug Server" -Direction Inbound -Program "<installation path>\Libero_SoC_<version>\Libero_SoC\Designer\bin\prgsrvdmn.exe" -Action Allow
       
    New-NetFirewallRule -DisplayName "Programming Server" -Direction Inbound -Program "<installation path>\Libero_SoC_<version>\Libero_SoC\Designer\bin\prgservapp.exe" -Action Allow
    New-NetFirewallRule -DisplayName "Debug Server" -Direction Inbound -Program "<installation path>\Libero_SoC_<version>\Libero_SoC\Designer\bin\dbgservapp.exe" -Action Allow

15.1.9.8 Remote Programmer Known Issues and Security Considerations

The following section provide information on current known issues and workarounds (if available) for the Remote Programmer functionality.

Currently no known issues are listed for the Remote Programmer functionality.