blob: 1ad631e5d2cc24fa78dc6195e85075185f73282f [file] [log] [blame] [view]
James Morrisseyba3155b2013-10-29 10:56:46 +00001ARM Trusted Firmware
2====================
Harry Liebelcff4e292013-11-05 18:00:38 +00003
4Detailed changes since last release
5-----------------------------------
6
James Morrisseyba3155b2013-10-29 10:56:46 +00007* Support for Foundation FVP Version 2.0 added.
Harry Liebelcff4e292013-11-05 18:00:38 +00008 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.
James Morrisseyba3155b2013-10-29 10:56:46 +000011 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.
Harry Liebelcff4e292013-11-05 18:00:38 +000017
Sandrine Bailleux204aa032013-10-28 15:14:00 +000018* Fixed various GCC compiler warnings.
19
Sandrine Bailleux37382742013-11-18 17:26:59 +000020* Unmask SError and Debug exceptions in the trusted firmware.
21 Also route external abort and SError interrupts to EL3.
22
Harry Liebel375ae682013-11-18 16:05:21 +000023* 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
James Morrisseyeaaeece2013-11-01 13:56:59 +000027* Build products are now created in a separate build directory tree.
28
Sandrine Bailleuxcd29b0a2013-11-27 10:32:17 +000029* 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.
Harry Liebelcff4e292013-11-05 18:00:38 +000043
Dan Handleyab2d31e2013-12-02 19:25:12 +000044* 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
Achin Guptab127cdb2013-11-12 16:40:00 +000048* 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.
Dan Handleyab2d31e2013-12-02 19:25:12 +000051
Achin Gupta994dfce2013-10-26 13:10:31 +010052* Definitions of some constants related to the PSCI api calls AFFINITY_INFO
53 and CPU_SUSPEND have been corrected.
54
Achin Guptac8afc782013-11-25 18:45:02 +000055* 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
Achin Gupta2d94d4a2013-11-05 11:10:38 +000059* A restriction in the FVP code which did not allow the non-secure entrypoint
60 to lie outside the DRAM has been removed.
61
Achin Guptadc98e532013-11-26 15:34:12 +000062* 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
Achin Guptadc98e532013-11-26 15:34:12 +000067* 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
Sandrine Bailleuxee12f6f2013-11-28 14:55:58 +000075* 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
Harry Liebela960f282013-12-12 16:03:44 +000079* 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
Harry Liebel0af6d642013-12-20 18:51:12 +000085* GCC compiler built-in function support has been disabled in order to improve
86 compiler independence.
87
Dan Handley54078852014-01-14 13:20:12 +000088* 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
Harry Liebel4f603682014-01-14 18:11:48 +000092* 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
Harry Liebeleaec5902013-12-12 13:00:29 +000097* 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
Ryan Harkin25cff832014-01-13 12:37:03 +0000101* 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.
Sandrine Bailleuxee12f6f2013-11-28 14:55:58 +0000106
Achin Gupta75f73672013-12-05 16:33:10 +0000107* 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
Achin Gupta4f6ad662013-10-25 09:08:21 +0100112ARM 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
James Morrisseyba3155b2013-10-29 10:56:46 +0000155* PSCI API calls `AFFINITY_INFO` & `PSCI_VERSION` are implemented but have not
Achin Gupta4f6ad662013-10-25 09:08:21 +0100156 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
Dan Handleyab2d31e2013-12-02 19:25:12 +0000183First source release - not applicable.
Achin Gupta4f6ad662013-10-25 09:08:21 +0100184
185- - - - - - - - - - - - - - - - - - - - - - - - - -
186
Dan Handleye83b0ca2014-01-14 18:17:09 +0000187_Copyright (c) 2013-2014, ARM Limited and Contributors. All rights reserved._