User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 151
UG585 (v1.11) September 27, 2016
Chapter 6: Boot and Configuration
from the boot device (execute-in-place). All of the header parameters are described in section
6.3.2 BootROM Header.
The last two functions of the BootROM are to disable access to its ROM code and transfer CPU code
execution to the FSBL/User code. The execution of the BootROM is detailed in section
6.3.1 BootROM Flowchart.
PL Initialization and Configuration
The PL must be powered-up before it can be initialized and then configured with the bitstream. The
power-up and bring-up stages of the PL operate independently of the PS, but PL power up needs to
maintain a certain timing relationship with the POR reset signal of the PS. For more details refer to
section 6.3.3 BootROM Performance: PS_POR_B De-assertion Guidelines, page 177.
The PL can be under the control of FSBL/User code using GPIOs or serial interfaces to external
devices. Internally, the BootROM and FSBL/User code can determine the state of the PL power.
FSBL/User code can receive interrupts when the PL power state changes.
The PL boot process has four stages: start-up, initialize, configure, and enable. The start-up stage is
self-timed after power is ramped-up to a stable state. The initialization stage clears the SRAM cells in
the PL to prepare it for programming by the bitstream (configuration stage). The functional PS-PL
interfaces are then enabled under PS software control. The BootROM does not configure the PL, but
it can read its status to determine when it can enable the PL JTAG chain and also when it needs to use
the HMAC/AES decryption hardware.
Secure PS Images and PL Bitstreams
The secure environment starts with an encrypted boot process where the PS software acts as the
system master and the BootROM reads an encrypted FSBL/user code image from the selected flash
memory device and processes it using the hardened, PL based Hash-based Message Authentication
Code (HMAC) and an Advanced Encryption Standard (AES) module with a Cipher Block Chaining
Mode (CBC). These modules are accessed from the PS through the DevC interface and the
downstream Processor Configuration Access Port (PCAP) located in the PL.
The BootROM verifies that the PL has power before attempting to decrypt the FSBL/User code. After
the PS has finished executing the BootROM, the PL can be configured by the FSBL/user software
using an encrypted bitstream or the PL can be configured or reconfigured later.
The low-level secure environment starts at the I/O pin activity and all potential access points to the
PS operating environment. The secure operating environment is maintained through the BootROM
execution and transferred to a secure software operating environment.
Various device configuration functions and operating examples are described in section 6.4 Device
Boot and PL Configuration. The details of secure boot are covered in Chapter 32, Device Secure Boot.
Security at the operating system level are described in WP429
, TrustZone Technology Support in
Zynq-7000 All Programmable SoC. The BootROM can also authenticate files using RSA, refer to section
32.2.5 RSA Authentication.