BootROM unique responsibilities to boot the Spartan UltraScale+ FPGAs. If an issue is encountered during the boot process then an error condition can be flagged in the ERROR_STATUS register. The ERROR_STATUS register is accessible via JTAG. The BootROM error conditions are listed in the following table. See PLM Error Codes for error conditions flagged during the PDI boot and configuration.
| Error Code | Description |
|---|---|
| 0x0100 | eFUSE cache reload timeout failure. |
| 0x0101 | eFUSE cache parity error observed even after reload. |
| 0x0104 | PL done bit initialization did not get set within configured time. |
| 0x0107 | Hardware exception in ROM |
| 0x0120 | Indicates hardware exception due to misaligned instruction address. |
| 0x0121 | Indicates hardware exception due to instruction access fault. |
| 0x0122 | Indicates hardware exception due to illegal instruction. |
| 0x0124 | Indicates hardware exception due to load address misaligned. |
| 0x0125 | Indicates hardware exception due to load access fault. |
| 0x0126 | Indicates hardware exception due to store address misaligned. |
| 0x0127 | Indicates hardware exception due to store access fault. |
| 0x012B | Indicates hardware exception due to environment call. |
| 0x012F | Indicates hardware exceptions from PMC dedicated configuration controller. |
| 0x0201 | Invalid configuration mode read from BOOT_MODE_USER register. Ensure configuration mode pins are set properly for the requested configuration mode. |
| 0x0202 | Image search cannot be done for slave configuration modes. |
| 0x0203 | BootROM unable to detect the image/width in SPI_24 configuration mode. |
| 0x0204 | BootROM unable to detect the image/width in SPI_32 configuration mode. |
| 0x0205 | BootROM unable to initialize Master OSPI configuration mode. Image not found. |
| 0x0206 | SelectMAP initialization failed |
| 0x0207 | SBI JTAG initialization failed |
| 0x0208 | DMA0/DMA1 test failed |
| 0x020B | Master SPI (SPI_24 or SPI_32) MultiBoot value is beyond the search limit. |
| 0x022C | Master OSPI configuration failed |
| 0x022D | Master SPI (SPI_24 or SPI_32) timeout occurred while reading the PDI identification word. |
| 0x022E | Master SPI (SPI_24 or SPI_32) PDI identification word not matched. |
| 0x0230 | The length of the opcode is not suitable for Master SPI (SPI_24 or SPI_32) configuration mode bus width. |
| 0x0231 | Slave serial initialization error |
| 0x0233 | Secure configuration not allowed in JTAG configuration mode. |
| 0x0234 | Flash Limit exceeded while searching for bus width. |
| 0x0235 | Configuration attempt with a disabled configuration mode. |
| 0x0300 | Boot header does not have a XLNX signature. |
| 0x0301 | Boot header checksum not matched. |
| 0x0304 | Width word read from device failed. Common for all configuration modes. |
| 0x0305 | Decryption with eFUSE only set in eFUSE, and key source is not from eFUSE. |
| 0x0306 | Boot header source offset for PLM is overlapping with boot header. |
| 0x0307 | Data Partition or total data partition length is crossing the permissible limit of 40.5 KB for PLM. Ensure these are not zero in your programmable device image (PDI). |
| 0x0309 | Golden image fallback search not supported for slave configuration modes. |
| 0x030A | Image not found and reached end of SPI flash. |
| 0x030B | Image not found and reached end of OSPI flash. |
| 0x030D | Device read failed during the certificate read. This is common error for all configuration modes. |
| 0x030E | All the PPK revoked through eFUSE. Boot and configuration not allowed. |
| 0x030F | All the IDs revoked through eFUSE. Boot and configuration not allowed. |
| 0x0310 | Max 3 PPK choices can be made. Valid choice values as 0,1,2. |
| 0x0311 | Chosen PPK is revoked through eFUSE. Boot and configuration not allowed. |
| 0x0312 | Revoke ID should be 0-95 |
| 0x0313 | Chosen Revoke ID is revoked through eFUSE. Boot and configuration not allowed. |
| 0x0314 | PPK Hash not matched with any of the three eFUSE locations. |
| 0x0315 | PLM length indicate as zero in PDI image |
| 0x0318 | PUF helper from boot header not allowed when decryption through eFUSE only set. |
| 0x0319 | PLM length is not aligned to 4 B |
| 0x031A | Key source changed from previous to current image and authentication not enabled. |
| 0x031B | Authentication status is changed between previous and current image. Boot and configuration not allowed. |
| 0x031C | Source offset of PMC firmware in image is not aligned to 4B. |
| 0x031D | Total PMC firmware length is not aligned to 4B. |
| 0x031E | Verifying the PPK used has a non-zero hash in eFUSE |
| 0x0323 | PUFHD Length is Invalid. |
| 0x0324 | Master SPI (SPI_24 or SPI_32) or Master OSPI: Device not showing idle status after completion of stig read. |
| 0x0325 | Master SPI (SPI_24 or SPI_32) or Master OSPI: Idle check failed after the DMA operation. |
| 0x0326 | Master SPI (SPI_24 or SPI_32) or Master OSPI: DMA read operation not completed within timeout. |
| 0x0327 | Data not received from slave serial or slave selectMAP host within timeout. |
| 0x0328 | SelectMAP indicated an abort operation. |
| 0x0329 | Total PLM length is less than PLM length in boot header, which is not allowed. |
| 0x032A | Source offset of PLM in flash is beyond search limit. |
| 0x032B | Data not received or not indicated that it is user JTAG configuration mode within time out. |
| 0x032D | Source offset beyond 16 MB for SPI_24 configuration mode. |
| 0x032F | Slave serial read error |
| 0x0330 | Slave serial overflow error |
| 0x0331 | Total PLM length is greater than expected over head when authentication/encryption/integrity is enabled. |
| 0x0332 | Boot header hash mismatch error |
| 0x0333 | Error indicates unable to read the hash block data from PDI. |
| 0x0334 | Error indicates unable to read the PPK key from PDI image. |
| 0x0335 | SPK header read error |
| 0x0336 | Error indicates unable to read the SPK key from PDI image. |
| 0x0337 | Error indicates unable to read the SPK signature from PDI image. |
| 0x0338 | Hash block signature read error |
| 0x0339 | Error indicates boot header hash block size incorrect. |
| 0x033A | Actual PPK/SPK size error |
| 0x033B | Actual PDI signature size error |
| 0x033C | Total PPK/SPK size error |
| 0x033D | Total PDI signature size error |
| 0x033E | Total SPK sign size error |
| 0x033F | Actual SPK sign size error |
| 0x0346 | SPK signature verification failed |
| 0x0347 | Hash block signature verification failed |
| 0x0348 | PUF image is detected |
| 0x0349 | Failed to read the hashblock GCM tag from PDI image. |
| 0x034A | Invalid PUF helper data |
| 0x034B | PUF HD not programmed |
| 0x0388 | Secure JTAG configuration is not allowed. |
| 0x0389 | DPA CM disabled through eFUSE and trying to enable through boot header. |
| 0x03A0 | In case of JTAG, secure configurationnot allowed error when authentication/encryption enabled. |
| 0x03A1 | DPA CM disabled through eFUSE and trying to enable through boot header. |
| 0x03B2 | SHA init error while performing operation over PPK. |
| 0x03B3 | SHA digest error while performing operation over PPK. |
| 0x03C2 | SHA init error while performing operation over BH. |
| 0x03C3 | SHA digest error while performing operation over BH. |
| 0x03D0 | AES AAD error |
| 0x03D5 | DMA wait for done error while transferring AES AAD data. |
| 0x03D7 | DMA wait for done error while transferring GCM tag. |
| 0x03D8 | AES wait for done error |
| 0x03D9 | GCM tag mismatch error |
| 0x0400 | Invalid address for register initialization. |
| 0x0401 | Device read error after register initialization. |
| 0x0402 | Boot header does not match original after register initialization. |
| 0x0500 | Key clear failed at fallback |
| 0x050B | Family key lock error after using it to decrypt obfuscated key. |
| 0x050C | Family key unlock error while using it to decrypt obfuscated key. |
| 0x050D | DMA timeout occurred during the AAD operation. |
| 0x050E | Key source is invalid |
| 0x050F | PUF command not valid |
| 0x0510 | DMA done not asserted after pushing the KEK to AES engine within time out. |
| 0x0511 | Fetch Key Source value for eFUSE error. |
| 0x0512 | KEK key load failed into AES |
| 0x0513 | KEK IV load failed into AES |
| 0x0514 | KEK key source value fetch error |
| 0x0515 | PLM IV criteria not matched |
| 0x052B | SSS configuration error for AES engine. |
| 0x05BC | SHA init error |
| 0x05BD | SHA start error |
| 0x05BE | SHA init error while calculating hash on PLM. |
| 0x05BF | SHA start error while calculating hash on PLM. |
| 0x05C0 | SHA error while updating PLM as data. |
| 0x05C1 | SHA error while updating PPK as data. |
| 0x05C2 | SHA error while updating SPK as data. |
| 0x05C3 | SHA error while updating SPK ID as data. |
| 0x05C4 | SHA finish error while calculation hash on PLM. |
| 0x0702 | Word read not asserted by PUF during regeneration. |
| 0x0703 | Key not ready within timeout by PUF. |
| 0x0704 | Key not converged during regeneration. |
| 0x0705 | Regeneration mode is not matching with either 4 Kb. |
| 0x0706 | PUF zeroization failed |
| 0x0707 | Invalid PUF command |
| 0x0708 | SHA invalid mode error |
| 0x0709 | SHA not initialized error |
| 0x070A | SHA not started error |
| 0x070B | SSS configuration error |
| 0x070C | SHA invalid parameter error |
| 0x070D | SHA not update error while checking state of SHA. |
| 0x070E | Secure Lockdown triggered |
| 0x070F | Secure Lockdown completed |
| 0x0710 | Mem Clear failed during Secure Lockdown. |
| 0x0711 | Mem Clear operation timed out during Secure Lockdown. |
| 0x0712 | Scan Clear Failed during Secure Lockdown. |
| 0x0713 | Scan Clear operation timed out during Secure Lockdown. |
| 0x0714 | Key Zeroize failed during Secure Lockdown. |
| Error Code | Description |
|---|---|
| 0x0100 | eFUSE cache reload timeout failure. |
| 0x0101 | eFUSE cache parity error observed even after reload. |
| 0x0103 | INIT_B polling error |
| 0x0104 | This error comes when PL done bit initialization did not get set within configured time. |
| 0x0107 | Hardware exception in ROM |
| 0x0120 | Indicates hardware exception due to misaligned instruction address. |
| 0x0121 | Indicates hardware exception due to instruction access fault. |
| 0x0122 | Indicates hardware exception due to illegal instruction. |
| 0x0124 | Indicates hardware exception due to load address misaligned. |
| 0x0125 | Indicates hardware exception due to load access fault. |
| 0x0126 | Indicates hardware exception due to store address misaligned. |
| 0x0127 | Indicates hardware exception due to store access fault. |
| 0x012B | Indicates hardware exception due to environment call. |
| 0x012F | Indicates hardware exceptions from PMC dedicated configuration controller. |
| 0x0201 | Invalid configuration mode read from BOOT_MODE_USER register. Ensures configuration mode pins are set properly for requested configuration mode. |
| 0x0202 | Image search cannot be done for slave configuration modes. |
| 0x0203 | BootROM unable to detect the image/width in SPI_24 configuration mode. |
| 0x0204 | BootROM unable to detect the image/width in SPI_32 configuration mode. |
| 0x0205 | BootROM unable to initialize Master OSPI configuration mode. Image not found. |
| 0x0206 | SelectMAP initialization failed |
| 0x0207 | SBI JTAG initialization failed |
| 0x0208 | DMA0/DMA1 test failed |
| 0x020B | Master SPI (SPI_24 or SPI_32) MultiBoot values are beyond the search limit. |
| 0x0211 | MultiBoot value is beyond the search limit. |
| 0x022C | Master OSPI configuration failed |
| 0x022D | Master SPI (SPI_24 or SPI_32) timeout occurred while reading the PDI identification word. |
| 0x022E | Master SPI (SPI_24 or SPI_32) PDI identification word not matched. |
| 0x0230 | Error indicates the length of the opcode is not suitable for Master SPI (SPI_24 or SPI_32) bus width. |
| 0x0231 | Slave serial initialization error |
| 0x0233 | Secure configuration not allowed in JTAG |
| 0x0234 | Flash Limit exceeded while searching for Bus Width. |
| 0x0235 | Configuration attempted with a disabled configuration interface. |
| 0x0300 | XLNX signature not found in the PDI image. |
| 0x0301 | Boot header check sum not matched. |
| 0x0304 | Width word read from device failed. Common for all configuration modes. |
| 0x0305 | Decryption with eFUSE only set in eFUSE and key source is not from eFUSE. |
| 0x0306 | Boot header source offset is overlapping with boot header. |
| 0x0307 | Invalid PLM Length in the Boot Header. Max Allowed PLM Length is 72.5KB. |
| 0x0309 | Golden image search not supported for slave boot modes. |
| 0x030A | Image not found and reached end of SPI flash. |
| 0x030B | Image not found and reached end of OSPI flash. |
| 0x030D | Device read failed during the certificate read. This is common error for all configuration modes. |
| 0x030E | All the PPK revoked through eFUSE. Boot and configuration not allowed. |
| 0x030F | All the IDs revoked through eFUSE. Boot and configuration not allowed. |
| 0x0310 | Max 2 PPK choices can be made. Valid choice values as 0;1. |
| 0x0311 | Chosen PPK is revoked through eFUSE. Boot and configuration not allowed. |
| 0x0312 | Revoke ID should be 0-95 |
| 0x0313 | Chosen Revoke ID is revoked through eFUSE. Boot and configuration not allowed. |
| 0x0314 | PPK Hash not matched with any of the three eFUSE locations. |
| 0x0315 | PLM length indicate as zero in PDI image. |
| 0x0318 | PUF helper from boot header not allowed when decryption through eFUSE only set. |
| 0x0319 | PMC Firmware length is not aligned to 4B. |
| 0x031A | Key source changed from previous to current image and authentication not enabled. |
| 0x031B | Authentication status is changed between previous and current image. Boot and configuration not allowed. |
| 0x031C | Source offset of PLM in image is not aligned to 4B. |
| 0x031D | Total PMC Firmware length is not aligned to 4B. |
| 0x031E | Ensure that the PPK used has a non-zero hash in eFUSE. |
| 0x0323 | PUFHD Length is invalid |
| 0x0324 | OSPI device not showing idle status after completion of stig read. |
| 0x0325 | OSPI idle check failed after the DMA operation. |
| 0x0326 | OSPI DMA read operation not completed within timeout. |
| 0x0327 | Data not received from slave serial or slave selectMAP host within timeout. |
| 0x0328 | SelectMAP configuration mode indicated an abort operation. |
| 0x0329 | Total PLM length is less than PLM length in boot header, which is not allowed. |
| 0x032A | Source offset of PLM in flash is beyond search limit. |
| 0x032B | Data not received or not indicated that it is user JTAG configuration mode within time out. |
| 0x032D | Source offset beyond 16 MB for SPI_24 configuration mode. |
| 0x032F | Slave serial read error |
| 0x0330 | Slave serial overflow error |
| 0x0331 | Total PLM length is greater than expected over head when authentication/encryption/integrity is enabled. |
| 0x0332 | Boot header hash mismatch error |
| 0x0333 | Error indicates unable to read the hash block data from PDI. |
| 0x0334 | Error indicates unable to read the PPK key from PDI image. |
| 0x0335 | SPK header read error |
| 0x0336 | Error indicates unable to read the SPK key from PDI image. |
| 0x0337 | Error indicates unable to read the SPK signature from PDI image. |
| 0x0338 | Hash block signature read error. |
| 0x0339 | Error indicates boot header hash block size incorrect. |
| 0x033A | Actual PPK/SPK size error |
| 0x033B | Actual PDI signature size error |
| 0x033C | Total PPK/SPK size error |
| 0x033D | Total PDI signature size error |
| 0x033E | Invalid Total SPK Signature Size in ECDSA Authentication. |
| 0x033F | Invalid Actual SPK Signature Size in ECDSA Authentication. |
| 0x0340 | Invalid Total SPK Signature Size in HSS Authentication. |
| 0x0341 | Invalid Total Actual Signature Size in HSS Authentication. |
| 0x0342 | Invalid Total SPK Signature Size in LMS Authentication. |
| 0x0343 | Invalid Total Actual Signature Size in LMS Authentication. |
| 0x0349 | SPK signature verification failed |
| 0x034A | Hash block signature verification failed. |
| 0x034B | PUF image is detected |
| 0x034C | Failed to read the hashblock GCM tag from PDI image |
| 0x034D | Invalid PUF helper data |
| 0x034E | PUF HD not programmed |
| 0x03A0 | Secure JTAG boot is not allowed |
| 0x03A1 | DPA CM disabled through eFUSE and trying to enable through boot header. |
| 0x03B2 | SHA init error while performing operation over PPK. |
| 0x03B3 | SHA digest error while performing operation over PPK. |
| 0x03C2 | SHA init error while performing operation over BH. |
| 0x03C3 | SHA digest error while performing operation over BH. |
| 0x03D0 | AES AAD error |
| 0x03D5 | DMA wait for done error while transferring AES AAD data. |
| 0x03D7 | DMA wait for done error while transferring GCM tag. |
| 0x03D8 | AES wait for done error |
| 0x03D9 | GCM tag mismatch error |
| 0x03DA | Boot Header copy glitch error |
| 0x03DB | ECDSA signature R component zero |
| 0x03DC | ECDSA signature S component zero |
| 0x03DD | ECDSA signature R component ECC order error |
| 0x03DE | ECDSA signature S component ECC order error |
| 0x03DF | ECDSA public key validation failed |
| 0x03E0 | ECDSA signature verification failed |
| 0x0400 | Not an allowed address for register initialization. |
| 0x0401 | Device read failed after register initialization. |
| 0x0402 | Boot header is not matching with original after register initialization. |
| 0x0500 | Key Clear failed at Fallback |
| 0x050B | Family key lock error after using it to decrypt obfuscated key. |
| 0x050C | Family key unlock error while using it to decrypt obfuscated key. |
| 0x050D | DMA timeout occurred during the AAD operation. |
| 0x050E | Key source is invalid |
| 0x050F | PUF command not valid |
| 0x0510 | DMA done not asserted after pushing the KEK to AES engine with in time out. |
| 0x0511 | Fetch Key Source value for eFUSE error. |
| 0x0512 | KEK key load failed into AES |
| 0x0513 | KEK IV load failed into AES |
| 0x0514 | KEK Key Source value fetch error |
| 0x0515 | PLM IV criteria not matched |
| 0x052B | SSS configuration error for AES engine |
| 0x05BC | SHA init error |
| 0x05BD | SHA start error |
| 0x05BE | SHA init error while calculating hash on PLM. |
| 0x05BF | SHA start error while calculating hash on PLM. |
| 0x05C0 | SHA Update error while calculating hash on PLM. |
| 0x05C1 | SHA Update error while calculating hash on PPK. |
| 0x05C2 | SHA Update error while calculating hash on SPK. |
| 0x05C3 | SHA Update error while calculating hash on SPK ID. |
| 0x05C4 | SHA finish error |
| 0x0702 | Word read not asserted by PUF during regeneration. |
| 0x0703 | Key not ready within timeout by PUF. |
| 0x0704 | Key not converged during regeneration. |
| 0x0705 | Regeneration mode is not matching with either 12K/4K. |
| 0x0706 | PUF zeroization failed |
| 0x0707 | Invalid PUF command |
| 0x0708 | SHA invalid mode error |
| 0x0709 | SHA not initialized error |
| 0x070A | SHA not started error |
| 0x070B | SSS configuration error |
| 0x070C | SHA invalid parameter error |
| 0x070D | SHA not update error while checking state of SHA. |
| 0x070E | Secure lockdown triggered |
| 0x070F | Secure lockdown completed |
| 0x0710 | Mem clear failed during secure lockdown. |
| 0x0711 | Mem clear operation timed out during secure lockdown. |
| 0x0712 | Scan clear failed during secure lockdown. |
| 0x0713 | Scan clear operation timed out during secure lockdown. |
| 0x0714 | Key zeroize failed during secure lockdown. |