| eaefdecd | 26-Jan-2016 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
Simplify Firmware Design document
The Firmware Design document is meant to provide a general overview of the Trusted Firmware code. Although it is useful to provide some guidance around the responsi
Simplify Firmware Design document
The Firmware Design document is meant to provide a general overview of the Trusted Firmware code. Although it is useful to provide some guidance around the responsibilities of the platform layer, it should not provide too much platform specific implementation details. Right now, some sections are too tied to the implementation on ARM platforms. This makes the Firmware Design document harder to digest.
This patch simplifies this aspect of the Firmware Design document. The sections relating the platform initialisations performed by the different BL stages have been simplified and the extra details about the ARM platforms implementation have been moved to the Porting Guide when appropriate.
This patch also provides various documentation fixes and additions in the Firmware Design and Platform Porting Guide. In particular:
- Update list of SMCs supported by BL1.
- Remove MMU setup from architectural inits, as it is actually performed by platform code.
- Similarly, move runtime services initialisation, BL2 image initialization and BL33 execution out of the platform initialisation paragraph.
- List SError interrupt unmasking as part of BL1 architectural initialization.
- Mention Trusted Watchdog enabling in BL1 on ARM platforms.
- Fix order of steps in "BL2 image load and execution" section.
- Refresh section about GICv3/GICv2 drivers initialisation on ARM platforms.
Change-Id: I32113c4ffdc26687042629cd8bbdbb34d91e3c14
show more ...
|
| 1c3ea103 | 01-Feb-2016 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
Remove all non-configurable dead loops
Added a new platform porting function plat_panic_handler, to allow platforms to handle unexpected error situations. It must be implemented in assembly as it ma
Remove all non-configurable dead loops
Added a new platform porting function plat_panic_handler, to allow platforms to handle unexpected error situations. It must be implemented in assembly as it may be called before the C environment is initialized. A default implementation is provided, which simply spins.
Corrected all dead loops in generic code to call this function instead. This includes the dead loop that occurs at the end of the call to panic().
All unnecesary wfis from bl32/tsp/aarch64/tsp_exceptions.S have been removed.
Change-Id: I67cb85f6112fa8e77bd62f5718efcef4173d8134
show more ...
|
| b6fc25e0 | 09-Mar-2016 |
danh-arm <dan.handley@arm.com> |
Merge pull request #541 from antonio-nino-diaz-arm/an/secondary-cpu-init
Initialize secondary CPUs during cold boot |
| 5e3120d1 | 09-Mar-2016 |
danh-arm <dan.handley@arm.com> |
Merge pull request #540 from antonio-nino-diaz-arm/an/porting_guide
Porting guide: Clarify API that don't follow AAPCS |
| 4e85e4fd | 23-Feb-2016 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
Initialize secondary CPUs during cold boot
The previous reset code in BL1 performed the following steps in order:
1. Warm/Cold boot detection. If it's a warm boot, jump to warm boot entrypoint.
Initialize secondary CPUs during cold boot
The previous reset code in BL1 performed the following steps in order:
1. Warm/Cold boot detection. If it's a warm boot, jump to warm boot entrypoint.
2. Primary/Secondary CPU detection. If it's a secondary CPU, jump to plat_secondary_cold_boot_setup(), which doesn't return.
3. CPU initialisations (cache, TLB...).
4. Memory and C runtime initialization.
For a secondary CPU, steps 3 and 4 are never reached. This shouldn't be a problem in most cases, since current implementations of plat_secondary_cold_boot_setup() either panic or power down the secondary CPUs.
The main concern is the lack of secondary CPU initialization when bare metal EL3 payloads are used in case they don't take care of this initialisation themselves.
This patch moves the detection of primary/secondary CPU after step 3 so that the CPU initialisations are performed per-CPU, while the memory and the C runtime initialisation are only performed on the primary CPU. The diagrams used in the ARM Trusted Firmware Reset Design documentation file have been updated to reflect the new boot flow.
Platforms ports might be affected by this patch depending on the behaviour of plat_secondary_cold_boot_setup(), as the state of the platform when entering this function will be different.
Fixes ARM-software/tf-issues#342
Change-Id: Icbf4a0ee2a3e5b856030064472f9fa6696f2eb9e
show more ...
|
| e5846732 | 08-Feb-2016 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
Porting guide: Clarify API that don't follow AAPCS
This patch clarifies a porting API in the Porting Guide that do not follow the ARM Architecture Program Calling Standards (AAPCS). The list of regi
Porting guide: Clarify API that don't follow AAPCS
This patch clarifies a porting API in the Porting Guide that do not follow the ARM Architecture Program Calling Standards (AAPCS). The list of registers that are allowed to be clobbered by this API has been updated in the Porting Guide.
Fixes ARM-software/tf-issues#259
Change-Id: Ibf2adda2e1fb3e9b8f53d8a918d5998356eb8fce
show more ...
|
| cf2c8a33 | 15-Feb-2016 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
Enable preloaded BL33 alternative boot flow
Enable alternative boot flow where BL2 does not load BL33 from non-volatile storage, and BL31 hands execution over to a preloaded BL33.
The flag used to
Enable preloaded BL33 alternative boot flow
Enable alternative boot flow where BL2 does not load BL33 from non-volatile storage, and BL31 hands execution over to a preloaded BL33.
The flag used to enable this bootflow is BL33_BASE, which must hold the entrypoint address of the BL33 image. The User Guide has been updated with an example of how to use this option with a bootwrapped kernel.
Change-Id: I48087421a7b0636ac40dca7d457d745129da474f
show more ...
|
| 9931932b | 22-Feb-2016 |
danh-arm <dan.handley@arm.com> |
Merge pull request #532 from soby-mathew/vk/configure_mmap_macros
Rationalise MMU and Page table related constants on ARM platforms |
| c64a0448 | 20-Jan-2016 |
Vikram Kanigiri <vikram.kanigiri@arm.com> |
Rationalise MMU and Page table related constants on ARM platforms
`board_arm_def.h` contains multiple definitions of `PLAT_ARM_MMAP_ENTRIES` and `MAX_XLAT_TABLES` that are optimised for memory usage
Rationalise MMU and Page table related constants on ARM platforms
`board_arm_def.h` contains multiple definitions of `PLAT_ARM_MMAP_ENTRIES` and `MAX_XLAT_TABLES` that are optimised for memory usage depending upon the chosen build configuration. To ease maintenance of these constants, this patch replaces their multiple definitions with a single set of definitions that will work on all ARM platforms.
Platforms can override the defaults with optimal values by enabling the `ARM_BOARD_OPTIMISE_MMAP` build option. An example has been provided in the Juno ADP port.
Additionally, `PLAT_ARM_MMAP_ENTRIES` is increased by one to accomodate future ARM platforms.
Change-Id: I5ba6490fdd1e118cc9cc2d988ad7e9c38492b6f0
show more ...
|
| 094a935d | 22-Feb-2016 |
danh-arm <dan.handley@arm.com> |
Merge pull request #518 from hzhuang1/pl061_gpio_v5
Pl061 gpio v5 |
| f62d89ed | 19-Feb-2016 |
danh-arm <dan.handley@arm.com> |
Merge pull request #531 from soby-mathew/sm/multicluster_fvp
Allow multi cluster topology definitions for ARM platforms |
| 0108047a | 01-Feb-2016 |
Soby Mathew <soby.mathew@arm.com> |
Allow multi cluster topology definitions for ARM platforms
The common topology description helper funtions and macros for ARM Standard platforms assumed a dual cluster system. This is not flexible e
Allow multi cluster topology definitions for ARM platforms
The common topology description helper funtions and macros for ARM Standard platforms assumed a dual cluster system. This is not flexible enough to scale to multi cluster platforms. This patch does the following changes for more flexibility in defining topology:
1. The `plat_get_power_domain_tree_desc()` definition is moved from `arm_topology.c` to platform specific files, that is `fvp_topology.c` and `juno_topology.c`. Similarly the common definition of the porting macro `PLATFORM_CORE_COUNT` in `arm_def.h` is moved to platform specific `platform_def.h` header.
2. The ARM common layer porting macros which were dual cluster specific are now removed and a new macro PLAT_ARM_CLUSTER_COUNT is introduced which must be defined by each ARM standard platform.
3. A new mandatory ARM common layer porting API `plat_arm_get_cluster_core_count()` is introduced to enable the common implementation of `arm_check_mpidr()` to validate MPIDR.
4. For the FVP platforms, a new build option `FVP_NUM_CLUSTERS` has been introduced which allows the user to specify the cluster count to be used to build the topology tree within Trusted Firmare. This enables Trusted Firmware to be built for multi cluster FVP models.
Change-Id: Ie7a2e38e5661fe2fdb2c8fdf5641d2b2614c2b6b
show more ...
|
| 84d1099f | 18-Feb-2016 |
danh-arm <dan.handley@arm.com> |
Merge pull request #529 from sandrine-bailleux/sb/a57-sw-optim-ref
Cortex-A57: Add link to software optimization guide |
| f8e6eddb | 18-Feb-2016 |
danh-arm <dan.handley@arm.com> |
Merge pull request #528 from antonio-nino-diaz-arm/an/user_guide
Move up FVP versions in the user guide |
| 38363bb9 | 18-Feb-2016 |
danh-arm <dan.handley@arm.com> |
Merge pull request #526 from antonio-nino-diaz-arm/an/missing_doc
Add missing build options to the User Guide |
| c4a8db95 | 18-Feb-2016 |
danh-arm <dan.handley@arm.com> |
Merge pull request #524 from jcastillo-arm/jc/tf-issues/319
Improve memory layout documentation |
| d1b2b203 | 09-Feb-2016 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
Cortex-A57: Add link to software optimization guide
This patch adds a link to the Cortex-A57 Software Optimization Guide in the ARM CPU Specific Build Macros document to justify the default value of
Cortex-A57: Add link to software optimization guide
This patch adds a link to the Cortex-A57 Software Optimization Guide in the ARM CPU Specific Build Macros document to justify the default value of the A57_DISABLE_NON_TEMPORAL_HINT build flag.
Change-Id: I9779e42a4bb118442b2b64717ce143314ec9dd16
show more ...
|
| e472b508 | 05-Feb-2016 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
Add missing build options to the User Guide
The folowing build options were missing from the User Guide and have been documented:
- CTX_INCLUDE_FPREGS - DISABLE_PEDANTIC - BUILD_STRING - VERSIO
Add missing build options to the User Guide
The folowing build options were missing from the User Guide and have been documented:
- CTX_INCLUDE_FPREGS - DISABLE_PEDANTIC - BUILD_STRING - VERSION_STRING - BUILD_MESSAGE_TIMESTAMP
Change-Id: I6a9c39ff52cad8ff04deff3ac197af84d437b8b7
show more ...
|
| 7fb9a32d | 14-Jan-2016 |
Vikram Kanigiri <vikram.kanigiri@arm.com> |
Make SCP_BL2(U) image loading configurable on CSS platforms
Current code mandates loading of SCP_BL2/SCP_BL2U images for all CSS platforms. On future ARM CSS platforms, the Application Processor (AP
Make SCP_BL2(U) image loading configurable on CSS platforms
Current code mandates loading of SCP_BL2/SCP_BL2U images for all CSS platforms. On future ARM CSS platforms, the Application Processor (AP) might not need to load these images. So, these items can be removed from the FIP on those platforms.
BL2 tries to load SCP_BL2/SCP_BL2U images if their base addresses are defined causing boot error if the images are not found in FIP.
This change adds a make flag `CSS_LOAD_SCP_IMAGES` which if set to `1` does: 1. Adds SCP_BL2, SCP_BL2U images to FIP. 2. Defines the base addresses of these images so that AP loads them.
And vice-versa if it is set to `0`. The default value is set to `1`.
Change-Id: I5abfe22d5dc1e9d80d7809acefc87b42a462204a
show more ...
|
| 7dc4b227 | 03-Feb-2016 |
Haojian Zhuang <haojian.zhuang@linaro.org> |
Document: add PLAT_PL061_MAX_GPIOS define
ARM PL061 GPIO driver requires the "PLAT_PL061_MAX_GPIOS" definition. By default, it's defined to 32 in PL061 GPIO driver. If user wants more PL061 controll
Document: add PLAT_PL061_MAX_GPIOS define
ARM PL061 GPIO driver requires the "PLAT_PL061_MAX_GPIOS" definition. By default, it's defined to 32 in PL061 GPIO driver. If user wants more PL061 controllers in platform, user should define the build flag in platform.mk instead.
Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
show more ...
|
| 54035fc4 | 13-Jan-2016 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
Disable non-temporal hint on Cortex-A53/57
The LDNP/STNP instructions as implemented on Cortex-A53 and Cortex-A57 do not behave in a way most programmers expect, and will most probably result in a s
Disable non-temporal hint on Cortex-A53/57
The LDNP/STNP instructions as implemented on Cortex-A53 and Cortex-A57 do not behave in a way most programmers expect, and will most probably result in a significant speed degradation to any code that employs them. The ARMv8-A architecture (see Document ARM DDI 0487A.h, section D3.4.3) allows cores to ignore the non-temporal hint and treat LDNP/STNP as LDP/STP instead.
This patch introduces 2 new build flags: A53_DISABLE_NON_TEMPORAL_HINT and A57_DISABLE_NON_TEMPORAL_HINT to enforce this behaviour on Cortex-A53 and Cortex-A57. They are enabled by default.
The string printed in debug builds when a specific CPU errata workaround is compiled in but skipped at runtime has been generalised, so that it can be reused for the non-temporal hint use case as well.
Change-Id: I3e354f4797fd5d3959872a678e160322b13867a1
show more ...
|
| 55f4e273 | 28-Jan-2016 |
Antonio Nino Diaz <antonio.ninodiaz@arm.com> |
Move up FVP versions in the user guide
Move up to Base FVP version 7.2 (build 0.8/7202) and Foundation FVP version 9.5 (build 9.5.41) in the user guide.
Change-Id: Ie9900596216808cadf45f042eec639d9
Move up FVP versions in the user guide
Move up to Base FVP version 7.2 (build 0.8/7202) and Foundation FVP version 9.5 (build 9.5.41) in the user guide.
Change-Id: Ie9900596216808cadf45f042eec639d906e497b2
show more ...
|
| 9f89feb9 | 01-Feb-2016 |
danh-arm <dan.handley@arm.com> |
Merge pull request #504 from sandrine-bailleux/sb/fix-doc-mmap
Porting Guide: Clarify identity-mapping requirement |
| 6874e723 | 01-Feb-2016 |
danh-arm <dan.handley@arm.com> |
Merge pull request #503 from sandrine-bailleux/sb/clarify-doc-el3-payloads
Clarify EL3 payload documentation |
| 51b57481 | 01-Feb-2016 |
danh-arm <dan.handley@arm.com> |
Merge pull request #501 from jcastillo-arm/jc/tf-issues/300
Disable PL011 UART before configuring it |