Merge pull request #1316 from davidcunado-arm/dc/version_update

Release v1.5: Update minor version number to 5
diff --git a/docs/user-guide.rst b/docs/user-guide.rst
index 33f124a..5794855 100644
--- a/docs/user-guide.rst
+++ b/docs/user-guide.rst
@@ -38,7 +38,7 @@
 RAM. For best performance, use a machine with a quad-core processor running at
 2.6GHz with 16GB of RAM.
 
-The software has been tested on Ubuntu 14.04 LTS (64-bit). Packages used for
+The software has been tested on Ubuntu 16.04 LTS (64-bit). Packages used for
 building the software were installed from that distribution unless otherwise
 specified.
 
@@ -867,9 +867,12 @@
 the project Makefile contains two targets, which both utilise the
 ``checkpatch.pl`` script that ships with the Linux source tree.
 
-To check the entire source tree, you must first download a copy of
-``checkpatch.pl`` (or the full Linux source), set the ``CHECKPATCH`` environment
-variable to point to the script and build the target checkcodebase:
+To check the entire source tree, you must first download copies of
+``checkpatch.pl``, ``spelling.txt`` and ``const_structs.checkpatch`` available
+in the `Linux master tree`_ scripts directory, then set the ``CHECKPATCH``
+environment variable to point to ``checkpatch.pl`` (with the other 2 files in
+the same directory) and build the target 
+checkcodebase:
 
 ::
 
@@ -1149,10 +1152,15 @@
 Note: Pre-built binaries for AArch32 are available from Linaro Release 16.12
 onwards. Before that release, pre-built binaries are only available for AArch64.
 
-Note: follow the full instructions for one platform before switching to a
+Note: Follow the full instructions for one platform before switching to a
 different one. Mixing instructions for different platforms may result in
 corrupted binaries.
 
+Note: The uboot image downloaded by the Linaro workspace script does not always
+match the uboot image packaged as BL33 in the corresponding fip file. It is
+recommended to use the version that is packaged in the fip file using the
+instructions below.
+
 #. Clean the working directory
 
    ::
@@ -1177,11 +1185,11 @@
    current working directory. The SCP\_BL2 image corresponds to
    ``scp-fw.bin`` and BL33 corresponds to ``nt-fw.bin``.
 
-   Note: the fiptool will complain if the images to be unpacked already
+   Note: The fiptool will complain if the images to be unpacked already
    exist in the current directory. If that is the case, either delete those
    files or use the ``--force`` option to overwrite.
 
-   Note for AArch32, the instructions below assume that nt-fw.bin is a custom
+   Note: For AArch32, the instructions below assume that nt-fw.bin is a custom
    Normal world boot loader that supports AArch32.
 
 #. Build TF-A images and create a new FIP for FVP
@@ -1924,6 +1932,7 @@
 .. _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): http://www.arm.com/products/tools/software-tools/ds-5/index.php
+.. _Linux master tree: <https://github.com/torvalds/linux/tree/master/>
 .. _Dia: https://wiki.gnome.org/Apps/Dia/Download
 .. _here: psci-lib-integration-guide.rst
 .. _Trusted Board Boot: trusted-board-boot.rst
diff --git a/readme.rst b/readme.rst
index 63b542d..fba3ac5 100644
--- a/readme.rst
+++ b/readme.rst
@@ -1,21 +1,24 @@
-Trusted Firmware-A - version 1.4
+Trusted Firmware-A - version 1.5
 ================================
 
 Trusted Firmware-A (TF-A) provides a reference implementation of secure world
-software for `Armv8-A`_, including a `Secure Monitor`_ executing at Exception
-Level 3 (EL3). It implements various Arm interface standards, such as:
+software for `Armv7-A and Armv8-A`_, including a `Secure Monitor`_ executing
+at Exception Level 3 (EL3). It implements various Arm interface standards,
+such as:
 
 -  The `Power State Coordination Interface (PSCI)`_
 -  Trusted Board Boot Requirements (TBBR, Arm DEN0006C-1)
 -  `SMC Calling Convention`_
 -  `System Control and Management Interface`_
+-  `Software Delegated Exception Interface (SDEI)`_
 
