User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 168
UG585 (v1.11) September 27, 2016
Chapter 6: Boot and Configuration
Secure/Non-Secure
For security reasons, CPU 0 is always the first device out of reset among all master modules within
the PS. CPU 1 is held in an WFE state. While the BootROM is running, JTAG is always disabled,
regardless of the reset type, to ensure security. After the BootROM runs, JTAG is enabled if the boot
mode is non-secure.
The BootROM code is also responsible for loading the FSBL/User code. When the BootROM releases
control to stage 1, user software assumes full control of the entire system. The only way to execute
the BootROM again is by generating one of the system resets. The FSBL/User code size, encrypted
and unencrypted, is limited to 192 KB. This limit does not apply with the non-secure
execute-in-place option.
The PS boot source is selected using the BOOT_MODE strapping pins (indicated by a weak pull-up or
pull-down resistor), which are sampled once during power-on reset (POR). The sampled values are
stored in the slcr.BOOT_MODE register.
The BootROM supports encrypted/authenticated, and unencrypted images referred to as secure boot
and non-secure boot, respectively.
The BootROM supports execution of the stage 1 image directly from NOR or Quad-SPI when using
the execute-in-place option, but only for non secure boot images. Execute-in-place is possible only
for NOR and Quad-SPI boot modes.
In secure boot, the CPU, running the BootROM code, decrypts and authenticates the user PS image
on the boot device, stores it in the OCM, and then branches to it.
In non-secure boot, the CPU, running the BootROM code, disables all secure boot features including
the AES unit within the PL before branching to the user image in the OCM memory or the flash
device (if execute-in-place is used).
Any subsequent boot stages for either the PS or the PL are your responsibility and are under your
control. The BootROM code is not accessible to you. Following a stage 1 secure boot, you can
proceed with either secure or non-secure subsequent boot stages. Following a non-secure first stage
boot, only non-secure subsequent boot stages are possible.
Boot Sources
There are five possible boot sources: NAND, NOR, SD card, Quad-SPI, and JTAG. The first four boot
sources are used in master boot methods in which the CPU loads the external boot image from
nonvolatile memory into the PS.
JTAG is the slave boot mode, and is only supported with a non-secure boot. An external host
computer acts as the master to load the boot image into the OCM through a JTAG connection. The
PS CPU remains in idle mode as the boot image is loaded.
The configuration flow for the BootROM is shown in Figure 6-5.