diff options
Diffstat (limited to 'docs')
-rw-r--r-- | docs/getting_started/user-guide.rst | 39 | ||||
-rw-r--r-- | docs/plat/qemu_sbsa.rst | 48 |
2 files changed, 65 insertions, 22 deletions
diff --git a/docs/getting_started/user-guide.rst b/docs/getting_started/user-guide.rst index ae276f25..e540fd06 100644 --- a/docs/getting_started/user-guide.rst +++ b/docs/getting_started/user-guide.rst @@ -9,7 +9,7 @@ is outside the scope of this document. This document assumes that the reader has previous experience running a fully bootable Linux software stack on Juno or FVP using the prebuilt binaries and -filesystems provided by `Linaro`_. Further information may be found in the +filesystems provided by Linaro. Further information may be found in the `Linaro instructions`_. It also assumes that the user understands the role of the different software components required to boot a Linux system: @@ -48,15 +48,8 @@ Install the required packages to build TF-A with the following command: sudo apt-get install device-tree-compiler build-essential gcc make git libssl-dev -TF-A has been tested with Linaro Release 18.04. - Download and install the AArch32 (arm-eabi) or AArch64 little-endian -(aarch64-linux-gnu) GCC cross compiler. If you would like to use the latest -features available, download GCC 8.3-2019.03 compiler from -`arm Developer page`_. Otherwise, the `Linaro Release Notes`_ documents which -version of the compiler to use for a given Linaro Release. Also, these -`Linaro instructions`_ provide further guidance and a script, which can be used -to download Linaro deliverables automatically. +(aarch64-linux-gnu) GCC 8.3-2019.03 cross compiler from `Arm Developer page`_. Optionally, TF-A can be built using clang version 4.0 or newer or Arm Compiler 6. See instructions below on how to switch the default compiler. @@ -73,6 +66,10 @@ In addition, the following optional packages and tools may be needed: This tool can be found in most Linux distributions. Inkscape is needed to generate the actual \*.png files. +TF-A has been tested with pre-built binaries and file systems from +`Linaro Release 19.06`_. Alternatively, you can build the binaries from +source using instructions provided at the `Arm Platforms User guide`_. + Getting the TF-A source code ---------------------------- @@ -127,7 +124,7 @@ Building TF-A ------------- - Before building TF-A, the environment variable ``CROSS_COMPILE`` must point - to the Linaro cross compiler. + to the cross compiler. For AArch64: @@ -1405,7 +1402,7 @@ a single FIP binary. It assumes that a `Linaro Release`_ has been installed. separately for AArch32. - Before building BL32, the environment variable ``CROSS_COMPILE`` must point - to the AArch32 Linaro cross compiler. + to the AArch32 cross compiler. .. code:: shell @@ -1426,7 +1423,7 @@ a single FIP binary. It assumes that a `Linaro Release`_ has been installed. make realclean - Before building BL1 and BL2, the environment variable ``CROSS_COMPILE`` - must point to the AArch64 Linaro cross compiler. + must point to the AArch64 cross compiler. .. code:: shell @@ -2158,11 +2155,9 @@ Running the software on Juno This version of TF-A has been tested on variants r0, r1 and r2 of Juno. -To execute the software stack on Juno, the version of the Juno board recovery -image indicated in the `Linaro Release Notes`_ must be installed. If you have an -earlier version installed or are unsure which version is installed, please -re-install the recovery image by following the -`Instructions for using Linaro's deliverables on Juno`_. +To execute the software stack on Juno, installing the latest Arm Platforms +software deliverables is recommended. Please install the deliverables by +following the `Instructions for using Linaro's deliverables on Juno`_. Preparing TF-A images ~~~~~~~~~~~~~~~~~~~~~ @@ -2197,11 +2192,11 @@ wakeup interrupt from RTC. *Copyright (c) 2013-2019, Arm Limited and Contributors. All rights reserved.* -.. _arm Developer page: https://developer.arm.com/open-source/gnu-toolchain/gnu-a/downloads -.. _Linaro: `Linaro Release Notes`_ -.. _Linaro Release: `Linaro Release Notes`_ -.. _Linaro Release Notes: https://community.arm.com/dev-platforms/w/docs/226/old-release-notes -.. _Linaro instructions: https://community.arm.com/dev-platforms/w/docs/304/arm-reference-platforms-deliverables +.. _Arm Developer page: https://developer.arm.com/open-source/gnu-toolchain/gnu-a/downloads +.. _Linaro Release: http://releases.linaro.org/members/arm/platforms +.. _Linaro Release 19.06: http://releases.linaro.org/members/arm/platforms/19.06 +.. _Linaro instructions: https://git.linaro.org/landing-teams/working/arm/arm-reference-platforms.git/about +.. _Arm Platforms User guide: https://git.linaro.org/landing-teams/working/arm/arm-reference-platforms.git/about/docs/user-guide.rst .. _Instructions for using Linaro's deliverables on Juno: https://community.arm.com/dev-platforms/w/docs/303/juno .. _Arm Platforms Portal: https://community.arm.com/dev-platforms/ .. _Development Studio 5 (DS-5): https://developer.arm.com/products/software-development-tools/ds-5-development-studio diff --git a/docs/plat/qemu_sbsa.rst b/docs/plat/qemu_sbsa.rst new file mode 100644 index 00000000..e04a63c7 --- /dev/null +++ b/docs/plat/qemu_sbsa.rst @@ -0,0 +1,48 @@ +Trusted Firmware-A for QEMU SBSA target +======================================== + +Trusted Firmware-A (TF-A) implements the EL3 firmware layer for QEMU SBSA +Armv8-A. While running Qemu from command line, we need to supply two Flash +images. First Secure BootRom is supplied by -pflash argument. This Flash image +is made by EDK2 build system by composing BL1 and FIP. Second parameter for Qemu +is responsible for Non-secure rom which also given with -pflash argument and +contains of UEFI and EFI variables (also made by EDK2 build system). Semihosting +is not used + +When QEMU starts all CPUs are released simultaneously, BL1 selects a +primary CPU to handle the boot and the secondaries are placed in a polling +loop to be released by normal world via PSCI. + +BL2 edits the FDT, generated by QEMU at run-time to add a node describing PSCI +and also enable methods for the CPUs. + +Current limitations: + +- Only cold boot is supported +- No instructions for how to load a BL32 (Secure Payload) + +To build TF-A: + +:: + + git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git tfa + cd tfa + export CROSS_COMPILE=aarch64-linux-gnu- + make PLAT=qemu_sbsa all fip + +Images will be placed at build/qemu_sbsa/release (bl1.bin and fip.bin). +Need to copy them into top directory for EDK2 compilation. + +:: + + cp build/qemu_sbsa/release/bl1.bin ../ + cp build/qemu_sbsa/release/fip.bin ../ + +Those images cannot be used by itself (no semihosing support). Flash images are built by +EDK2 build system, refer to edk2-platform repo for full build instructions. + +:: + + git clone https://github.com/tianocore/edk2-platforms.git + Platform/Qemu/SbsaQemu/Readme.md + |