7/30/2019
Cora Z7 Reference Manual [Reference.Digilentinc]
https://reference.digilentinc.com/reference/programmable-logic/cora-z7/reference-manual?_ga=2.21685883.1349070004.1564406803-1961480359.… 11/23
Unlike Xilinx FPGA devices, APSoC devices such as the Zynq-7007S are designed around the processor, which acts as a master to the
programmable logic fabric and all other on-chip peripherals in the processing system. This causes the Zynq boot process to be more similar
to that of a microcontroller than an FPGA. This process involves the processor loading and executing a Zynq Boot Image, which includes a
First Stage Bootloader (FSBL), a bitstream for configuring the programmable logic (optional), and a user application. The boot process is
broken into three stages:
Stage 0
After the Cora Z7 is powered on, or the Zynq is reset (in software or by pressing SRST), the processor (CPU0 for the Cora Z7-10) begins
executing an internal piece of read-only code called the BootROM. If and only if the Zynq was just powered on, the BootROM will first
latch the state of the mode pins into the mode register (the mode pins are attached to JP2 on the Cora Z7). If the BootROM is being
executed due to a reset event, then the mode pins are not latched, and the previous state of the mode register is used. This means that the
Cora Z7 needs a power cycle to register any change in the programming mode jumper (JP2). Next, the BootROM copies an FSBL from the
form of non-volatile memory specified by the mode register to the 256 KB of internal RAM () within the APU (called On-Chip Memory, or
OCM). The FSBL must be wrapped up in a Zynq Boot Image in order for the BootROM to properly copy it. The last thing the BootROM
does is hand off execution to the FSBL in OCM.
Stage 1
During this stage, the FSBL first finishes configuring the PS components, such as the DDR memory controller. Then, if a bitstream is
present in the Zynq Boot Image, it is read and used to configure the PL. Finally, the user application is loaded into memory from the Zynq
Boot Image, and execution is handed off to it.
Stage 2
The last stage is the execution of the user application that was loaded by the FSBL. This can be any sort of program, from a simple “Hello
World” design, to a Second Stage Boot loader used to boot an operating system like Linux. For a more thorough explanation of the boot
process, refer to Chapter 6 of the
Zynq Technical Reference manual
(http://www.xilinx.com/support/documentation/user_guides/ug585-
The Zynq Boot Image is created using Vivado and Xilinx Software Development Kit (Xilinx SDK). For information on creating this image
please refer to the available Xilinx documentation for these tools.
The Cora Z7 supports two different boot modes: microSD and JTAG. The boot mode is selected using the Mode jumper (JP2), which
affects the state of the Zynq configuration pins after power-on. Figure 3.1 depicts how the Zynq configuration pins are connected on the
Cora Z7.
Figure 3.1. Cora Z7 configuration pins.
The two boot modes are described in the following sections.
The Cora Z7 supports booting from a microSD card inserted into connector J10. The following procedure will allow the Zynq to boot from
microSD with a standard Zynq Boot Image created with the Xilinx tools:
1. Format the microSD card with a FAT32 file system.
2. Copy the Zynq Boot Image created with Xilinx SDK to the microSD card.
3. Rename the Zynq Boot Image on the microSD card to BOOT.bin.
3.1 microSD Boot Mode