-As far as possible the code is designed for reuse or porting to other Armv8-A
-model and hardware platforms.
+Where possible, the code is designed for reuse or porting to other Armv7-A and
+Armv8-A model and hardware platforms.
 
 Arm will continue development in collaboration with interested parties to
 provide a full reference implementation of Secure Monitor code and Arm standards
-to the benefit of all developers working with Armv8-A TrustZone technology.
+to the benefit of all developers working with Armv7-A and Armv8-A TrustZone
+technology.
 
 License
 -------
@@ -37,7 +40,10 @@
    project under the terms of the NCSA license (also known as the University of
    Illinois/NCSA Open Source License).
 
-This Release
+-  The zlib source code is licensed under the Zlib license, which is a
+   permissive license compatible with BSD-3-Clause.
+
+This release
 ------------
 
 This release provides a suitable starting point for productization of secure
@@ -93,12 +99,30 @@
    recovery mode), and packaging of the various firmware images into a
    Firmware Image Package (FIP).
 
--  Pre-integration of TBB with the Arm TrustZone CryptoCell product, to take
-   advantage of its hardware Root of Trust and crypto acceleration services.
+-  Pre-integration of TBB with the Arm CryptoCell product, to take advantage of
+   its hardware Root of Trust and crypto acceleration services.
+
+-  Reliability, Availability, and Serviceability (RAS) functionality, including
+
+   -  A Secure Partition Manager (SPM) to manage Secure Partitions in
+      Secure-EL0, which can be used to implement simple management and
+      security services.
+
+   -  An SDEI dispatcher to route interrupt-based SDEI events.
+
+   -  An Exception Handling Framework (EHF) that allows dispatching of EL3
+      interrupts to their registered handlers, to facilitate firmware-first
+      error handling.
+
+-  A dynamic configuration framework that enables each of the firmware images
+   to be configured at runtime if required by the platform. It also enables
+   loading of a hardware configuration (for example, a kernel device tree)
+   as part of the FIP, to be passed through the firmware stages.
 
 -  Support for alternative boot flows, for example to support platforms where
    the EL3 Runtime Software is loaded using other firmware or a separate
-   secure system processor.
+   secure system processor, or where a non-TF-A ROM expects BL2 to be loaded
+   at EL3.
 
 -  Support for the GCC, LLVM and Arm Compiler 6 toolchains.
 
@@ -113,12 +137,13 @@
 r0, r1 and r2 of the `Juno Arm Development Platform`_.
 
 Various AArch64 builds of this release have been tested on the following Arm
-`FVP`_\ s (64-bit host machine only):
+Fixed Virtual Platforms (`FVP`_) without shifted affinities, and that do not
+support threaded CPU cores (64-bit host machine only):
 
-NOTE: Unless otherwise stated, the FVP Version is 11.0, Build 11.0.34.
+NOTE: Unless otherwise stated, the FVP Version is 11.2 Build 11.2.33.
 
 -  ``Foundation_Platform``
--  ``FVP_Base_AEMv8A-AEMv8A`` (Version 8.5, Build 0.8.8502)
+-  ``FVP_Base_AEMv8A-AEMv8A`` (and also Version 9.0, Build 0.8.9005)
 -  ``FVP_Base_Cortex-A35x4``
 -  ``FVP_Base_Cortex-A53x4``
 -  ``FVP_Base_Cortex-A57x4-A53x4``
@@ -127,44 +152,56 @@
 -  ``FVP_Base_Cortex-A72x4``
 -  ``FVP_Base_Cortex-A73x4-A53x4``
 -  ``FVP_Base_Cortex-A73x4``
--  ``FVP_CSS_SGM-775`` (Version 11.0, Build 11.0.36)
+
+Additionally, various AArch64 builds were tested on the following Arm `FVP`_ s
+with shifted affinities, supporting threaded CPU cores (64-bit host machine
+only).
+
+-  ``FVP_Base_Cortex-A55x4-A75x4`` (Version 0.0, build 0.0.4395)
+-  ``FVP_Base_Cortex-A55x4`` (Version 0.0, build 0.0.4395)
+-  ``FVP_Base_Cortex-A75x4`` (Version 0.0, build 0.0.4395)
+-  ``FVP_Base_RevC-2xAEMv8A``
 
 Various AArch32 builds of this release has been tested on the following Arm
-`FVP`_\ s (64-bit host machine only):
+`FVP`_\ s without shifted affinities, and that do not support threaded CPU cores
+(64-bit host machine only):
 
