In the AMD Zynq™ UltraScale+™ MPSoC, the CSU bootROM supports MultiBoot and fallback boot image search where the configuration security unit CSU ROM or bootROM searches through the boot device looking for a valid image to load. The sequence is as follows:
- BootROM searches for a valid image identification string (XLNX as image ID) at offsets of 32 KB in the flash.
- After finding a valid identification value, validates the checksum for the header.
- If the checksum is valid, the bootROM loads the image. This allows for more than one image in the flash.
In MultiBoot:
- CSU ROM or FSBL or the user application must initiate the boot image search to choose a different image from which to boot.
- To initiate this image search, CSU ROM or FSBL updates the MultiBoot offset to point to the intended boot image, and generates a soft reset by writing into the CRL_APB register.
The following figure shows an example of the fallback using the MultiBoot flow.
Figure 1. Fallback using the MultiBoot Flow
Note: The same flow is applicable to both Secure and Non-secure boot
methods.
In the example fallback boot flow figure, the following sequence occurs:
- Initially, the CSU bootROM loads the boot image found at
0x000_0000
. - If this image is found to be corrupted or the decryption and authentication fails, CSU
bootROM increments the MultiBoot offset by one and searches for a valid boot image
at
0x000_8000
(32 KB offset). - If the CSU bootROM does not find the valid identification value, it again increments the MultiBoot offset by 1, and searches for a valid boot image at the next 32 KB aligned address.
- The CSU bootROM repeats this until a valid boot image is found or the image search
limit is reached. In this example flow, the next image is shown at
0x002_0000
corresponding to a MultiBoot offset value of four. - In the example MultiBoot flow, to load the second image that is at the address
0x002_0000
, MutiBoot offset is updated to four by FSBL/CSU-ROM. When the MultiBoot offset is updated, soft reset the system.
The following table shows the MultiBoot image search range for different booting devices.
Boot Device | MultiBoot Image Search Range |
---|---|
QSPI Single (24-bit) | 16 MB |
QSPI Dual (24-bit) | 32 MB |
QSPI Single (32-bit) | 256 MB |
QSPI Dual (32-bit) | 512 MB |
NAND | 128 MB |
SD/EMMC | 8,191 boot files |
USB | Not applicable |