diff options
Diffstat (limited to 'docs/firmware-design.md')
-rw-r--r-- | docs/firmware-design.md | 43 |
1 files changed, 38 insertions, 5 deletions
diff --git a/docs/firmware-design.md b/docs/firmware-design.md index bd6e2f69..523fa55c 100644 --- a/docs/firmware-design.md +++ b/docs/firmware-design.md @@ -16,8 +16,9 @@ Contents : 11. [Use of coherent memory in Trusted Firmware](#11--use-of-coherent-memory-in-trusted-firmware) 12. [Isolating code and read-only data on separate memory pages](#12--isolating-code-and-read-only-data-on-separate-memory-pages) 13. [Performance Measurement Framework](#13--performance-measurement-framework) -14. [Code Structure](#14--code-structure) -15. [References](#15--references) +14. [ARMv8 Architecture Extensions](#14--armv8-architecture-extensions) +15. [Code Structure](#15--code-structure) +16. [References](#16--references) 1. Introduction @@ -1342,7 +1343,7 @@ All BL images share the following requirements: The following linker symbols are defined for this purpose: -* `__BSS_START__` Must be aligned on a 16-byte boundary. +* `__BSS_START__` * `__BSS_SIZE__` * `__COHERENT_RAM_START__` Must be aligned on a page-size boundary. * `__COHERENT_RAM_END__` Must be aligned on a page-size boundary. @@ -2208,7 +2209,39 @@ in this implementation. 5. `pmf_helpers.h` is an internal header used by `pmf.h`. -14. Code Structure +14. ARMv8 Architecture Extensions +---------------------------------- + +ARM Trusted Firmware makes use of ARMv8 Architecture Extensions where +applicable. This section lists the usage of Architecture Extensions, and build +flags controlling them. + +In general, and unless individually mentioned, the build options +`ARM_ARCH_MAJOR` and `ARM_ARCH_MINOR` selects the Architecture Extension to +target when building ARM Trusted Firmware. Subsequent ARM Architecture +Extensions are backward compatible with previous versions. + +The build system only requires that `ARM_ARCH_MAJOR` and `ARM_ARCH_MINOR` have a +valid numeric value. These build options only control whether or not +Architecture Extension-specific code is included in the build. Otherwise, ARM +Trusted Firmware targets the base ARMv8.0 architecture; i.e. as if +`ARM_ARCH_MAJOR` == 8 and `ARM_ARCH_MINOR` == 0, which are also their respective +default values. + +See also the _Summary of build options_ in [User Guide]. + +For details on the Architecture Extension and available features, please refer +to the respective Architecture Extension Supplement. + +### ARMv8.1 + +This Architecture Extension is targeted when `ARM_ARCH_MAJOR` >= 8, or when +`ARM_ARCH_MAJOR` == 8 and `ARM_ARCH_MINOR` >= 1. + +* The Compare and Swap instruction is used to implement spinlocks. Otherwise, + the load-/store-exclusive instruction pair is used. + +15. Code Structure ------------------- Trusted Firmware code is logically divided between the three boot loader @@ -2252,7 +2285,7 @@ FDTs provide a description of the hardware platform and are used by the Linux kernel at boot time. These can be found in the `fdts` directory. -15. References +16. References --------------- 1. Trusted Board Boot Requirements CLIENT PDD (ARM DEN 0006B-5). Available |