The Versal® ACAP boot modes are designed for maximum flexibility. This chapter provides a primary boot mode summary, selection considerations, and interface details. The primary boot modes in the PMC are:
- JTAG Boot Mode
- Octal SPI Boot Mode
- Quad SPI Boot Mode
- SD Boot Modes
- eMMC1 Boot Mode
- SelectMAP Boot Mode
Each boot mode uses a set of I/O pins and has a voltage requirement that can affect post-boot peripheral use of shared MIO on a bank. The best overall boot mode solution for an application considers the overall system requirements, performance, cost, and complexity.
The boot modes are categorized into autonomous or supervised boot modes. The autonomous boot modes automatically load the programmable device image from a memory source (SD, eMMC, quad SPI, or octal SPI). The autonomous boot modes provide a basic solution with easy setup. In autonomous boot modes, the POR_B pin release to the first fetch from a boot device is estimated at ~620 μs. This time guides how quickly the flash must be ready to respond to the BootROM. The supervised boot modes require an external processor or controller to load the programmable device image with a command set (JTAG or SelectMAP). An advantage of using a supervised boot mode is that the device image can reside almost anywhere in the host system or over a network connection. The supervised boot modes are multipurpose interfaces that can also be used for system debug and readback.
For systems that require a low-cost solution, QSPI boot modes are ideal with a variety of second-source vendors. For applications that require faster boot times due to power-on latency constraints, the boot modes with wide bus widths are inherently faster. For the boot modes, the QSPI dual-parallel 8-bit or OSPI 8-bit is an optimal choice for a faster boot time. For supervised boot modes, the SelectMAP 32-bit mode provides the fastest option. For applications with large storage capacity requirements, the SD and eMMC1 boot modes support larger boot memory devices.
The MIO-at-a-glance tables should be reviewed to ensure that the requirements for boot and post-boot peripherals are satisfied. This chapter focuses on the primary boot mode options, however, the Versal ACAP is capable of starting with a primary boot mode and then switching to a secondary boot option (i.e., QSPI primary boot, followed by eMMC0 as a secondary boot option to provide larger density and flexibility). See the Versal ACAP System Software Developers Guide (UG1304) for more information on secondary boot options. The following table lists the available primary boot modes. Boot modes that are secure boot capable support both Asymmetric and Symmetric Hardware Root of Trust modes.
The MIO pin numbers are shown in the MIO-at-a-Glance Tables section and the individual controller I/O signal tables.
Mode | MODE[3:0] Pins | Secure Boot Capable | Data Bus Width | Description |
---|---|---|---|---|
Interfaces controlled by external devices | ||||
JTAG |
0000
|
No | 1-bit | Dedicated JTAG interface |
SelectMAP |
1010
|
Yes | 8-bit, 16-bit, 32-bit | SelectMAP bidirectional parallel data bus interface |
Interfaces controlled by on-chip controllers | ||||
OSPI |
1000
|
Yes | 8-bit | Octal SPI interface supports single and dual-stacked flash devices |
QSPI24 |
0001
|
Yes | 1-bit, 2-bit, 4-bit (single or dual-stacked) 8-bit (dual-parallel) |
Quad SPI interface supports the 24-bit (3-byte) flash addresses 1 |
QSPI32 |
0010
|
Yes | 1-bit, 2-bit, 4-bit (single or dual-stacked) 8-bit (dual-parallel) |
Quad SPI interface supports the 32-bit (4-byte) flash addresses. 32-bit flash addressing is required to address flash devices that are greater than 128 Mb. 1 |
eMMC1 v4.51 |
0110
|
Yes | 1-bit, 4-bit, 8-bit | eMMC interface supports eMMC 4.51 at 1.8V |
SD0 (3.0) |
0011
|
Yes | 4-bit | SD interface supports SD 3.0 with a required SD 3.0 compliant external level shifter |
SD1 (2.0) |
0101
|
Yes | 4-bit | SD interface supports SD 2.0 |
SD1 (3.0) |
1110
|
Yes | 4-bit |
SD interface supports SD 3.0 with a required SD 3.0 compliant external level shifter |
|
Boot Pin Usage Guide
The following table illustrates the MIO pins needed for each boot mode. All MIO interfaces are summarized in the tables in the PMC MIO Pins section.
MIO Pin | 0 | 1:2 | 3:11 | 12 | 13 | 14:25 | 26 | 27 | 28:33 | 34 | 35 | 36 | 37:49 | 50:51 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Pin Count | 1 | 2 | 9 | 1 | 1 | 12 | 1 | 1 | 6 | 1 | 1 | 1 | 13 | 2 | |
Octal SPI | 0:12 | - | - | ||||||||||||
Quad SPI | 0:12 | - | - | ||||||||||||
SD0 (3.0) | - | - | 37:49 | - | |||||||||||
SD1 (2.0) | - | 26 | - | 28:33 | - | 50:51 | |||||||||
SD1 (3.0) | - | 26:36 | - | 50:51 | |||||||||||
eMMC1 | 0 | - | 3:12 | - | - | ||||||||||
SMAP | 8 bit | - | 14:25 | - | |||||||||||
16-bit | - | 14:25 | - | 28:35 | - | ||||||||||
32-bit | - | 14:25 | - | 28:51 |
Boot Mode Search Limits
The BootROM has a search limit to locate the device image boot header for every boot mode. If a boot mode search limit is reached without a successful boot, the RCU goes into lockdown and the ERROR_OUT pin is set. The following table lists the boot image search limits for each mode.
Boot Mode | Search Offset Limit |
---|---|
OSPI (single, dual-stacked) | 8 Gb |
QSPI24 (dual-parallel) | 256 Mb |
QSPI24 (single, dual-stacked) | 128 Mb |
QSPI32 (dual-parallel) | 8 Gb |
QSPI32 (single, dual-stacked) | 4 Gb |
SD0 (3.0), SD1 (2.0), SD1 (3.0), or eMMC1 | 8191 FAT files (default) |
eMMC1 (raw) | eMMC device size |