summaryrefslogtreecommitdiff
path: root/docs
AgeCommit message (Collapse)Author
2017-10-16GIC: Add API to get running priorityJeenu Viswambharan
Document the API in separate platform interrupt controller API document. Change-Id: If18f208e10a8a243f5c59d226fcf48e985941949 Co-authored-by: Yousuf A <yousuf.sait@arm.com> Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
2017-10-09Merge pull request #1117 from antonio-nino-diaz-arm/an/xlat-improvementsdavidcunado-arm
Improvements to the translation tables library v2
2017-10-05GICv3: Document GICv3 save/restore helpersDouglas Raillard
Give hints on how to use the GICv3 save/restore helpers in the implementation of the PSCI handlers. Change-Id: I86de1c27417b64c7ce290974964ef97ff678f676 Signed-off-by: Douglas Raillard <douglas.raillard@arm.com>
2017-10-05xlat: Add support for EL0 and EL1 mappingsAntonio Nino Diaz
This patch introduces the ability of the xlat tables library to manage EL0 and EL1 mappings from a higher exception level. Attributes MT_USER and MT_PRIVILEGED have been added to allow the user specify the target EL in the translation regime EL1&0. REGISTER_XLAT_CONTEXT2 macro is introduced to allow creating a xlat_ctx_t that targets a given translation regime (EL1&0 or EL3). A new member is added to xlat_ctx_t to represent the translation regime the xlat_ctx_t manages. The execute_never mask member is removed as it is computed from existing information. Change-Id: I95e14abc3371d7a6d6a358cc54c688aa9975c110 Co-authored-by: Douglas Raillard <douglas.raillard@arm.com> Co-authored-by: Sandrine Bailleux <sandrine.bailleux@arm.com> Co-authored-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com> Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
2017-10-05xlat: Introduce MAP_REGION2() macroSandrine Bailleux
The current implementation of the memory mapping API favours mapping memory regions using the biggest possible block size in order to reduce the number of translation tables needed. In some cases, this behaviour might not be desirable. When translation tables are edited at run-time, coarse-grain mappings like that might need splitting into finer-grain tables. This operation has a performance cost. The MAP_REGION2() macro allows to specify the granularity of translation tables used for the initial mapping of a memory region. This might increase performance for memory regions that are likely to be edited in the future, at the expense of a potentially increased memory footprint. The Translation Tables Library Design Guide has been updated to explain the use case for this macro. Also added a few intermediate titles to make the guide easier to digest. Change-Id: I04de9302e0ee3d326b8877043a9f638766b81b7b Co-authored-by: Sandrine Bailleux <sandrine.bailleux@arm.com> Co-authored-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com> Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
2017-10-02Merge pull request #1107 from geesun/qx/add_ecdsa_supportdavidcunado-arm
Add support for TBBR using ECDSA keys in ARM platforms
2017-09-29hikey*: Update docsVictor Chong
Signed-off-by: Victor Chong <victor.chong@linaro.org>
2017-09-22Dynamic selection of ECDSA or RSAQixiang Xu
Add new option rsa+ecdsa for TF_MBEDTLS_KEY_ALG, which selects rsa or ecdsa depending on the certificate used. Change-Id: I08d9e99bdbba361ed2ec5624248dc382c750ad47 Signed-off-by: Qixiang Xu <qixiang.xu@arm.com>
2017-09-22Add support for TBBR using ECDSA keys in ARM platformsQixiang Xu
- fixed compile error when KEY_ALG=ecdsa - add new option ecdsa for TF_MBEDTLS_KEY_ALG - add new option devel_ecdsa for ARM_ROTPK_LOCATION - add ecdsa key at plat/arm/board/common/rotpk/ - reduce the mbedtls heap memory size to 13k Change-Id: I3f7a6170af93fdbaaa7bf2fffb4680a9f6113c13 Signed-off-by: Qixiang Xu <qixiang.xu@arm.com>
2017-09-18Merge pull request #1093 from soby-mathew/eb/log_fwdavidcunado-arm
Implement log framework
2017-09-13Merge pull request #1092 from jeenu-arm/errata-workaroundsdavidcunado-arm
Errata workarounds
2017-09-12plat/arm: Fix BL31_BASE when RESET_TO_BL31=1Qixiang Xu
The value of BL31_BASE currently depends on the size of BL31. This causes problems in the RESET_TO_BL31 case because the value of BL31_BASE is used in the model launch parameters, which often changes. Therefore, this patch fixes BL31_BASE to the middle of Trusted SRAM, to avoid further model parameter changes in future. Change-Id: I6d7fa4fe293717d84768974679539c0e0cb6d935 Signed-off-by: David Cunado <david.cunado@arm.com>
2017-09-12Merge pull request #1088 from soby-mathew/sm/sds_scmidavidcunado-arm
Introduce SDS Driver
2017-09-11Implement log frameworkSoby Mathew
This patch gives users control over logging messages printed from the C code using the LOG macros defined in debug.h Users now have the ability to reduce the log_level at run time using the tf_log_set_max_level() function. The default prefix string can be defined by platform by overriding the `plat_log_get_prefix()` platform API which is also introduced in this patch. The new log framework results in saving of some RO data. For example, when BL1 is built for FVP with LOG_LEVEL=LOG_LEVEL_VERBOSE, resulted in saving 384 bytes of RO data and increase of 8 bytes of RW data. The framework also adds about 108 bytes of code to the release build of FVP. Fixes ARM-software/tf-issues#462 Change-Id: I476013d9c3deedfdd4c8b0b0f125665ba6250554 Co-authored-by: Eleanor Bonnici <Eleanor.bonnici@arm.com> Signed-off-by: Soby Mathew <soby.mathew@arm.com>
2017-09-07Cortex-A72: Implement workaround for erratum 859971Eleanor Bonnici
Erratum 855971 applies to revision r0p3 or earlier Cortex-A72 CPUs. The recommended workaround is to disable instruction prefetch. Change-Id: I7fde74ee2a8a23b2a8a1891b260f0eb909fad4bf Signed-off-by: Eleanor Bonnici <Eleanor.bonnici@arm.com> Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
2017-09-07Cortex-A57: Implement workaround for erratum 859972Eleanor Bonnici
Erratum 855972 applies to revision r1p3 or earlier Cortex-A57 CPUs. The recommended workaround is to disable instruction prefetch. Change-Id: I56eeac0b753eb1432bd940083372ad6f7e93b16a Signed-off-by: Eleanor Bonnici <Eleanor.bonnici@arm.com> Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
2017-09-07Merge pull request #1082 from vchong/load_img_v2_parse_optee_headerdavidcunado-arm
hikey*: Add LOAD_IMAGE_V2 and OP-TEE header parsing support
2017-09-07Merge pull request #1080 from soby-mathew/eb/RSA-PKCS1-5_support_1davidcunado-arm
Support legacy RSA PKCS#1 v1.5 in cert create
2017-09-06CSS: Changes for SDS frameworkSoby Mathew
This patch does the required changes to enable CSS platforms to build and use the SDS framework. Since SDS is always coupled with SCMI protocol, the preexisting SCMI build flag is now renamed to `CSS_USE_SCMI_SDS_DRIVER` which will enable both SCMI and SDS on CSS platforms. Also some of the workarounds applied for SCMI are now removed with SDS in place. Change-Id: I94e8b93f05e3fe95e475c5501c25bec052588a9c Signed-off-by: Soby Mathew <soby.mathew@arm.com>
2017-09-01docs: hikey: Fix typoVictor Chong
Signed-off-by: Victor Chong <victor.chong@linaro.org>
2017-08-31cert_tool: Support for legacy RSA PKCS#1 v1.5Soby Mathew
This patch enables choice of RSA version at run time to be used for generating signatures by the cert_tool. The RSA PSS as defined in PKCS#1 v2.1 becomes the default version and this patch enables to specify the RSA PKCS#1 v1.5 algorithm to `cert_create` through the command line -a option. Also, the build option `KEY_ALG` can be used to pass this option from the build system. Please note that RSA PSS is mandated by Trusted Board Boot requirements (TBBR) and legacy RSA support is being added for compatibility reasons. Fixes ARM-Software/tf-issues#499 Change-Id: Ifaa3f2f7c9b43f3d7b3effe2cde76bf6745a5d73 Co-Authored-By: Eleanor Bonnici <Eleanor.bonnici@arm.com> Signed-off-by: Soby Mathew <soby.mathew@arm.com>
2017-08-31Export KEY_ALG as a user build optionSoby Mathew
The `KEY_ALG` variable is used to select the algorithm for key generation by `cert_create` tool for signing the certificates. This variable was previously undocumented and did not have a global default value. This patch corrects this and also adds changes to derive the value of `TF_MBEDTLS_KEY_ALG` based on `KEY_ALG` if it not set by the platform. The corresponding assignment of these variables are also now removed from the `arm_common.mk` makefile. Signed-off-by: Soby Mathew <soby.mathew@arm.com> Change-Id: I78e2d6f4fc04ed5ad35ce2266118afb63127a5a4
2017-08-31porting-guide.rst: Fix some sections' levelDouglas Raillard
Fix the level of the section "13. Function : plat_setup_psci_ops() [mandatory]", including all the subsections. Fix the level of the section "12.7. plat_psci_ops.pwr_domain_suspend_pwrdown_early() [optional]" to lower it like the surrounding functions. Change-Id: I781823bc96ece669f8fde4bd39c4e333c7bf4d1a Signed-off-by: Douglas Raillard <douglas.raillard@arm.com>
2017-08-30Merge pull request #1073 from davidcunado-arm/dc/update_docsdanh-arm
Add usage note for FVP model versions 11.0 and 8.5
2017-08-30Merge pull request #1066 from islmit01/im/enable_cnp_bitdanh-arm
Enable CnP bit for ARMv8.2 CPUs
2017-08-30Add usage note for FVP model versions 11.0 and 8.5David Cunado
The internal synchronisation timings of the FVP model version 11.0 build 11.0.34 and version 8.5 build 0.8.5202 has been changed compared to older version of the models. This change may have an impact on how the model behaves depending on the workload being run on the model. For example test failures have been seen where the primary core has powered on a secondary core but was then starved of host CPU time and so was not able to update power status, resulting a test failure due to an incorrect status. This, or similar behaviour, is not to be expected from real hardware platforms. This patch adds a usage note on how to launch these models so that internal synchronisation timing matches that of the older version of the models, specifically adding the -Q 100 option. Change-Id: If922afddba1581b7246ec889b3f1598533ea1b7e Signed-off-by: David Cunado <david.cunado@arm.com>
2017-08-29Merge pull request #1056 from geesun/qx/interrupt-diagsdanh-arm
update the interrupt diagrams
2017-08-25Merge pull request #1067 from jeenu-arm/rst-fixdavidcunado-arm
firmware-design.rst: Fix formatting
2017-08-24Enable CnP bit for ARMv8.2 CPUsIsla Mitchell
This patch enables the CnP (Common not Private) bit for secure page tables so that multiple PEs in the same Inner Shareable domain can use the same translation table entries for a given stage of translation in a particular translation regime. This only takes effect when ARM Trusted Firmware is built with ARM_ARCH_MINOR >= 2. ARM Trusted Firmware Design has been updated to include a description of this feature usage. Change-Id: I698305f047400119aa1900d34c65368022e410b8 Signed-off-by: Isla Mitchell <isla.mitchell@arm.com>
2017-08-24firmware-design.rst: Fix formattingJeenu Viswambharan
The format conversion wrongly formatted a couple of sections. These were also missing from the Table of Contents. Change-Id: I324216c27e7b4711e6cc5e25782f4b53842140cc Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
2017-08-23doc: minor typo fixEtienne Carriere
Change-Id: I00fae047dea0eaf7e60037598af020817c66f659 Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
2017-08-17Merge pull request #977 from etienne-lms/sp-min-fiqdanh-arm
bl32: add secure interrupt handling in AArch32 sp_min
2017-08-17update the interrupt diagramsQixiang Xu
- Redraw the interrupt diagrams with dia tool - Change TSP_HANDLED_S_EL1_FIQ to TSP_HANDLED_S_EL1_INTR in sec-int-handling.png - Use the makefile generate the image to avoid unnessary generate - Add dia source code Change-Id: I016022ca964720e8497c27c88a3f371459abc284 Signed-off-by: Qixiang Xu <qixiang.xu@arm.com>
2017-08-14Merge pull request #1040 from sliai/support-opteed-headerdanh-arm
Support opteed header
2017-08-14Merge pull request #1049 from sandrine-bailleux-arm/sb/xlat-lib-v2-docdanh-arm
Add documentation of the xlat tables library V2
2017-08-14Merge pull request #1046 from jeenu-arm/revcdanh-arm
Support for RevC FVP model
2017-08-09bl32: add secure interrupt handling in AArch32 sp_minEtienne Carriere
Add support for a minimal secure interrupt service in sp_min for the AArch32 implementation. Hard code that only FIQs are handled. Introduce bolean build directive SP_MIN_WITH_SECURE_FIQ to enable FIQ handling from SP_MIN. Configure SCR[FIQ] and SCR[FW] from generic code for both cold and warm boots to handle FIQ in secure state from monitor. Since SP_MIN architecture, FIQ are always trapped when system executes in non secure state. Hence discard relay of the secure/non-secure state in the FIQ handler. Change-Id: I1f7d1dc7b21f6f90011b7f3fcd921e455592f5e7 Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
2017-08-09Support Trusted OS firmware extra images in TF toolsSummer Qin
Since Trusted OS firmware may have extra images, need to assign new uuid and image id for them. The TBBR chain of trust has been extended to add support for the new images within the existing Trusted OS firmware content certificate. Change-Id: I678dac7ba1137e85c5779b05e0c4331134c10e06 Signed-off-by: Summer Qin <summer.qin@arm.com>
2017-08-08Add documentation of the xlat tables library V2Antonio Nino Diaz
The documentation describes the design of the translation tables library version 2 used by the ARM Trusted Firmware. The diagram file has been created with Dia version 0.97.2. This tool can be obtained from: https://wiki.gnome.org/Apps/Dia/Download Inkscape has been used to generate the *.png file from the *.dia file to work around a bug in the generation of *.png files in some versions of Dia. Change-Id: Ie67d9998d4ae881b2c060200a318ad3ac2fa5e91 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com> Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
2017-08-03Fix to change.logDavid Cunado
With the migration to .rst from .md, the Issues Resolved and Known Issues sections for v1.4 were using Header 1 format. This patch changes to using Header 2 for these sections. Change-Id: Ic3127d84eb169a65039fd4cc8284c6429302732d Signed-off-by: David Cunado <david.cunado@arm.com>
2017-08-01CCI: Adapt for specific product at run timeJeenu Viswambharan
The current build system and driver requires the CCI product to be specified at build time. The device constraints can be determined at run time from its ID registers, obviating the need for specifying them ahead. This patch adds changes to identify and validate CCI at run time. Some global variables are renamed to be in line with the rest of the code base. The build option ARM_CCI_PRODUCT_ID is now removed, and user guide is updated. Change-Id: Ibb765e349d3bc95ff3eb9a64bde1207ab710a93d Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
2017-08-01FVP: Add support for multi-threaded CPUsJeenu Viswambharan
ARM CPUs with multi-threading implementation has more than one Processing Element in a single physical CPU. Such an implementation will reflect the following changes in the MPIDR register: - The MT bit set; - Affinity levels pertaining to cluster and CPUs occupy one level higher than in a single-threaded implementation, and the lowest affinity level pertains to hardware threads. MPIDR affinity level fields essentially appear shifted to left than otherwise. The FVP port henceforth assumes that both properties above to be concomitant on a given FVP platform. To accommodate for varied MPIDR formats at run time, this patch re-implements the FVP platform-specific functions that translates MPIDR values to a linear indices, along with required validation. The same treatment is applied for GICv3 MPIDR hashing function as well. An FVP-specific build option FVP_MAX_PE_PER_CPU is introduced which specifies the maximum number of threads implemented per CPU. For backwards compatibility, its value defaults to 1. Change-Id: I729b00d3e121d16ce9a03de4f9db36dfac580e3f Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
2017-07-31lib: psci: early suspend handler for platformsVarun Wadekar
This patch adds an early suspend handler, that executes with SMP and data cache enabled. This handler allows platforms to perform any early actions during the CPU suspend entry sequence. This handler is optional and platforms can choose to implement it depending on their needs. The `pwr_domain_suspend` handler still exists and platforms can keep on using it without any side effects. Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
2017-07-31Merge pull request #1037 from douglas-raillard-arm/dr/doc_fix_errata_a53davidcunado-arm
Add doc for some Cortex A53 errata workarounds
2017-07-31Merge pull request #1035 from sandrine-bailleux-arm/sb/xlat-lib-ctxdavidcunado-arm
Translation table library v2 improvements
2017-07-26Emphasize that TF only supports 4 KB granule sizeSandrine Bailleux
At the moment, various parts of the Trusted Firmware code assume that the granule size used is 4 KB. For example, the linker scripts enforce 4 KB alignment restrictions on some sections. However, the ARMv8-A architecture allows 16 KB and 64 KB granule sizes as well. Some other parts of the TF code, particularly the architectural code and definitions, have been implemented with this in mind and cater for all 3 cases. This discrepancy creates some confusion as to what is effectively supported in TF. This patch adds some code comments and clarification in the documentation to make this limitation clearer. Change-Id: I1f202369b240d8bed9d43d57ecd2a548c86c8598 Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
2017-07-24Add doc for some Cortex A53 errata workaroundsDouglas Raillard
Add documentation for errata 835769 and 843419 workarounds introduced in commit a94cc374ab57b80d86974f8771565d65b38403ef Fixes ARM-software/tf-issues#504 Change-Id: I7f3db53dfc5f3827b32663f483d3302bc9679b19 Signed-off-by: Douglas Raillard <douglas.raillard@arm.com>
2017-07-24Fix alphabetic orderingJeenu Viswambharan
Commit d832aee90, which added SPE support, got the alphabetical ordering wrong for documentation and Makefile addition. This patch fixes that. Change-Id: I061ecfba4db363902c9d7d577d2ce6c612cb9e1d Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
2017-07-14Merge pull request #1005 from ldts/v1davidcunado-arm
Poplar: Initial commit for Poplar E-96Boards
2017-07-14Merge pull request #1028 from vchong/bl32_optee_support_v2davidcunado-arm
hikey: Add BL32 (OP-TEE) support v2