xref: /rk3399_ARM-atf/docs/change-log.md (revision 3a4cae051af8fb129054c0aaf14dd3b7247f04f0)
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
102ARM Trusted Firmware - version 0.2
103==================================
104
105New features
106------------
107
108*   First source release.
109
110*   Code for the PSCI suspend feature is supplied, although this is not enabled
111    by default since there are known issues (see below).
112
113
114Issues resolved since last release
115----------------------------------
116
117*   The "psci" nodes in the FDTs provided in this release now fully comply
118    with the recommendations made in the PSCI specification.
119
120
121Known issues
122------------
123
124The following is a list of issues which are expected to be fixed in the future
125releases of the ARM Trusted Firmware.
126
127*   The TrustZone Address Space Controller (TZC-400) is not being programmed
128    yet. Use of model parameter `-C bp.secure_memory=1` is not supported.
129
130*   No support yet for secure world interrupt handling or for switching context
131    between secure and normal worlds in EL3.
132
133*   GICv3 support is experimental. The Linux kernel patches to support this are
134    not widely available. There are known issues with GICv3 initialization in
135    the ARM Trusted Firmware.
136
137*   Dynamic image loading is not available yet. The current image loader
138    implementation (used to load BL2 and all subsequent images) has some
139    limitations. Changing BL2 or BL3-1 load addresses in certain ways can lead
140    to loading errors, even if the images should theoretically fit in memory.
141
142*   Although support for PSCI `CPU_SUSPEND` is present, it is not yet stable
143    and ready for use.
144
145*   PSCI API calls `AFFINITY_INFO` & `PSCI_VERSION` are implemented but have not
146    been tested.
147
148*   The ARM Trusted Firmware make files result in all build artifacts being
149    placed in the root of the project. These should be placed in appropriate
150    sub-directories.
151
152*   The compilation of ARM Trusted Firmware is not free from compilation
153    warnings. Some of these warnings have not been investigated yet so they
154    could mask real bugs.
155
156*   The ARM Trusted Firmware currently uses toolchain/system include files like
157    stdio.h. It should provide versions of these within the project to maintain
158    compatibility between toolchains/systems.
159
160*   The PSCI code takes some locks in an incorrect sequence. This may cause
161    problems with suspend and hotplug in certain conditions.
162
163*   The Linux kernel used in this release is based on version 3.12-rc4. Using
164    this kernel with the ARM Trusted Firmware fails to start the file-system as
165    a RAM-disk. It fails to execute user-space `init` from the RAM-disk. As an
166    alternative, the VirtioBlock mechanism can be used to provide a file-system
167    to the kernel.
168
169
170Detailed changes since last release
171-----------------------------------
172
173First source release - not applicable.
174
175- - - - - - - - - - - - - - - - - - - - - - - - - -
176
177_Copyright (c) 2013-2014, ARM Limited and Contributors. All rights reserved._
178