| 2ed7b71e | 23-Jun-2017 |
Etienne Carriere <etienne.carriere@st.com> |
context_mgmt: declare extern cm_set_next_context() for AArch32
This change avoids warning when setting -Wmissing-prototypes to compile bl1_context_mgmt.c.
Reported-by: Yann Gautier <yann.gautier@st
context_mgmt: declare extern cm_set_next_context() for AArch32
This change avoids warning when setting -Wmissing-prototypes to compile bl1_context_mgmt.c.
Reported-by: Yann Gautier <yann.gautier@st.com> Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
show more ...
|
| 55074083 | 07-Jun-2017 |
Etienne Carriere <etienne.carriere@st.com> |
bl: security_state should be of type unsigned int
security_state is either 0 or 1. Prevent sign conversion potential error (setting -Werror=sign-conversion results in a build error).
Signed-off-by:
bl: security_state should be of type unsigned int
security_state is either 0 or 1. Prevent sign conversion potential error (setting -Werror=sign-conversion results in a build error).
Signed-off-by: Yann Gautier <yann.gautier@st.com> Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
show more ...
|
| 6f512a3d | 20-Jun-2017 |
Dimitris Papastamos <dimitris.papastamos@arm.com> |
aarch32: Apply workaround for errata 813419 of Cortex-A57
TLBI instructions for monitor mode won't have the desired effect under specific circumstances in Cortex-A57 r0p0. The workaround is to execu
aarch32: Apply workaround for errata 813419 of Cortex-A57
TLBI instructions for monitor mode won't have the desired effect under specific circumstances in Cortex-A57 r0p0. The workaround is to execute DSB and TLBI twice each time.
Even though this errata is only needed in r0p0, the current errata framework is not prepared to apply run-time workarounds. The current one is always applied if compiled in, regardless of the CPU or its revision.
The `DSB` instruction used when initializing the translation tables has been changed to `DSB ISH` as an optimization and to be consistent with the barriers used for the workaround.
NOTE: This workaround is present in AArch64 TF and already enabled by default on Juno.
Change-Id: I10b0baa304ed64b13b7b26ea766e61461e759dfa Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
show more ...
|
| d832aee9 | 23-May-2017 |
dp-arm <dimitris.papastamos@arm.com> |
aarch64: Enable Statistical Profiling Extensions for lower ELs
SPE is only supported in non-secure state. Accesses to SPE specific registers from SEL1 will trap to EL3. During a world switch, befo
aarch64: Enable Statistical Profiling Extensions for lower ELs
SPE is only supported in non-secure state. Accesses to SPE specific registers from SEL1 will trap to EL3. During a world switch, before `TTBR` is modified the SPE profiling buffers are drained. This is to avoid a potential invalid memory access in SEL1.
SPE is architecturally specified only for AArch64.
Change-Id: I04a96427d9f9d586c331913d815fdc726855f6b0 Signed-off-by: dp-arm <dimitris.papastamos@arm.com>
show more ...
|
| 18f2efd6 | 13-Apr-2017 |
David Cunado <david.cunado@arm.com> |
Fully initialise essential control registers
This patch updates the el3_arch_init_common macro so that it fully initialises essential control registers rather then relying on hardware to set the res
Fully initialise essential control registers
This patch updates the el3_arch_init_common macro so that it fully initialises essential control registers rather then relying on hardware to set the reset values.
The context management functions are also updated to fully initialise the appropriate control registers when initialising the non-secure and secure context structures and when preparing to leave EL3 for a lower EL.
This gives better alignement with the ARM ARM which states that software must initialise RES0 and RES1 fields with 0 / 1.
This patch also corrects the following typos:
"NASCR definitions" -> "NSACR definitions"
Change-Id: Ia8940b8351dc27bc09e2138b011e249655041cfc Signed-off-by: David Cunado <david.cunado@arm.com>
show more ...
|
| f9688f27 | 13-Jun-2017 |
Dimitris Papastamos <dimitris.papastamos@arm.com> |
aarch32: Fix L2CTRL definition for Cortex A57 and A72
Fixes ARM-software/tf-issues#495
Change-Id: I6a0aea78f670cc199873218a18af1d9cc2a6fafd Signed-off-by: Dimitris Papastamos <dimitris.papastamos@a
aarch32: Fix L2CTRL definition for Cortex A57 and A72
Fixes ARM-software/tf-issues#495
Change-Id: I6a0aea78f670cc199873218a18af1d9cc2a6fafd Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
show more ...
|
| 3749d853 | 05-Jun-2017 |
Dimitris Papastamos <dimitris.papastamos@arm.com> |
aarch32: Implement errata workarounds for Cortex A53
This brings the implementation on par with the software errata workarounds for AArch64.
Change-Id: Id103602e35b1c0ad3705a5b2b7cdb34dd8a8c5e2 Sig
aarch32: Implement errata workarounds for Cortex A53
This brings the implementation on par with the software errata workarounds for AArch64.
Change-Id: Id103602e35b1c0ad3705a5b2b7cdb34dd8a8c5e2 Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
show more ...
|
| 030567e6 | 26-May-2017 |
Varun Wadekar <vwadekar@nvidia.com> |
include: add U()/ULL() macros for constants
This patch uses the U() and ULL() macros for constants, to fix some of the signed-ness defects flagged by the MISRA scanner.
Signed-off-by: Varun Wadekar
include: add U()/ULL() macros for constants
This patch uses the U() and ULL() macros for constants, to fix some of the signed-ness defects flagged by the MISRA scanner.
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
show more ...
|
| 6176b4fc | 18-May-2017 |
Varun Wadekar <vwadekar@nvidia.com> |
Add U() macro to share constants between C and other sources
This patch adds the U(_x) macros to utils_def.h to allow constants to be shared between C and other sources.
Signed-off-by: Varun Wadeka
Add U() macro to share constants between C and other sources
This patch adds the U(_x) macros to utils_def.h to allow constants to be shared between C and other sources.
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
show more ...
|
| fb7d32e5 | 05-Jun-2017 |
Varun Wadekar <vwadekar@nvidia.com> |
Unique names for defines in the CPU libraries
This patch makes all the defines in the CPU libraries unique, by prefixing them with the CPU name.
NOTE: PLATFORMS USING THESE MACROS WILL HAVE TO UPDA
Unique names for defines in the CPU libraries
This patch makes all the defines in the CPU libraries unique, by prefixing them with the CPU name.
NOTE: PLATFORMS USING THESE MACROS WILL HAVE TO UPDATE THEIR CODE TO START USING THE UPDATED NAMES
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
show more ...
|
| 81bccbff | 06-Jun-2017 |
Soby Mathew <soby.mathew@arm.com> |
Fix stdlib defines for AArch32
Some of the macro defines in the header files of `include/lib/stdlib/machine/` folder are not correct for AArch32. This patch fixes the same.
Change-Id: I8bfaf638a798
Fix stdlib defines for AArch32
Some of the macro defines in the header files of `include/lib/stdlib/machine/` folder are not correct for AArch32. This patch fixes the same.
Change-Id: I8bfaf638a7986fd902648d2074537bd26c313cb3 Signed-off-by: Soby Mathew <soby.mathew@arm.com>
show more ...
|
| e6a993d4 | 02-Jun-2017 |
Haojian Zhuang <haojian.zhuang@linaro.org> |
stdlib: support AARCH32 in endian head file
Add the support of AARCH32 in endian head file. The code is also imported from FreeBSD 11.0. It's based on commit in below.
commit 4e3a5b429989b4ff621682
stdlib: support AARCH32 in endian head file
Add the support of AARCH32 in endian head file. The code is also imported from FreeBSD 11.0. It's based on commit in below.
commit 4e3a5b429989b4ff621682ff1462f801237bd551 Author: mmel <mmel@FreeBSD.org> Date: Tue Nov 10 12:02:41 2015 +0000
ARM: Remove trailing whitespace from sys/arm/include No functional changes.
Approved by: kib (mentor)
Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
show more ...
|
| b15f31ac | 01-Jun-2017 |
Haojian Zhuang <haojian.zhuang@linaro.org> |
stdlib: import endian head file from freebsd
Import endian head files from FreeBSD 11.0. The link of FreeBSD source code is https://github.com/freebsd/freebsd
Import machine/endian.h from sys/arm64
stdlib: import endian head file from freebsd
Import endian head files from FreeBSD 11.0. The link of FreeBSD source code is https://github.com/freebsd/freebsd
Import machine/endian.h from sys/arm64/include/endian.h in FreeBSD. commit d09ff72cef8e35dbf62f7363dcbf07b453f06243 Author: andrew <andrew@FreeBSD.org> Date: Mon Mar 23 11:54:56 2015 +0000
Add the start of the arm64 machine headers. This is the subset needed to start getting userland libraries building.
Reviewed by: imp Sponsored by: The FreeBSD Foundation
Import sys/endian.h from sys/sys/endian.h in FreeBSD. commit 3c3fa2f5b0c7640373fcbcc3f667bf7794e8e609 Author: phk <phk@FreeBSD.org> Date: Thu May 20 06:16:13 2010 +0000
Fix some way-past-brucification complaints from FlexeLint.
Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
show more ...
|
| d40ab484 | 09-Nov-2016 |
David Wang <david.wang@arm.com> |
Add support for Cortex-A75 and Cortex-A55 CPUs
Both Cortex-A75 and Cortex-A55 CPUs use the ARM DynamIQ Shared Unit (DSU). The power-down and power-up sequences are therefore mostly managed in hardwa
Add support for Cortex-A75 and Cortex-A55 CPUs
Both Cortex-A75 and Cortex-A55 CPUs use the ARM DynamIQ Shared Unit (DSU). The power-down and power-up sequences are therefore mostly managed in hardware, and required software operations are considerably simpler.
Change-Id: I68b30e6e1ebe7c041d5e67f39c59f08575fc7ecc Co-authored-by: Sandrine Bailleux <sandrine.bailleux@arm.com> Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
show more ...
|
| cfac68af | 24-May-2017 |
Haojian Zhuang <haojian.zhuang@linaro.org> |
Cortex-A53: add some bit definitions
Add some bit definitions of CPUACTLR register in Cortex-A53 CPU library.
Change-Id: I142fd8ac4b06dd651a32e22951e71cdebbea123a Signed-off-by: Haojian Zhuang <hao
Cortex-A53: add some bit definitions
Add some bit definitions of CPUACTLR register in Cortex-A53 CPU library.
Change-Id: I142fd8ac4b06dd651a32e22951e71cdebbea123a Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org> Signed-off-by: Dan Handley <dan.handley@arm.com>
show more ...
|
| d5461857 | 02-May-2017 |
dp-arm <dimitris.papastamos@arm.com> |
build: Introduce clang support
Only the compiler is switched to clang. The assembler and linker are provided by the GCC toolchain.
clang is used to build TF when the base name of the path assigned
build: Introduce clang support
Only the compiler is switched to clang. The assembler and linker are provided by the GCC toolchain.
clang is used to build TF when the base name of the path assigned to `CC` contains the string 'clang'.
`CROSS_COMPILE` is still needed and should point to the appropriate GCC toolchain.
Tested with clang 3.9.x and 4.0.x.
Change-Id: I53236d64e3c83ad27fc843bae5fcdae30f2e325e Signed-off-by: dp-arm <dimitris.papastamos@arm.com>
show more ...
|
| e715e676 | 24-May-2017 |
danh-arm <dan.handley@arm.com> |
Merge pull request #938 from masahir0y/tools_share
Collect headers shared between TF and host-tools into include/tools_share |
| 2a6c1a8f | 08-May-2017 |
Masahiro Yamada <yamada.masahiro@socionext.com> |
fip: move headers shared between TF and fiptool to include/tools_share
Some header files need to be shared between TF and host programs. For fiptool, two headers are copied to the tools/fiptool dire
fip: move headers shared between TF and fiptool to include/tools_share
Some header files need to be shared between TF and host programs. For fiptool, two headers are copied to the tools/fiptool directory, but it looks clumsy.
This commit introduces a new directory, include/tools_share, which collects headers that should be shared between TF and host programs.
This will clarify the interface exposed to host tools. We should add new headers to this directory only when we really need to do so.
For clarification, I inserted a blank line between headers from the include/ directory (#include <...>) and ones from a local directory (#include "..." ).
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
show more ...
|
| 81602a97 | 22-May-2017 |
danh-arm <dan.handley@arm.com> |
Merge pull request #939 from dp-arm/dp/AArch32_tbbr
Add TBBR and FWU support for AArch32 |
| 0da2fe7e | 16-May-2017 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
Simplify assert() to reduce memory usage
The behaviour of assert() now depends on the value of the new optional platform define `PLAT_LOG_LEVEL_ASSERT`. This defaults to `LOG_LEVEL` if not defined b
Simplify assert() to reduce memory usage
The behaviour of assert() now depends on the value of the new optional platform define `PLAT_LOG_LEVEL_ASSERT`. This defaults to `LOG_LEVEL` if not defined by the platform.
- If `PLAT_LOG_LEVEL_ASSERT` >= `LOG_LEVEL_VERBOSE`, it prints the file name, line and asserted expression. - If `PLAT_LOG_LEVEL_ASSERT` >= `LOG_LEVEL_INFO`, it prints the file name and line. - If not, it doesn't print anything.
Note the old behaviour was to print the function name whereas now it prints the file name. This reduces memory usage because the file name is shared between all assert calls in a given file. Also, the default behaviour in debug builds is to no longer print the asserted expression, greatly reducing the string usage.
For FVP debug builds this change saves approximately:
No TBBR TBBR BL1 1.6 KB 2.2 KB BL2 1.7 KB 2.1 KB BL31 2.6 KB 3.3 KB
Change-Id: I2947569d593df0b25611dc3c7a6096f42155c115 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
show more ...
|
| 823cc7a9 | 12-May-2017 |
davidcunado-arm <david.cunado@arm.com> |
Merge pull request #930 from antonio-nino-diaz-arm/an/fixes-xlat-v2
Minor fixes to the xlat tables lib v2 |
| b6285d64 | 30-Mar-2017 |
Soby Mathew <soby.mathew@arm.com> |
AArch32: Rework SMC context save and restore mechanism
The current SMC context data structure `smc_ctx_t` and related helpers are optimized for case when SMC call does not result in world switch. Th
AArch32: Rework SMC context save and restore mechanism
The current SMC context data structure `smc_ctx_t` and related helpers are optimized for case when SMC call does not result in world switch. This was the case for SP_MIN and BL1 cold boot flow. But the firmware update usecase requires world switch as a result of SMC and the current SMC context helpers were not helping very much in this regard. Therefore this patch does the following changes to improve this:
1. Add monitor stack pointer, `spmon` to `smc_ctx_t`
The C Runtime stack pointer in monitor mode, `sp_mon` is added to the SMC context, and the `smc_ctx_t` pointer is cached in `sp_mon` prior to exit from Monitor mode. This makes is easier to retrieve the context when the next SMC call happens. As a result of this change, the SMC context helpers no longer depend on the stack to save and restore the register.
This aligns it with the context save and restore mechanism in AArch64.
2. Add SCR in `smc_ctx_t`
Adding the SCR register to `smc_ctx_t` makes it easier to manage this register state when switching between non secure and secure world as a result of an SMC call.
Change-Id: I5e12a7056107c1701b457b8f7363fdbf892230bf Signed-off-by: Soby Mathew <soby.mathew@arm.com> Signed-off-by: dp-arm <dimitris.papastamos@arm.com>
show more ...
|
| d6104f5a | 11-May-2017 |
davidcunado-arm <david.cunado@arm.com> |
Merge pull request #927 from jeenu-arm/state-switch
Execution state switch |
| e769db3e | 08-May-2017 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
Minor fixes to the xlat tables lib v2
- Fix some comments. - Remove duplicated definition. - Make xlat_arch_get_max_supported_pa() private in aarch64.
Change-Id: I629237209cfb2ce7b0c4bd539d63dd81d4
Minor fixes to the xlat tables lib v2
- Fix some comments. - Remove duplicated definition. - Make xlat_arch_get_max_supported_pa() private in aarch64.
Change-Id: I629237209cfb2ce7b0c4bd539d63dd81d45b2edd Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
show more ...
|
| 5e623277 | 05-May-2017 |
davidcunado-arm <david.cunado@arm.com> |
Merge pull request #924 from antonio-nino-diaz-arm/an/fix-xn-bit
Fix execute-never permissions in xlat tables libs |