| 596929b9 | 30-Jan-2019 |
Varun Wadekar <vwadekar@nvidia.com> |
locks: linker variables to calculate per-cpu bakery lock size
This patch introduces explicit linker variables to mark the start and end of the per-cpu bakery lock section to help bakery_lock_normal.
locks: linker variables to calculate per-cpu bakery lock size
This patch introduces explicit linker variables to mark the start and end of the per-cpu bakery lock section to help bakery_lock_normal.c calculate the size of the section. This patch removes the previously used '__PERCPU_BAKERY_LOCK_SIZE__' linker variable to make the code uniform across GNU linker and ARM linker.
Change-Id: Ie0c51702cbc0fe8a2076005344a1fcebb48e7cca Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
show more ...
|
| 0709055e | 30-Jan-2019 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
Remove support for the SMC Calling Convention 2.0
This reverts commit 2f370465241c ("Add support for the SMC Calling Convention 2.0").
SMCCC v2.0 is no longer required for SPM, and won't be needed
Remove support for the SMC Calling Convention 2.0
This reverts commit 2f370465241c ("Add support for the SMC Calling Convention 2.0").
SMCCC v2.0 is no longer required for SPM, and won't be needed in the future. Removing it makes the SMC handling code less complicated.
The SPM implementation based on SPCI and SPRT was using it, but it has been adapted to SMCCC v1.0.
Change-Id: I36795b91857b2b9c00437cfbfed04b3c1627f578 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
show more ...
|
| c26bd427 | 21-Jan-2019 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
SPM: Rename folder of SPM based on MM
This implementation is no longer deprecated.
Change-Id: I68552d0fd5ba9f08fad4345e4657e8e3c5362a36 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
| 8855e52e | 21-Jan-2019 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
SPM: Rename SPM_DEPRECATED flag to SPM_MM
The SPM implementation based on MM is going to be kept for the foreseeable future.
Change-Id: I11e96778a4f52a1aa803e7e048d9a7cb24a53954 Signed-off-by: Anto
SPM: Rename SPM_DEPRECATED flag to SPM_MM
The SPM implementation based on MM is going to be kept for the foreseeable future.
Change-Id: I11e96778a4f52a1aa803e7e048d9a7cb24a53954 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com> Acked-by: Sumit Garg <sumit.garg@linaro.org>
show more ...
|
| cd1f39b4 | 16-Jan-2019 |
Soby Mathew <soby.mathew@arm.com> |
Merge pull request #1738 from ardbiesheuvel/synquacer-spm
synquacer: add SPM support |
| 32e83537 | 06-Jan-2019 |
Ard Biesheuvel <ard.biesheuvel@linaro.org> |
spm: permit platform to override the VMA placement of the vector table
On some systems, it may be preferred to place the secure EL1/0 vector table outside of the static placement of the BL31 image i
spm: permit platform to override the VMA placement of the vector table
On some systems, it may be preferred to place the secure EL1/0 vector table outside of the static placement of the BL31 image itself, for instance when the latter is located in non-shareable SRAM which does not tolerate inner shareable WBWA mappings (as is the case on SynQuacer)
So permit the platform to #define SPM_SHIM_EXCEPTIONS_VMA in its supplementary linker script, in which case it will be used as the VMA region for the vector table. Note that the LMA does not change, and it is up to the platform to copy the contents to the right place at init time.
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
show more ...
|
| 8aabea33 | 11-Jan-2019 |
Paul Beesley <paul.beesley@arm.com> |
Correct typographical errors
Corrects typos in core code, documentation files, drivers, Arm platforms and services.
None of the corrections affect code; changes are limited to comments and other do
Correct typographical errors
Corrects typos in core code, documentation files, drivers, Arm platforms and services.
None of the corrections affect code; changes are limited to comments and other documentation.
Change-Id: I5c1027b06ef149864f315ccc0ea473e2a16bfd1d Signed-off-by: Paul Beesley <paul.beesley@arm.com>
show more ...
|
| 09d40e0e | 14-Dec-2018 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
Sanitise includes across codebase
Enforce full include path for includes. Deprecate old paths.
The following folders inside include/lib have been left unchanged:
- include/lib/cpus/${ARCH} - inclu
Sanitise includes across codebase
Enforce full include path for includes. Deprecate old paths.
The following folders inside include/lib have been left unchanged:
- include/lib/cpus/${ARCH} - include/lib/el3_runtime/${ARCH}
The reason for this change is that having a global namespace for includes isn't a good idea. It defeats one of the advantages of having folders and it introduces problems that are sometimes subtle (because you may not know the header you are actually including if there are two of them).
For example, this patch had to be created because two headers were called the same way: e0ea0928d5b7 ("Fix gpio includes of mt8173 platform to avoid collision."). More recently, this patch has had similar problems: 46f9b2c3a282 ("drivers: add tzc380 support").
This problem was introduced in commit 4ecca33988b9 ("Move include and source files to logical locations"). At that time, there weren't too many headers so it wasn't a real issue. However, time has shown that this creates problems.
Platforms that want to preserve the way they include headers may add the removed paths to PLAT_INCLUDES, but this is discouraged.
Change-Id: I39dc53ed98f9e297a5966e723d1936d6ccf2fc8f Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
show more ...
|
| 5bfac4fc | 12-Dec-2018 |
Soby Mathew <soby.mathew@arm.com> |
BL31: correct GOT section omission
When the patch SHA 931f7c6 introduced PIE support for BL31, adding the GOT section when the SEPARATE_CODE_AND_RODATA=0 to the linker script was erroneously omitted
BL31: correct GOT section omission
When the patch SHA 931f7c6 introduced PIE support for BL31, adding the GOT section when the SEPARATE_CODE_AND_RODATA=0 to the linker script was erroneously omitted. This patch corrects the same.
Also the patch reduces the alignment requirement for GOT and RELA sections from 16 bytes to 8. Comments are added explain the intent for alignment.
Change-Id: I8035cbf75f346f99bd56b13f32e0b3b70dd2fe6c Signed-off-by: Soby Mathew <soby.mathew@arm.com>
show more ...
|
| e8ce60ae | 08-Nov-2018 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
SPM: Introduce SMC handlers for SPCI and SPRT
Change-Id: I2ae9b3bb686c41b2e138132a7bed107925ac861e Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
| 2d7b9e5e | 30-Oct-2018 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
SPM: Deprecate the current implementation
The current SPM is a prototype that only supports one secure partition in EL0. The objective of SPM is to have multiple partitions. The current MM interface
SPM: Deprecate the current implementation
The current SPM is a prototype that only supports one secure partition in EL0. The objective of SPM is to have multiple partitions. The current MM interface isn't adequate for this, so it is needed to modify heavily the code to add proper support for it.
However, there are platforms which are already using this (like SGI) and removing the code would break it. For this reason, the current SPM code has been duplicated in order to temporarily preserve compatibility. All new improvements/changes to SPM will be done in the non-deprecated copy, that may change without notice.
The new build option SPM_DEPRECATED has been introduced to select the SPM implementation. It defaults to 1, that selects the deprecated SPM.
Change-Id: Ic9f80b53b450e97b4d3f47e4ef4a138ee8d87443 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
show more ...
|
| 01fc1c24 | 16-Nov-2018 |
Soby Mathew <soby.mathew@arm.com> |
BL31: Use helper function to save registers in SMC handler
Use the helper function `save_gp_registers` to save the register state to cpu_context on entry to EL3 in SMC handler. This has the effect o
BL31: Use helper function to save registers in SMC handler
Use the helper function `save_gp_registers` to save the register state to cpu_context on entry to EL3 in SMC handler. This has the effect of saving x0 - x3 as well into the cpu_context which was not done previously but it unifies the register save sequence in BL31.
Change-Id: I5753c942263a5f9178deda3dba896e3220f3dd83 Signed-off-by: Soby Mathew <soby.mathew@arm.com>
show more ...
|
| 8a3588a7 | 14-Nov-2018 |
Sughosh Ganu <sughosh.ganu@arm.com> |
SPM: EHF: Build EHF module along with Secure Partition Manager
Add a dependency for building EL3 exception handling framework(EHF) module with the secure partition manager(SPM).
The EHF module is n
SPM: EHF: Build EHF module along with Secure Partition Manager
Add a dependency for building EL3 exception handling framework(EHF) module with the secure partition manager(SPM).
The EHF module is needed for raising the core's running priority before the core enters the secure partition, and lowering it subsequently on exit from the secure partition.
Change-Id: Icbe2d0a63f00b46dc593ff3d86b676c9333506c3 Signed-off-by: Sughosh Ganu <sughosh.ganu@arm.com>
show more ...
|
| a0fee747 | 31-Oct-2018 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
context_mgmt: Fix MISRA defects
The macro EL_IMPLEMENTED() has been deprecated in favour of the new function el_implemented().
Change-Id: Ic9b1b81480b5e019b50a050e8c1a199991bf0ca9 Signed-off-by: An
context_mgmt: Fix MISRA defects
The macro EL_IMPLEMENTED() has been deprecated in favour of the new function el_implemented().
Change-Id: Ic9b1b81480b5e019b50a050e8c1a199991bf0ca9 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
show more ...
|
| 931f7c61 | 14-Oct-2018 |
Soby Mathew <soby.mathew@arm.com> |
PIE: Position Independant Executable support for BL31
This patch introduces Position Independant Executable(PIE) support in TF-A. As a initial prototype, only BL31 can support PIE. A trivial dynamic
PIE: Position Independant Executable support for BL31
This patch introduces Position Independant Executable(PIE) support in TF-A. As a initial prototype, only BL31 can support PIE. A trivial dynamic linker is implemented which supports fixing up Global Offset Table(GOT) and Dynamic relocations(.rela.dyn). The fixup_gdt_reloc() helper function implements this linker and this needs to be called early in the boot sequence prior to invoking C functions. The GOT is placed in the RO section of BL31 binary for improved security and the BL31 linker script is modified to export the appropriate symbols required for the dynamic linker.
The C compiler always generates PC relative addresses to linker symbols and hence referencing symbols exporting constants are a problem when relocating the binary. Hence the reference to the `__PERCPU_TIMESTAMP_SIZE__` symbol in PMF is removed and is now calculated at runtime based on start and end addresses.
Change-Id: I1228583ff92cf432963b7cef052e95d995cca93d Signed-off-by: Soby Mathew <soby.mathew@arm.com>
show more ...
|
| 32aee841 | 13-Nov-2017 |
Roberto Vargas <roberto.vargas@arm.com> |
scmi: Optimize bakery locks when HW_ASSISTED_COHERENCY is enabled
When HW_ASSISTED_COHERENCY is enabled we can use spinlocks instead of using the more complex and slower bakery algorithm.
Change-Id
scmi: Optimize bakery locks when HW_ASSISTED_COHERENCY is enabled
When HW_ASSISTED_COHERENCY is enabled we can use spinlocks instead of using the more complex and slower bakery algorithm.
Change-Id: I9d791a70050d599241169b9160a67e57d5506564 Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
show more ...
|
| 81542c00 | 04-Oct-2018 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
Remove some MISRA defects in common code
No functional changes.
Change-Id: I9638e02acb9b22eb794ebf45aad84348a710287e Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
| 87c85134 | 20-Sep-2018 |
Daniel Boulby <daniel.boulby@arm.com> |
Mark BL31 initialization functions
Mark the initialization functions in BL31, such as context management, EHF, RAS and PSCI as __init so that they can be reclaimed by the platform when no longer nee
Mark BL31 initialization functions
Mark the initialization functions in BL31, such as context management, EHF, RAS and PSCI as __init so that they can be reclaimed by the platform when no longer needed
Change-Id: I7446aeee3dde8950b0f410cb766b7a2312c20130 Signed-off-by: Daniel Boulby <daniel.boulby@arm.com>
show more ...
|
| 7dab0eac | 24-Sep-2018 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
context_mgmt: Remove deprecated interfaces
Change-Id: I2d4a21a80a768bc422e9707e6d7e98d20a716275 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
| 74ad948f | 18-Sep-2018 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
BL31: Fix warning about BL32 init function
The expected value for failure is 0, so the warning only has to be shown in that case. This is the way the TSPD has done it since it was introduced, and th
BL31: Fix warning about BL32 init function
The expected value for failure is 0, so the warning only has to be shown in that case. This is the way the TSPD has done it since it was introduced, and the way SPM and OP-TEE do it.
Trusty wrongly returns 0 on success.
In the case of TLK, the return value of tlkd_init() is passed from the secure world in register X1 when calling the SMC TLK_ENTRY_DONE.
Change-Id: I39106d67631ee57f109619f8830bf4b9d96155e6 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
show more ...
|
| 46b9aa76 | 06-Sep-2018 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
Convert BL31 error message into warning
If BL32 isn't present or it fails to initialize the current code prints an error message in both debug and release builds. This is too verbose for release bui
Convert BL31 error message into warning
If BL32 isn't present or it fails to initialize the current code prints an error message in both debug and release builds. This is too verbose for release builds, so it has been converted into a warning.
Also, it was missing a newline at the end of the message.
Change-Id: I91e18d5d5864dbb19d47ecd54f174d2d8c06296c Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
show more ...
|
| c9512bca | 24-Aug-2018 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
Fix MISRA defects in BL31 common code
Change-Id: I5993b425445ee794e6d2a792c244c0af53640655 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
| 11dfe0b4 | 22-Aug-2018 |
Dimitris Papastamos <dimitris.papastamos@arm.com> |
Merge pull request #1532 from jeenu-arm/misra-fixes
MISRA fixes |
| 61e7c054 | 22-Aug-2018 |
Dimitris Papastamos <dimitris.papastamos@arm.com> |
Merge pull request #1533 from jeenu-arm/mpam
AArch64: Enable MPAM for lower ELs |
| 03b645ed | 02-Aug-2018 |
Jeenu Viswambharan <jeenu.viswambharan@arm.com> |
EHF: MISRA fixes
These changes address most of the required MISRA rules. In the process, some from generic code are also fixed.
No functional changes.
Change-Id: I19786070af7bc5e1f6d15bdba93e22a44
EHF: MISRA fixes
These changes address most of the required MISRA rules. In the process, some from generic code are also fixed.
No functional changes.
Change-Id: I19786070af7bc5e1f6d15bdba93e22a4451d8fe9 Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
show more ...
|