--  ``FVP_Base_AEMv8A-AEMv8A`` (Version 8.5, Build 0.8.8502)
+-  ``FVP_Base_AEMv8A-AEMv8A``
 -  ``FVP_Base_Cortex-A32x4``
 
 The Foundation FVP can be downloaded free of charge. The Base FVPs can be
 licensed from Arm. See the `Arm FVP website`_.
 
-All the above platforms have been tested with `Linaro Release 17.04`_.
+All the above platforms have been tested with `Linaro Release 17.10`_.
 
 This release also contains the following platform support:
 
--  HiKey and HiKey960 boards
+-  HiKey, HiKey960 and Poplar boards
 -  MediaTek MT6795 and MT8173 SoCs
 -  NVidia T132, T186 and T210 SoCs
 -  QEMU emulator
+-  Raspberry Pi 3 board
 -  RockChip RK3328, RK3368 and RK3399 SoCs
 -  Socionext UniPhier SoC family
 -  Xilinx Zynq UltraScale + MPSoC
 
-Still to Come
+Still to come
 ~~~~~~~~~~~~~
 
 -  More platform support.
 
+-  Improved dynamic configuration support.
+
 -  Ongoing support for new architectural features, CPUs and System IP.
 
--  Ongoing support for new `PSCI`_, `SCMI`_ and TBBR features.
+-  Ongoing support for new Arm system architecture specifications.
 
 -  Ongoing security hardening, optimization and quality improvements.
 
 For a full list of detailed issues in the current code, please see the `Change
 Log`_ and the `GitHub issue tracker`_.
 
-Getting Started
+Getting started
 ---------------
 
 Get the TF-A source code from `GitHub`_.
@@ -175,7 +212,7 @@
 See the `Firmware Design`_ for information on how the TF-A works.
 
 See the `Porting Guide`_ as well for information about how to use this
-software on another Armv8-A platform.
+software on another Armv7-A or Armv8-A platform.
 
 See the `Contributing Guidelines`_ for information on how to contribute to this
 project and the `Acknowledgments`_ file for a list of contributors to the
@@ -195,17 +232,19 @@
 
 *Copyright (c) 2013-2018, Arm Limited and Contributors. All rights reserved.*
 
-.. _Armv8-A: http://www.arm.com/products/processors/armv8-architecture.php
+.. _Armv7-A and Armv8-A: https://developer.arm.com/products/architecture/a-profile
 .. _Secure Monitor: http://www.arm.com/products/processors/technologies/trustzone/tee-smc.php
 .. _Power State Coordination Interface (PSCI): PSCI_
 .. _PSCI: http://infocenter.arm.com/help/topic/com.arm.doc.den0022d/Power_State_Coordination_Interface_PDD_v1_1_DEN0022D.pdf
 .. _SMC Calling Convention: http://infocenter.arm.com/help/topic/com.arm.doc.den0028b/ARM_DEN0028B_SMC_Calling_Convention.pdf
 .. _System Control and Management Interface: SCMI_
 .. _SCMI: http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/DEN0056A_System_Control_and_Management_Interface.pdf
+.. _Software Delegated Exception Interface (SDEI): SDEI
+.. _SDEI: http://infocenter.arm.com/help/topic/com.arm.doc.den0054a/ARM_DEN0054A_Software_Delegated_Exception_Interface.pdf
 .. _Juno Arm Development Platform: http://www.arm.com/products/tools/development-boards/versatile-express/juno-arm-development-platform.php
 .. _Arm FVP website: FVP_
 .. _FVP: https://developer.arm.com/products/system-design/fixed-virtual-platforms
-.. _Linaro Release 17.04: https://community.arm.com/dev-platforms/b/documents/posts/linaro-release-notes-deprecated#LinaroRelease17.04
+.. _Linaro Release 17.10: https://community.arm.com/dev-platforms/b/documents/posts/linaro-release-notes-deprecated#LinaroRelease17.10
 .. _OP-TEE Secure OS: https://github.com/OP-TEE/optee_os
 .. _NVidia Trusted Little Kernel: http://nv-tegra.nvidia.com/gitweb/?p=3rdparty/ote_partner/tlk.git;a=summary
 .. _Trusty Secure OS: https://source.android.com/security/trusty