summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorDavid Cunado <david.cunado@arm.com>2018-03-14 17:57:31 +0000
committerDavid Cunado <david.cunado@arm.com>2018-03-15 17:00:34 +0000
commit230326fa56e5efab95ac45d7f499cb7c8d8836c0 (patch)
tree73b41fbe68c5ca13d4dbdbebc24079a19b298021 /docs
parent4def07d5352893a33af18b04795f875fabff14de (diff)
Update change-log.rst for v1.5
Updated change-log.rst with summary of changes since release v1.4. Change-Id: I56b5a30d13a5a7099942535cbaeff0e2a5c5804e Signed-off-by: David Cunado <david.cunado@arm.com>
Diffstat (limited to 'docs')
-rw-r--r--docs/change-log.rst291
1 files changed, 289 insertions, 2 deletions
diff --git a/docs/change-log.rst b/docs/change-log.rst
index 00d166ee..41e53a5e 100644
--- a/docs/change-log.rst
+++ b/docs/change-log.rst
@@ -4,6 +4,292 @@
.. contents::
+Trusted Firmware-A - version 1.5
+================================
+
+New features
+------------
+
+- Added new firmware support to enable RAS (Reliability, Availability, and
+ Serviceability) functionality.
+
+ - Secure Partition Manager (SPM): A Secure Partition is a software execution
+ environment instantiated in S-EL0 that can be used to implement simple
+ management and security services. The SPM is the firmware component that
+ is responsible for managing a Secure Partition.
+
+ - SDEI dispatcher: Support for interrupt-based SDEI events and all
+ interfaces as defined by the SDEI specification v1.0, see
+ `SDEI Specification`_
+
+ - Exception Handling Framework (EHF): Framework that allows dispatching of
+ EL3 interrupts to their registered handlers which are registered based on
+ their priorities. Facilitates firmware-first error handling policy where
+ asynchronous exceptions may be routed to EL3.
+
+ Integrated the TSPD with EHF.
+
+- Updated PSCI support:
+
+ - Implemented PSCI v1.1 optional features `MEM_PROTECT` and `SYSTEM_RESET2`.
+ The supported PSCI version was updated to v1.1.
+
+ - Improved PSCI STAT timestamp collection, including moving accounting for
+ retention states to be inside the locks and fixing handling of wrap-around
+ when calculating residency in AArch32 execution state.
+
+ - Added optional handler for early suspend that executes when suspending to
+ a power-down state and with data caches enabled.
+
+ This may provide a performance improvement on platforms where it is safe
+ to perform some or all of the platform actions from `pwr_domain_suspend`
+ with the data caches enabled.
+
+- Enabled build option, BL2_AT_EL3, for BL2 to allow execution at EL3 without
+ any dependency on TF BL1.
+
+ This allows platforms which already have a non-TF Boot ROM to directly load
+ and execute BL2 and subsequent BL stages without need for BL1. This was not
+ previously possible because BL2 executes at S-EL1 and cannot jump straight to
+ EL3.
+
+- Implemented support for SMCCC v1.1, including `SMCCC_VERSION` and
+ `SMCCC_ARCH_FEATURES`.
+
+ Additionally, added support for `SMCCC_VERSION` in PSCI features to enable
+ discovery of the SMCCC version via PSCI feature call.
+
+- Added Dynamic Configuration framework which enables each of the boot loader
+ stages to be dynamically configured at runtime if required by the platform.
+ The boot loader stage may optionally specify a firmware configuration file
+ and/or hardware configuration file that can then be shared with the next boot
+ loader stage.
+
+ Introduced a new BL handover interface that essentially allows passing of 4
+ arguments between the different BL stages.
+
+ Updated cert_create and fip_tool to support the dynamic configuration files.
+ The COT also updated to support these new files.
+
+- Code hygiene changes and alignment with MISRA guideline:
+
+ - Fix use of undefined macros.
+
+ - Achieved compliance with Mandatory MISRA coding rules.
+
+ - Achieved compliance for following Required MISRA rules for the default
+ build configurations on FVP and Juno platforms : 7.3, 8.3, 8.4, 8.5 and
+ 8.8.
+
+- Added support for Armv8.2-A architectural features:
+
+ - Updated translation table set-up to set the CnP (Common not Private) bit
+ for secure page tables so that multiple PEs in the same Inner Shareable
+ domain can use the same translation table entries for a given stage of
+ translation in a particular translation regime.
+
+ - Extended the supported values of ID_AA64MMFR0_EL1.PARange to include the
+ 52-bit Physical Address range.
+
+ - Added support for the Scalable Vector Extension to allow Normal world
+ software to access SVE functionality but disable access to SVE, SIMD and
+ floating point functionality from the Secure world in order to prevent
+ corruption of the Z-registers.
+
+- Added support for Armv8.4-A architectural feature Activity Monitor Unit (AMU)
+ extensions.
+
+ In addition to the v8.4 architectural extension, AMU support on Cortex-A75
+ was implemented.
+
+- Enhanced OP-TEE support to enable use of pageable OP-TEE image. The Arm
+ standard platforms are updated to load up to 3 images for OP-TEE; header,
+ pager image and paged image.
+
+ The chain of trust is extended to support the additional images.
+
+- Enhancements to the translation table library:
+
+ - Introduced APIs to get and set the memory attributes of a region.
+
+ - Added support to manage both priviledge levels in translation regimes that
+ describe translations for 2 Exception levels, specifically the EL1&0
+ translation regime, and extended the memory map region attributes to
+ include specifying Non-privileged access.
+
+ - Added support to specify the granularity of the mappings of each region,
+ for instance a 2MB region can be specified to be mapped with 4KB page
+ tables instead of a 2MB block.
+
+ - Disabled the higher VA range to avoid unpredictable behaviour if there is
+ an attempt to access addresses in the higher VA range.
+
+ - Added helpers for Device and Normal memory MAIR encodings that align with
+ the Arm Architecture Reference Manual for Armv8-A (Arm DDI0487B.b).
+
+ - Code hygiene including fixing type length and signedness of constants,
+ refactoring of function to enable the MMU, removing all instances where
+ the virtual address space is hardcoded and added comments that document
+ alignment needed between memory attributes and attributes specified in
+ TCR_ELx.
+
+- Updated GIC support:
+
+ - Introduce new APIs for GICv2 and GICv3 that provide the capability to
+ specify interrupt properties rather than list of interrupt numbers alone.
+ The Arm platforms and other upstream platforms are migrated to use
+ interrupt properties.
+
+ - Added helpers to save / restore the GICv3 context, specifically the
+ Distributor and Redistributor contexts and architectural parts of the ITS
+ power management. The Distributor and Redistributor helpers also support
+ the implementation-defined part of GIC-500 and GIC-600.
+
+ Updated the Arm FVP platform to save / restore the GICv3 context on system
+ suspend / resume as an example of how to use the helpers.
+
+ Introduced a new TZC secured DDR carve-out for use by Arm platforms for
+ storing EL3 runtime data such as the GICv3 register context.
+
+- Added support for Armv7-A architecture via build option ARM_ARCH_MAJOR=7.
+ This includes following features:
+
+ - Updates GICv2 driver to manage GICv1 with security extensions.
+
+ - Software implementation for 32bit division.
+
+ - Enabled use of generic timer for platforms that do not set
+ ARM_CORTEX_Ax=yes.
+
+ - Support for Armv7-A Virtualization extensions [DDI0406C_C].
+
+ - Support for both Armv7-A platforms that only have 32-bit addressing and
+ Armv7-A platforms that support large page addressing.
+
+ - Included support for following Armv7 CPUs: Cortex-A12, Cortex-A17,
+ Cortex-A7, Cortex-A5, Cortex-A9, Cortex-A15.
+
+ - Added support in QEMU for Armv7-A/Cortex-A15.
+
+- Enhancements to Firmware Update feature:
+
+ - Updated the FWU documentation to describe the additional images needed for
+ Firmware update, and how they are used for both the Juno platform and the
+ Arm FVP platforms.
+
+- Enhancements to Trusted Board Boot feature:
+
+ - Added support to cert_create tool for RSA PKCS1# v1.5 and SHA384, SHA512
+ and SHA256.
+
+ - For Arm platforms added support to use ECDSA keys.
+
+ - Enhanced the mbed TLS wrapper layer to include support for both RSA and
+ ECDSA to enable runtime selection between RSA and ECDSA keys.
+
+- Added support for secure interrupt handling in AArch32 sp_min, hardcoded to
+ only handle FIQs.
+
+- Added support to allow a platform to load images from multiple boot sources,
+ for example from a second flash drive.
+
+- Added a logging framework that allows platforms to reduce the logging level
+ at runtime and additionally the prefix string can be defined by the platform.
+
+- Further improvements to register initialisation:
+
+ - Control register PMCR_EL0 / PMCR is set to prohibit cycle counting in the
+ secure world. This register is added to the list of registers that are
+ saved and restored during world switch.
+
+ - When EL3 is running in AArch32 execution state, the Non-secure version of
+ SCTLR is explicitly initialised during the warmboot flow rather than
+ relying on the hardware to set the correct reset values.
+
+- Enhanced support for Arm platforms:
+
+ - Introduced driver for Shared-Data-Structure (SDS) framework which is used
+ for communication between SCP and the AP CPU, replacing Boot-Over_MHU
+ (BOM) protocol.
+
+ The Juno platform is migrated to use SDS with the SCMI support added in
+ v1.3 and is set as default.
+
+ The driver can be found in the plat/arm/css/drivers folder.
+
+ - Improved memory usage by only mapping TSP memory region when the TSPD has
+ been included in the build. This reduces the memory footprint and avoids
+ unnecessary memory being mapped.
+
+ - Updated support for multi-threading CPUs for FVP platforms - always check
+ the MT field in MPDIR and access the bit fields accordingly.
+
+ - Support building for platforms that model DynamIQ configuration by
+ implementing all CPUs in a single cluster.
+
+ - Improved nor flash driver, for instance clearing status registers before
+ sending commands. Driver can be found plat/arm/board/common folder.
+
+- Enhancements to QEMU platform:
+
+ - Added support for TBB.
+
+ - Added support for using OP-TEE pageable image.
+
+ - Added support for LOAD_IMAGE_V2.
+
+ - Migrated to use translation table library v2 by default.
+
+ - Added support for SEPARATE_CODE_AND_RODATA.
+
+- Applied workarounds CVE-2017-5715 on Arm Cortex-A57, -A72, -A73 and -A75, and
+ for Armv7-A CPUs Cortex-A9, -A15 and -A17.
+
+- Applied errata workaround for Arm Cortex-A57: 859972.
+
+- Applied errata workaround for Arm Cortex-A72: 859971.
+
+- Added support for Poplar 96Board platform.
+
+- Added support for Raspberry Pi 3 platform.
+
+- Added Call Frame Information (CFI) assembler directives to the vector entries
+ which enables debuggers to display the backtrace of functions that triggered
+ a synchronous abort.
+
+- Added ability to build dtb.
+
+- Added support for pre-tool (cert_create and fiptool) image processing
+ enabling compression of the image files before processing by cert_create and
+ fiptool.
+
+ This can reduce fip size and may also speed up loading of images. The image
+ verification will also get faster because certificates are generated based on
+ compressed images.
+
+ Imported zlib 1.2.11 to implement gunzip() for data compression.
+
+- Enhancements to fiptool:
+
+ - Enabled the fiptool to be built using Visual Studio.
+
+ - Added padding bytes at the end of the last image in the fip to be
+ facilitate transfer by DMA.
+
+Issues resolved since last release
+----------------------------------
+
+- TF-A can be built with optimisations disabled (-O0).
+
+- Memory layout updated to enable Trusted Board Boot on Juno platform when
+ running TF-A in AArch32 execution mode (resolving `tf-issue#501`_).
+
+Known Issues
+------------
+
+- DTB creation not supported when building on a windows host. This step in the
+ build process is skipped when running on a windows host.
+
Trusted Firmware-A - version 1.4
================================
@@ -141,7 +427,7 @@ New features
- Added version 2 of translation table library that allows different
translation tables to be modified by using different 'contexts'. Version 1
- of the transalation table library only allows the current EL's translation
+ of the translation table library only allows the current EL's translation
tables to be modified.
Version 2 of the translation table also added support for dynamic
@@ -285,7 +571,7 @@ Known Issues
- Trusted Board Boot currently does not work on Juno when running Trusted
Firmware in AArch32 execution state due to error when loading the sp_min to
- memory becasue of lack of free space available. See `tf-issue#501`_ for more
+ memory because of lack of free space available. See `tf-issue#501`_ for more
details.
- The errata workaround for A53 errata 843419 is only available from binutils
@@ -1361,6 +1647,7 @@ releases of TF-A.
*Copyright (c) 2013-2018, Arm Limited and Contributors. All rights reserved.*
+.. _SDEI Specification: http://infocenter.arm.com/help/topic/com.arm.doc.den0054a/ARM_DEN0054A_Software_Delegated_Exception_Interface.pdf
.. _PSCI Integration Guide: psci-lib-integration-guide.rst
.. _Developer Certificate of Origin: ../dco.txt
.. _Contribution Guide: ../contributing.rst