Secondary Boot Process and Device Choices - 2023.2 English

Versal Adaptive SoC System Software Developers Guide (UG1304)

Document ID
Release Date
2023.2 English

The boot process can also involve an optional secondary boot device. In this case, the boot process starts with a PLM and other initial images loaded from a primary boot device. The rest of the images are then loaded from a secondary boot device which is configured by a PLM. The secondary boot device contains a PDI that includes images and configuration data that needs to be loaded from the secondary boot device. This secondary boot device does not contain a PLM or a boot header. At POR/system reset, the boot process starts with the primary boot. This process is the same as in the primary boot process:

  • Reads boot mode register to determine the primary boot device
  • Loads the PLM from the specified primary boot device into the PPU RAM
  • Releases the PPU to execute the PLM
    Note: The secondary boot process occurs if a secondary boot device is specified in a field in the PDI meta header.
  • Determines the specified secondary boot device from a field in PDI meta header
  • Uses the specified secondary boot device to load the remainder of the PDI content

The secondary boot device options include:

  • eMMC0, eMMC1
    Note: There are two controllers (eMMC0 and eMMC1). Each controller allows two different sets of MIO to be assigned or an EMIO option. You must ensure that the MIOs configured for these devices are not in conflict with the MIO pins of other boot devices to support secondary boot on eMMC0 and eMMC1.
  • Ethernet
    Note: When Ethernet is used as a secondary boot device, Versal devices are first booted to U-Boot using the primary boot device. U-Boot can then use Ethernet to complete the boot process.
  • OSPI
  • PCIe┬« interface
    1. First, the PLM is loaded from the primary boot device into the PPU RAM.
    2. Then, the PLM runs and initializes the Cache Coherent Interconnect for Accelerators (CCIX) PCIe Gen4 Module (CPM) block in PCIe Endpoint (EP) mode.
    3. Finally, the PCIe host, as a secondary boot device, loads the rest of the images.
      Note: PCIe interface is supported only as secondary boot device.
  • QSPI
  • SD0, SD1
  • USB: The secondary PDI is downloaded using dfu_util to a fixed DDR memory address (0x50000000). The dfu_util is an open source utility available for Windows and Linux. The PLM then processes the PDI.

    To indicate USB as a secondary boot mode, specify USB as the boot_device attribute in the BIF file.

  • SelectMAP (SMAP): Use smap as the boot device attribute for SelectMAP as secondary boot mode in the BIF file.
  • Image Store: It can also be used as source for secondary boot device by specifying imagestore attribute and PDI ID in the BIF file.

Example Secondary Boot Combinations

  • Any non-SD eMMC primary boot and SD/eMMC as secondary boot mode
  • eMMC boot partition 1/2 as primary boot and eMMC user area as secondary boot