Home | History | Annotate | only in /device/linaro/bootloader/arm-trusted-firmware
Up to higher level directory
NameDateSize
.gitignore05-Oct-2017237
acknowledgements.md05-Oct-2017119
bl1/05-Oct-2017
bl2/05-Oct-2017
bl31/05-Oct-2017
bl32/05-Oct-2017
common/05-Oct-2017
contributing.md05-Oct-20176.2K
docs/05-Oct-2017
drivers/05-Oct-2017
fdts/05-Oct-2017
include/05-Oct-2017
lib/05-Oct-2017
license.md05-Oct-20171.5K
Makefile05-Oct-201719.9K
plat/05-Oct-2017
readme.md05-Oct-20176.9K
services/05-Oct-2017
tools/05-Oct-2017

readme.md

      1 ARM Trusted Firmware - version 1.1
      2 ==================================
      3 
      4 ARM Trusted Firmware provides a reference implementation of secure world
      5 software for [ARMv8-A], including Exception Level 3 (EL3) software. This release
      6 provides complete support for version 0.2 of the [PSCI] specification, initial
      7 support for the new version 1.0 of that specification, and prototype support for
      8 the Trusted Board Boot Requirements specification.
      9 
     10 The intent is to provide a reference implementation of various ARM interface
     11 standards, such as the Power State Coordination Interface ([PSCI]), Trusted
     12 Board Boot Requirements (TBBR) and [Secure Monitor] [TEE-SMC] code. As far as
     13 possible the code is designed for reuse or porting to other ARMv8-A model and
     14 hardware platforms.
     15 
     16 ARM will continue development in collaboration with interested parties to
     17 provide a full reference implementation of PSCI, TBBR and Secure Monitor code
     18 to the benefit of all developers working with ARMv8-A TrustZone technology.
     19 
     20 
     21 License
     22 -------
     23 
     24 The software is provided under a BSD 3-Clause [license]. Certain source files
     25 are derived from FreeBSD code: the original license is included in these
     26 source files.
     27 
     28 
     29 This Release
     30 ------------
     31 
     32 This release is a limited functionality implementation of the Trusted Firmware.
     33 It provides a suitable starting point for productization. Future versions will
     34 contain new features, optimizations and quality improvements.
     35 
     36 ### Functionality
     37 
     38 *   Prototype implementation of a subset of the Trusted Board Boot Requirements
     39     Platform Design Document (PDD). This includes packaging the various firmware
     40     images into a Firmware Image Package (FIP) to be loaded from non-volatile
     41     storage, and a prototype of authenticated boot using key certificates stored
     42     in the FIP.
     43 
     44 *   Initializes the secure world (for example, exception vectors, control
     45     registers, GIC and interrupts for the platform), before transitioning into
     46     the normal world.
     47 
     48 *   Supports both GICv2 and GICv3 initialization for use by normal world
     49     software.
     50 
     51 *   Starts the normal world at the Exception Level and Register Width specified
     52     by the platform port. Typically this is AArch64 EL2 if available.
     53 
     54 *   Handles SMCs (Secure Monitor Calls) conforming to the [SMC Calling
     55     Convention PDD] [SMCCC] using an EL3 runtime services framework.
     56 
     57 *   Handles SMCs relating to the [Power State Coordination Interface PDD] [PSCI]
     58     for the Secondary CPU Boot, CPU Hotplug, CPU Idle and System Shutdown/Reset
     59     use-cases.
     60 
     61 *   A Test Secure-EL1 Payload and Dispatcher to demonstrate Secure Monitor
     62     functionality such as world switching, EL1 context management and interrupt
     63     routing. This also demonstrates Secure-EL1 interaction with PSCI. Some of
     64     this functionality is provided in library form for re-use by other
     65     Secure-EL1 Payload Dispatchers.
     66 
     67 *   Support for alternative Trusted Boot Firmware. Some platforms have their own
     68     Trusted Boot implementation and only require the Secure Monitor
     69     functionality provided by ARM Trusted Firmware.
     70 
     71 *   Isolation of memory accessible by the secure world from the normal world
     72     through programming of a TrustZone controller.
     73 
     74 *   Support for CPU specific reset sequences, power down sequences and register
     75     dumping during crash reporting. The CPU specific reset sequences include
     76     support for errata workarounds.
     77 
     78 For a full description of functionality and implementation details, please
     79 see the [Firmware Design] and supporting documentation. The [Change Log]
     80 provides details of changes made since the last release.
     81 
     82 ### Platforms
     83 
     84 This release of the Trusted Firmware has been tested on Revision B of the
     85 [Juno ARM Development Platform] [Juno] with Version r0p0-00rel7 of the
     86 [ARM SCP Firmware] [SCP download].
     87 
     88 The Trusted Firmware has also been tested on the 64-bit Linux versions of the
     89 following ARM [FVP]s:
     90 
     91 *   `Foundation_Platform` (Version 9.1, Build 9.1.33)
     92 *   `FVP_Base_AEMv8A-AEMv8A` (Version 6.2, Build 0.8.6202)
     93 *   `FVP_Base_Cortex-A57x4-A53x4` (Version 6.2, Build 0.8.6202)
     94 *   `FVP_Base_Cortex-A57x1-A53x1` (Version 6.2, Build 0.8.6202)
     95 *   `FVP_Base_Cortex-A57x2-A53x4` (Version 6.2, Build 0.8.6202)
     96 
     97 The Foundation FVP can be downloaded free of charge. The Base FVPs can be
     98 licensed from ARM: see [www.arm.com/fvp] [FVP].
     99 
    100 ### Still to Come
    101 
    102 *   Complete and more flexible Trusted Board Boot implementation.
    103 
    104 *   Complete implementation of the [PSCI] v1.0 specification.
    105 
    106 *   Support for alternative types of Secure-EL1 Payloads.
    107 
    108 *   Extending the GICv3 support to the secure world.
    109 
    110 *   Support for new System IP devices.
    111 
    112 For a full list of detailed issues in the current code, please see the [Change
    113 Log] and the [GitHub issue tracker].
    114 
    115 
    116 Getting Started
    117 ---------------
    118 
    119 Get the Trusted Firmware source code from
    120 [GitHub](https://www.github.com/ARM-software/arm-trusted-firmware).
    121 
    122 See the [User Guide] for instructions on how to install, build and use
    123 the Trusted Firmware with the ARM [FVP]s.
    124 
    125 See the [Firmware Design] for information on how the ARM Trusted Firmware works.
    126 
    127 See the [Porting Guide] as well for information about how to use this
    128 software on another ARMv8-A platform.
    129 
    130 See the [Contributing Guidelines] for information on how to contribute to this
    131 project and the [Acknowledgments] file for a list of contributors to the
    132 project.
    133 
    134 ### Feedback and support
    135 
    136 ARM welcomes any feedback on the Trusted Firmware. Please send feedback using
    137 the [GitHub issue tracker].
    138 
    139 ARM licensees may contact ARM directly via their partner managers.
    140 
    141 
    142 - - - - - - - - - - - - - - - - - - - - - - - - - -
    143 
    144 _Copyright (c) 2013-2015, ARM Limited and Contributors. All rights reserved._
    145 
    146 
    147 [License]:                  ./license.md "BSD license for ARM Trusted Firmware"
    148 [Contributing Guidelines]:  ./contributing.md "Guidelines for contributors"
    149 [Acknowledgments]:          ./acknowledgements.md "Contributor acknowledgments"
    150 [Change Log]:               ./docs/change-log.md
    151 [User Guide]:               ./docs/user-guide.md
    152 [Firmware Design]:          ./docs/firmware-design.md
    153 [Porting Guide]:            ./docs/porting-guide.md
    154 
    155 [ARMv8-A]:               http://www.arm.com/products/processors/armv8-architecture.php "ARMv8-A Architecture"
    156 [FVP]:                   http://www.arm.com/fvp "ARM's Fixed Virtual Platforms"
    157 [Juno]:                  http://www.arm.com/products/tools/development-boards/versatile-express/juno-arm-development-platform.php "Juno ARM Development Platform"
    158 [SCP download]:          https://silver.arm.com/download/download.tm?pv=1764630
    159 [PSCI]:                  http://infocenter.arm.com/help/topic/com.arm.doc.den0022c/DEN0022C_Power_State_Coordination_Interface.pdf "Power State Coordination Interface PDD (ARM DEN 0022C)"
    160 [SMCCC]:                 http://infocenter.arm.com/help/topic/com.arm.doc.den0028a/index.html "SMC Calling Convention PDD (ARM DEN 0028A)"
    161 [TEE-SMC]:               http://www.arm.com/products/processors/technologies/trustzone/tee-smc.php "Secure Monitor and TEEs"
    162 [GitHub issue tracker]:  https://github.com/ARM-software/tf-issues/issues
    163