UltraScale architecture-based FPGAs contain a BOOTSTS register that stores configuration history. BOOTSTS operates similar to a two-entry FIFO. The most recent configuration status is stored in Status_0, and the current value for Status_0 is shifted into Status_1. The Valid_0 bit indicates if the rest of Status_0 is valid or not. See Boot History Status Register (10110).
The following tables show the BOOTSTS values in some common situations.
| Reserved | WRAP_ERROR | CRC_ERROR | ID_ERROR | WTO_ERROR | IPROG | FALLBACK | VALID | |
|---|---|---|---|---|---|---|---|---|
| Status_1 |
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
| Status_0 |
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
| Reserved | WRAP_ERROR | CRC_ERROR | ID_ERROR | WTO_ERROR | IPROG | FALLBACK | VALID | |
|---|---|---|---|---|---|---|---|---|
| Status_1 |
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
| Status_0 |
0
|
0
|
0
|
0
|
0
|
1
|
0
|
1
|
| Reserved | WRAP_ERROR | CRC_ERROR | ID_ERROR | WTO_ERROR | IPROG | FALLBACK | VALID | |
|---|---|---|---|---|---|---|---|---|
| Status_1 |
0
|
0
|
1
|
0
|
0
|
1
|
0
|
1
|
| Status_0 |
0
|
0
|
0
|
0
|
0
|
1
|
1
|
1
|
Notes for the previous table:
- Status_1 shows
IPROGwas attempted, and a CRC_ERROR was detected for that bitstream. - Status_0 shows a fallback bitstream was
loaded successfully. The IPROG bit was also set in this case, because the fallback
bitstream contains an
IPROGcommand. Although theIPROGcommand is ignored during fallback, the status still records this occurrence.
For an example design, see MultiBoot and Fallback with SPI Flash in UltraScale FPGAs Application Note (XAPP1257).