---
# System prepended metadata

title: '[WIP]Secure Boot with AMP'

---

# [WIP]Secure Boot with AMP

This document is a documentation of how the revised secure boot for the demonstration purpose works, along with the steps of environment building and some of the solutions to the trivial issues that people might be faced with during the process of reprocing the demonstration with AMP architecture.

## Outline
- What is Asymmetric Multiprocessing (AMP)
- The building process of secure boot demonstration with AMP

## What is Asymmetric Multiprocessing (AMP) [1]
**Assymetric multiprocessing** (AMP or ASMP, abbreviated as AMP in the folowing) is the concept in which the processors (namingly interconnected central processing unit, CPU) of a multiprocessor system are not treated equally.
It is the opposite concept as **Symmetric mulciprocessing** (SMP), where all the processors within a multiprocessor system are under control of ONE  operating system for exploiting the full potential of the multiprocessor system itself.



## Building Process of Secure Boot Demonstration with AMP
This part is further divided into several dependent chapters as followed:
- Building your own OS with PetaLinux
- Building AMP projects with Xilinx Vivado design suite
- Building AMP version of PYNQ v2.5
- 

### Building your own OS with PetaLinux 
This part will focus on how to install and utilize the XIlinx PetaLinux to build your own customized OS.
This tutorial is aimed for the following settings, for other OSes or versions of tools, readers are highly encouraged to look for other tutorials. 
- PetaLinux version: Xilinx PetaLinux Tool 2019.2
- Target OS: PYNQ v2.5
- Target hardware: Xilinx ZedBoard evaluation board with Zynq-7020 SoC

**Prerequisites before Installing Xilinx PetaLinux 2019.2**
According to the official Xilinx user guide for PetaLinux 2019.2[2], the following prerequisites are necessities for a successful build of PetaLinux 2019.2
- A working environment eith Linux-based OS
- Minumum requirements on hardware is needed (CPU/RAM/hard disk space) 
- A bunch of supporting libraries and tools must be installed prior to installing of PetaLinux

*For more details, please refer to [2]

**Installing PetaLinux 2019.2**
1. Download suitable installing package from Xilinx website:
https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/embedded-design-tools.html

2. Create an installing path or folder on your Linux machine.
3. Execute the downloaded package and install it inside the folder just created.
4. The installing process could be time-consuming or even failure due to the lack of hardware resources, please check again if your machine surfices for the minumum requirement as stated in the reference guide[2].
5. There will be a series of agreements during the process, please make sure your working enviroment have installed suitable a text editor to modify those agreements, and selecting **"YES"** for all options is the only choice guaranteed to a successful build of PetaLinux 2019.2.
6. PetaLinux will be ready for use after step 1 to 5.

**Environment Setting**
After installation of PetaLinux 2019.2 to the designated working folder, some environment settings are needed before the actual using the tool.

1. Enter your working directory with PetaLinux 2019.2
2. Source the *settings.sh* script.
    $ source <path-to-installed-PetaLinux>/settings.sh
3. If no error message occurs, PetaLinux is ready for use.


### Building AMP Projects with Xilinx Vivado Design Suite

### Building AMP version of PYNQ v2.5

## Reference
[1] Wikipedia Asymmetric Multiprocessing
https://en.wikipedia.org/wiki/Asymmetric_multiprocessing
[2] PetaLinux Tools Documentation Reference Guide UG1144(v2019.2)
Available at: https://www.xilinx.com/support/documentation/sw_manuals/xilinx2019_2/ug1144-petalinux-tools-reference-guide.pdf