15.1.9 Troubleshooting
(Ask a Question)This section lists the exit codes for PolarFire, RTG4, and SmartFusion 2 and IGLOO 2.
15.1.9.1 Exit Codes Applicable to All Families
(Ask a Question)The following table lists the exit codes applicable to all families.
Programmer | Error Code | Exit Code | Exit Message | Possible Cause | Possible Solution |
---|---|---|---|---|---|
eFP6 (Does not apply to FlashPro6) | — | — | Failed to open eFP6 HID handle | This 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) | — | -7 | Failed to perform cyusb_bulk_transfer | This 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. |
FlashPro5 | 4 | — | General device I/O error | Loss 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
(Ask a Question)The following table lists the PolarFire SoC exit codes.
Error Code | Exit Code | Exit Message | Possible Cause | Possible Solution |
---|---|---|---|---|
0x8020 | -22 | Invalid Public Key | Public key may have been entered incorrectly. | Ensure that the public key is entered correctly. |
15.1.9.3 PolarFire Exit Codes
(Ask a Question)The following table lists the PolarFire exit codes.
Error Code | Exit Code | Exit Message | Possible Cause | Possible Solution |
---|---|---|---|---|
— | 0 | Passed (no error) | — | — |
0x8003 | 5 | Failed to enter programming mode | Unstable/Insufficient voltage level Signal integrity issues on JTAG pins DEVRST_N is tied to LOW. | 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. |
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 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 | 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. |
0x8013 | –18 | External digest check via JTAG/SPI Target 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. |
0x8015 | –20 | FPGA Fabric digest verification: FAIL Deselect procedure 'DO_ENABLE_FABRIC' to remove this digest check. | FPGA Fabric is either erased or the data has been corrupted or tampered with. | If the Fabric is erased, deselect the DO_ENABLE_FABRIC procedure from the VERIFY_DIGEST action. |
0x8016 | –20 | sNVM digest verification: FAIL Deselect procedure 'DO_ENABLE_SNVM' to remove this digest check. | sNVM is either erased or the data has been corrupted or tampered with. | If the sNVM is erased, deselect the DO_ENABLE_SNVM procedure from the VERIFY_DIGEST action. |
0x8018 | –20 | User security policies digest verification: FAIL Deselect procedure 'DO_ENABLE_SECURITY' to remove this digest check. | Security is either erased, or the data has been corrupted or tampered with. | If the security is erased, deselect procedure DO_ENABLE_SECURITY from action VERIFY_DIGEST. |
0x8019 | –20 | UPK1 digest verification: FAIL Deselect procedure 'DO_ENABLE_SECURITY' to remove this digest check. | UPK1 is either erased, or the data has been corrupted or tampered with. | If the UPK1 is erased, deselect procedure DO_ENABLE_SECURITY from action VERIFY_DIGEST. |
0x801A | –20 | UPK2 digest verification: FAIL Deselect procedure 'DO_ENABLE_SECURITY' to remove this digest check. | UPK2 is either erased, or the data has been corrupted or tampered with. | If the UPK2 is erased, deselect procedure DO_ENABLE_SECURITY from action VERIFY_DIGEST. |
0x801B | –20 | Factory row and factory key digest verification: FAIL | Factory row and factory key have been erased through zeroization, or the data has been corrupted or tampered with. | Switch the device (return for FA). |
0x801C | –20 | Fabric configuration digest verification: FAIL Deselect procedure 'DO_ENABLE_FABRIC' to remove this digest check. | Fabric configuration is either erased, or has been corrupted or tampered with. | If the Fabric configuration is erased, deselect procedure DO_ENABLE_FABRIC from action VERIFY_DIGEST. |
0x8052 | –20 | UEK1 digest verification: FAIL Deselect procedure 'DO_ENABLE_SECURITY' to remove this digest check. | UEK1 is either erased, or the data has been corrupted or tampered with. | If the UEK1 is erased, deselect procedure DO_ENABLE_SECURITY from action VERIFY_DIGEST. |
0x8053 | –20 | UEK2 digest verification: FAIL Deselect procedure 'DO_ENABLE_SECURITY' to remove this digest check. | UEK2 is either erased, or the data has been corrupted or tampered with. | If the UEK2 is erased, deselect procedure DO_ENABLE_SECURITY from action VERIFY_DIGEST. |
0x8054 | –20 | DPK digest verification: FAIL Deselect procedure 'DO_ENABLE_SECURITY' to remove this digest check. | DPK is either erased, or the data has been corrupted or tampered with. | If the DPK is erased, deselect procedure DO_ENABLE_SECURITY from action VERIFY_DIGEST. |
0x8057 | –20 | SMK digest verification: FAIL Deselect procedure 'DO_ENABLE_SECURITY' to remove this digest check. | SMK is either erased, or the data has been corrupted or tampered with. | If the SMK is erased, deselect procedure DO_ENABLE_SECURITY from action VERIFY_DIGEST. |
0x8058 | –20 | User Public Key digest verification: FAIL Deselect procedure 'DO_ENABLE_SECURITY' to remove this digest check. | User Public Key is either erased, or the data has been corrupted or tampered with. | If the User Public Key is erased, deselect procedure DO_ENABLE_SECURITY from action VERIFY_DIGEST. |
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 | –22 | Programming Error | Bitstream file has been corrupted or was incorrectly generated. | Regenerate bit stream 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. |
— | — | Bitstream or data is corrupted or noisy. | Unstable/Insufficient voltage level. Signal integrity issues on JTAG pins. | Monitor JTAG supply pins during programming; measure JTAG signals for noise or reflection. |
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 | Failure to read DSN | Device is in System Controller Suspend Mode. Check board connections. | TRSTB should be driven High or disable System Controller Suspend Mode. |
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 | 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. |
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 Bitstream programming action has been disabled in Security Policy Manager. | 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. 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. |
0x8059 | 6 | 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. |
0x805A | 6 | 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. |
0x80EB | 7 | Error 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) |
0x802C | 14 | sNVM Encryption Key (SMK) is not initialized | sNVM Encryption Key (SMK) is not initialized. | Initialized sNVM Encryption Key (SMK) |
0x8014 | -19 | Failed while running verify digest | Factory 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) |
0x805C | -20 | eNVM digest verification: FAIL Deselect procedure 'DO_ENABLE_ENVM' to remove this digest check | For PolarFire SoC Libero design which contains eNVM, running VERIFY_DIGEST after programming device will fail with "eNVM digest verification: FAIL." | Deselect procedure "DO_ENABLE_ENVM" from action "VERIFY_DIGEST" |
0x80EA | -36 | Device 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) |
0x8012 | -39 | Failed to read device certificate | Unstable/Insufficient voltage level. Signal integrity issues on JTAG pins. | 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. |
0x8051 | -40 | Failed to zeroize the device | Zeroization through JTAG/SPI Target is disabled in user security settings. | Enable zeroization through JTAG/SPI Target in user security settings. |
0x8056 | -42 | Failed 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. |
— | 4 | General device I/O error | This error could be caused by a poor connection between the programmer and the PC, which results in a general USB communication error. Note: This error is specific to FP5 and eFP5 programmers. The occurrence of the error is random and cannot be predicted. | Try unplugging and plugging the programmer and then rescan for new programmers to refresh the programmer list. |
0x8040 | -32 | Brownout error detected during programming | Supplied power is insufficient for the device. | Connect the device to an adequate and stable power supply. |
0x805D | 6 | 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. |
0x800A | 11 | Failed to verify Security. | User lock settings may have changed. | Verify that the user lock settings remain consistent. |
0x800C | 11 | Failed to verify Security. | Permanent lock settings may have changed. | Verify that the permanent lock settings remain consistent. |
15.1.9.4 RTG4 Exit Codes
(Ask a Question)The following table lists the RTG4 exit codes.
Error Code | Exit Code | Exit Message | Possible Cause | Possible Solution |
---|---|---|---|---|
— | 0 |
Passed (no error) | — | — |
0x8001 | -24 |
Failure to read DSN |
Device is in System Controller Suspend Mode. Check board connections. |
TRSTB should be driven High on device power-up. Disable System Controller Suspend Mode in the Programming Bitstream Settings tool within Libero and reprogram the device. |
0x8002 | 5 |
Device is busy |
Unstable/Insufficient VDDIx voltage level. |
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. |
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. |
0x8007 | 11 |
Failed to verify FPGA Array |
Device is programmed with a different design or the component is blank. Unstable/Insufficient voltage level. Signal integrity issues on JTAG pins. |
Verify 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. |
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 |
FPGA array 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. |
0x800A | -19 |
Failed to verify digest: Instruction timed out |
Unstable/Insufficient voltage level. Signal integrity issues on JTAG pins. | 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. |
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 are corrupted or noisy. |
Bitstream file has been corrupted. Bitstream was incorrectly generated. Unstable/Insufficient voltage level. Signal integrity issues on JTAG pins. |
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. |
0x800E | 15 |
Failed to query programming bit stream settings: Instruction timed out |
Unstable/Insufficient voltage level. Signal integrity issues on JTAG pins. | 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. |
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. |
0x8010 | -21 |
Operation has been disabled by programming bit stream settings |
Operation has been disabled by the Programming Bitstream Settings tool in Libero. User disabled Fabric Erase/Write/Verify and attempted to Erase/Program/Verify the device. |
Drive TRSTB high during device power-up. Enable the disabled operation in the Programming Bitstream Settings tool in Libero and reprogram the device. |
0x8011 | -32 |
Failed to check bit stream: Instruction timed out |
Unstable/Insufficient voltage level. Signal integrity issues on JTAG pins. |
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. |
0x8012 | -32 |
Failed to erase device: Instruction timed out |
Unstable/Insufficient voltage level Signal integrity issues on JTAG pins. |
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. |
0x8013 | -32 | Failed to verify device: Instruction timed out | Unstable/Insufficient voltage level Signal integrity issues on JTAG pins. | 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. |
0x8014 | -32 |
Failed to program device: Instruction timed out |
Unstable/Insufficient voltage level. Signal integrity issues on JTAG pins. |
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. |
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. |
— | 4 | General device I/O error | This error could be caused by poor connection between the programmer
and the PC which results in a general USB communication error. Note: This error is
specific to FP5 and eFP5 programmers. The occurrence of the error is
random and cannot be predicted. | Try unplugging and plugging the programmer and then rescan for new programmers to refresh the programmer list. |
15.1.9.5 SmartFusion 2 and IGLOO 2 Exit Codes
(Ask a Question)Check for the following common troubleshooting steps before looking at the troubleshooting table.
- Monitor the related power supplies that can cause issue during programming; check for transients outside of Microchip specifications.
- Make sure to tie
DEVRST_N
to HIGH, prior to programming the device.
The following table lists the SmartFusion 2 and IGLOO 2 exit codes.
Error Code | Exit Code | Exit Message | Possible Cause | Possible Solution |
---|---|---|---|---|
— | 0 | Passed (no error) | — | — |
0x8003 | 5 | Failed to enter programming mode | Unstable/Insufficient voltage level. Signal integrity issues on JTAG pins. DEVRST_N is tied to LOW. | 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. | 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. |
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. | 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. |
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. | 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. |
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. | 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. |
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 | –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. |
0x8041 | –23 | Authentication 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. Attempting to erase a device with no security using initiator security file. 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, you cannot erase it. 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 | Failure to read DSN | Device is in System Controller Suspend Mode. Check board connections. | TRSTB must be driven High or disable "System Controller Suspend Mode." |
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. |
0x802F | –30 | JTAG interface is protected by UPK1 | Invalid or no UPK1 is provided. | User needs to provide correct UPK1 to unlock device. |
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. | 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. |
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. |
0x804D | –36 | <HSM related error message based on scenario> | HSM communication error. HSM call returns error. | Check whether the communication path to HSM is active. Make sure project is loaded properly and that HSM tickets have not been cleaned. |
0x804E | –37 | Device already has Security programmed. Please erase the device using initiator 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. |
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." |
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. |
— | 4 | General device I/O error | This error could be caused by a poor
connection between the programmer and the PC which results in a general USB
communication error. Note: This error is
specific to FP5 and eFP5 programmers. 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. |