Fallback and MultiBoot Flow - 2023.1 English

Zynq UltraScale+ MPSoC Software Developer Guide (UG1137)

Document ID
UG1137
Release Date
2023-08-04
Version
2023.1 English

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.

Table 1. Boot Devices and MultiBoot Image Search Range
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