1ARM Trusted Firmware 2==================== 3 4Detailed changes since last release 5----------------------------------- 6 7* Support for Foundation FVP Version 2.0 added. 8 The documented UEFI configuration disables some devices that are unavailable 9 in the Foundation FVP, including MMC and CLCD. The resultant UEFI binary can 10 be used on the AEMv8 and Cortex-A57-A53 FVPs, as well as the Foundation FVP. 11 NOTE: The software will not work on Version 1.0 of the Foundation FVP. 12 13* Regression-checked against latest Base FVPs (Version 5.2). 14 15* The supplied FDTs expose the Interrupt Translation Service (ITS) available 16 in GICv3. 17 18* Fixed various GCC compiler warnings. 19 20* Unmask SError and Debug exceptions in the trusted firmware. 21 Also route external abort and SError interrupts to EL3. 22 23* The amount of physical RAM available to Linux as specified in the FDTs for 24 Base FVPs have been increased from 2GB to 4GB. This resolves the issue of 25 failing to start user-space when using a RAM-disk file-system. 26 27* Build products are now created in a separate build directory tree. 28 29* Analyze at link-time whether bootloader images will fit in memory and won't 30 overlap each other at run time. If it is not the case then image linking 31 will now fail. 32 33* Reduce the size of the bootloader images by cutting some sections out of 34 their disk images and allocating them at load time, whenever possible. 35 36* Properly initialise the C runtime environment. C code can now safely assume 37 that global variables are initialised to 0 and that initialised data holds 38 the correct value. 39 40* General changes on the memory layout: some sections have been moved, some of 41 them have been merged together, and some alignment constraints on sections 42 have changed. 43 44* Enable third party contributions. Add a new contributing.md containing 45 instructions for how to contribute and update copyright text in all files to 46 acknowledge contributors. 47 48* The wake up enable bit in the FVP power controller is cleared when a cpu is 49 physically powered up to prevent a spurious wake up from a subsequent cpu 50 off state. 51 52* Definitions of some constants related to the PSCI api calls AFFINITY_INFO 53 and CPU_SUSPEND have been corrected. 54 55* A bug which triggered an error condition in the code executed after a cpu 56 is powered on, if a non zero context id parameter was passed in the PSCI 57 CPU_ON and CPU_SUSPEND api calls has been corrected. 58 59* A restriction in the FVP code which did not allow the non-secure entrypoint 60 to lie outside the DRAM has been removed. 61 62* The PSCI CPU_SUSPEND api has been stabilised to an extent where it can be 63 used for entry into power down states with the following restrictions: 64 - Entry into standby states is not supported. 65 - The api is only supported on the AEMv8 Base FVP. 66 67* The PSCI AFFINITY_INFO api has undergone limited testing on the AEMv8 Base 68 FVP to allow experimental use. 69 70* Locks corresponding to each affinity level are acquired and released in 71 the correct sequence in the PSCI implementation. Invocation of the PSCI 72 CPU_SUSPEND and CPU_OFF apis simultaneously across cpus & clusters should 73 not result in unexpected behaviour. 74 75* The API to return the memory layout structures for each bootloader stage has 76 undergone change. A pointer to these structures is returned instead of their 77 copy. 78 79* Required C library and runtime header files are now included locally in ARM 80 Trusted Firmware instead of depending on the toolchain standard include 81 paths. The local implementation has been cleaned up and reduced in scope. 82 Implementations for `putchar()` and `strchr()` were added to the local C 83 library. 84 85* GCC compiler built-in function support has been disabled in order to improve 86 compiler independence. 87 88* The references to GitHub issues in the documentation now to point to a 89 separate issue tracking repository 90 https://github.com/ARM-software/tf-issues. 91 92* Cleared bits in the architectural trap feature register (CPTR_EL3) during 93 early boot to prevent traps when accessing certain registers, including 94 floating point registers. Also added `-mgeneral-regs-only` flag to GCC 95 settings to prevent generation of code using floating point registers. 96 97* The GICv3 distributor can have more ports than CPUs are available in the 98 system. The GICv3 re-distributors are probed to work out which 99 re-distributor should be used with which CPU. 100 101* Add multi-platform support to the build system. The user may now specify 102 which platform to build using PLAT=<platform> as part of the make command 103 line. Default behaviour is to make all platforms. New platforms are 104 automatically detected by the make file when they are added to the plat 105 directory. 106 107* An issue in the PSCI implementation has been fixed which could result in the 108 power down of an affinity instance at level X even though at least one 109 affinity instance at level X - 1 does not allow this. 110 111 112ARM Trusted Firmware - version 0.2 113================================== 114 115New features 116------------ 117 118* First source release. 119 120* Code for the PSCI suspend feature is supplied, although this is not enabled 121 by default since there are known issues (see below). 122 123 124Issues resolved since last release 125---------------------------------- 126 127* The "psci" nodes in the FDTs provided in this release now fully comply 128 with the recommendations made in the PSCI specification. 129 130 131Known issues 132------------ 133 134The following is a list of issues which are expected to be fixed in the future 135releases of the ARM Trusted Firmware. 136 137* The TrustZone Address Space Controller (TZC-400) is not being programmed 138 yet. Use of model parameter `-C bp.secure_memory=1` is not supported. 139 140* No support yet for secure world interrupt handling or for switching context 141 between secure and normal worlds in EL3. 142 143* GICv3 support is experimental. The Linux kernel patches to support this are 144 not widely available. There are known issues with GICv3 initialization in 145 the ARM Trusted Firmware. 146 147* Dynamic image loading is not available yet. The current image loader 148 implementation (used to load BL2 and all subsequent images) has some 149 limitations. Changing BL2 or BL3-1 load addresses in certain ways can lead 150 to loading errors, even if the images should theoretically fit in memory. 151 152* Although support for PSCI `CPU_SUSPEND` is present, it is not yet stable 153 and ready for use. 154 155* PSCI API calls `AFFINITY_INFO` & `PSCI_VERSION` are implemented but have not 156 been tested. 157 158* The ARM Trusted Firmware make files result in all build artifacts being 159 placed in the root of the project. These should be placed in appropriate 160 sub-directories. 161 162* The compilation of ARM Trusted Firmware is not free from compilation 163 warnings. Some of these warnings have not been investigated yet so they 164 could mask real bugs. 165 166* The ARM Trusted Firmware currently uses toolchain/system include files like 167 stdio.h. It should provide versions of these within the project to maintain 168 compatibility between toolchains/systems. 169 170* The PSCI code takes some locks in an incorrect sequence. This may cause 171 problems with suspend and hotplug in certain conditions. 172 173* The Linux kernel used in this release is based on version 3.12-rc4. Using 174 this kernel with the ARM Trusted Firmware fails to start the file-system as 175 a RAM-disk. It fails to execute user-space `init` from the RAM-disk. As an 176 alternative, the VirtioBlock mechanism can be used to provide a file-system 177 to the kernel. 178 179 180Detailed changes since last release 181----------------------------------- 182 183First source release - not applicable. 184 185- - - - - - - - - - - - - - - - - - - - - - - - - - 186 187_Copyright (c) 2013-2014, ARM Limited and Contributors. All rights reserved._ 188