| 1ae75529 | 21-Nov-2022 |
Andre Przywara <andre.przywara@arm.com> |
feat(fvp): emulate trapped RNDR
When a platform decides to use FEAT_RNG_TRAP, every RNDR or RNDRSS read will trap into EL3. The platform can then emulate those instructions, by either executing the
feat(fvp): emulate trapped RNDR
When a platform decides to use FEAT_RNG_TRAP, every RNDR or RNDRSS read will trap into EL3. The platform can then emulate those instructions, by either executing the real CPU instructions, potentially conditioning the results, or use rate-limiting or filtering to protect the hardware entropy pool. Another possiblitiy would be to use some platform specific TRNG device to get entropy and returning this.
To demonstrate platform specific usage, add a demo implementation for the FVP: It will execute the actual CPU instruction and just return the result. This should serve as reference code to implement platform specific policies.
We change the definition of read_rndr() and read_rndrrs() to use the alternative sysreg encoding, so that all assemblers can handle that.
Add documentation about the new platform specific RNG handler function.
Signed-off-by: Andre Przywara <andre.przywara@arm.com> Change-Id: Ibce817b3b06ad20129d15531b81402e3cc3e9a9e
show more ...
|
| 6d4f4c3e | 15-Dec-2022 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge changes from topic "qemu_sel2" into integration
* changes: docs(build): describes the SPMC_OPTEE build option feat(qemu): support el3 spmc feat(el3-spmc): make platform logical partition
Merge changes from topic "qemu_sel2" into integration
* changes: docs(build): describes the SPMC_OPTEE build option feat(qemu): support el3 spmc feat(el3-spmc): make platform logical partition optional feat(qemu): support s-el2 spmc feat(qemu): update abi between spmd and spmc fix(sptool): add dependency to SP image
show more ...
|
| bb0e3360 | 14-Dec-2022 |
Jens Wiklander <jens.wiklander@linaro.org> |
docs(build): describes the SPMC_OPTEE build option
Explains that the SPMC_OPTEE build option is used to load the SPMC at S-EL1 using an OP-TEE specific mechanism.
Signed-off-by: Jens Wiklander <jen
docs(build): describes the SPMC_OPTEE build option
Explains that the SPMC_OPTEE build option is used to load the SPMC at S-EL1 using an OP-TEE specific mechanism.
Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Change-Id: I71757d2d9ac98caf0ac6d8e64b221adaa0f70846
show more ...
|
| 291be198 | 07-Dec-2022 |
Boyan Karatotev <boyan.karatotev@arm.com> |
docs: describe the new warning levels
When -Wextra was added, the warning levels changed their meaning. Add a description in the build option section and leave the security hardening section as most
docs: describe the new warning levels
When -Wextra was added, the warning levels changed their meaning. Add a description in the build option section and leave the security hardening section as mostly a pointer to it.
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Change-Id: Iabf2f598d0bf3e865c9b991c5d44d2acb9572bd5
show more ...
|
| 228b06a5 | 22-Nov-2022 |
Boyan Karatotev <boyan.karatotev@arm.com> |
docs(porting-guide): update a reference
The BL31 part has been there forever and the PSCI reference is neither at section 3.3 or directly below. Update this to locate the section more easily.
Signe
docs(porting-guide): update a reference
The BL31 part has been there forever and the PSCI reference is neither at section 3.3 or directly below. Update this to locate the section more easily.
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Change-Id: I9a86e4ef13d1ac5da743917493f63ddd7690e087
show more ...
|
| f1910cc1 | 21-Nov-2022 |
Govindraj Raja <govindraj.raja@arm.com> |
build: restrict usage of CTX_INCLUDE_EL2_REGS
CTX_INCLUDE_EL2_REGS is used to save/restore EL2 registers and it should be only used when there is SPMD or RME enabled.
Make CTX_INCLUDE_EL2_REGS an i
build: restrict usage of CTX_INCLUDE_EL2_REGS
CTX_INCLUDE_EL2_REGS is used to save/restore EL2 registers and it should be only used when there is SPMD or RME enabled.
Make CTX_INCLUDE_EL2_REGS an internal macro and remove from documentation.
Signed-off-by: Govindraj Raja <govindraj.raja@arm.com> Change-Id: I6a70edfd88163423ff0482de094601cf794246d6
show more ...
|
| 71061819 | 16-Nov-2022 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes If90a18ee,I02e88f8c,Iea447fb5,Ie0570481,Ieeb14cfc into integration
* changes: docs: add top level section numbering docs(build): clarify getting started section docs(build): clar
Merge changes If90a18ee,I02e88f8c,Iea447fb5,Ie0570481,Ieeb14cfc into integration
* changes: docs: add top level section numbering docs(build): clarify getting started section docs(build): clarify docs building instructions fix(docs): prevent a sphinx warning fix(docs): prevent a virtual environment from failing a build
show more ...
|
| c65bf2d1 | 27-Oct-2022 |
Boyan Karatotev <boyan.karatotev@arm.com> |
docs: add top level section numbering
Top level sections are not numbered. Adding numbers makes referring to sections easier. For example the Maintainers page changes from "about/3.1" to simply "1.3
docs: add top level section numbering
Top level sections are not numbered. Adding numbers makes referring to sections easier. For example the Maintainers page changes from "about/3.1" to simply "1.3.1".
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Change-Id: If90a18ee8d6a6858d58f0687f31ea62b69399e04
show more ...
|
| b50838ba | 27-Oct-2022 |
Boyan Karatotev <boyan.karatotev@arm.com> |
docs(build): clarify getting started section
The Getting started section is very difficult to follow. Building the fip comes before building the files it needs, the BL33 requirement is given in a so
docs(build): clarify getting started section
The Getting started section is very difficult to follow. Building the fip comes before building the files it needs, the BL33 requirement is given in a somewhat hand wavy way, and the Arm Developer website download provides a lot of targets and the guide is not clear which ones are needed on download.
Swapping the initial build and supporting tools sections makes the flow more natural and the supporting tools section then becomes clear. Explicitly mentioning the GCC targets avoids confusion for people less familiar with the project (eg. new starters).
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Change-Id: I02e88f8c279db6d8eda68f634e8473c02b733963
show more ...
|
| 8526472a | 27-Oct-2022 |
Boyan Karatotev <boyan.karatotev@arm.com> |
docs(build): clarify docs building instructions
Using virtual environments with pip is a generally recommended good practice but the docs do not acknowledge it. As a result fresh installs might fail
docs(build): clarify docs building instructions
Using virtual environments with pip is a generally recommended good practice but the docs do not acknowledge it. As a result fresh installs might fail builds due to missing $PATH entries. The Prerequisites section is also a bit verbose which is difficult to read.
This patch adds the virtual environment mention and clarifies wording.
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Change-Id: Iea447fb59dc471a502454650c8548192d93ba879
show more ...
|
| 068d9212 | 15-Nov-2022 |
Boyan Karatotev <boyan.karatotev@arm.com> |
fix(docs): unify referenced Ubuntu versions
Documentation is inconsistent when referring to Ubuntu versioning. Change this to a single reference that is consistent with the stated version for TF-A t
fix(docs): unify referenced Ubuntu versions
Documentation is inconsistent when referring to Ubuntu versioning. Change this to a single reference that is consistent with the stated version for TF-A tests.
The change was tested with a full build on a clean install of Ubuntu 20.04.
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Change-Id: Ibb135ed938e9d92332668fa5caf274cf61b822d3
show more ...
|
| a2e01234 | 14-Nov-2022 |
Okash Khawaja <okash@google.com> |
fix(cpus): update doc and check for plat_can_cmo
plat_can_cmo must not clobber x1 but the doc doesn't mention that. This patch updates the doc to mention x1. It also adds check for plat_can_cmo to `
fix(cpus): update doc and check for plat_can_cmo
plat_can_cmo must not clobber x1 but the doc doesn't mention that. This patch updates the doc to mention x1. It also adds check for plat_can_cmo to `dcsw_op_louis` which was missed out in original patch.
Signed-off-by: Okash Khawaja <okash@google.com> Change-Id: I721376bf3726520d0d5b0df0f33f98ce92257287
show more ...
|
| 40f9f644 | 09-Nov-2020 |
Nicolas Toromanoff <nicolas.toromanoff@st.com> |
feat(auth): allow to verify PublicKey with platform format PK
In some platform the digest of the public key saved in the OTP is not the digest of the exact same public key buffer needed to check the
feat(auth): allow to verify PublicKey with platform format PK
In some platform the digest of the public key saved in the OTP is not the digest of the exact same public key buffer needed to check the signature. Typically, platform checks signature using the DER ROTPK whereas some others add some related information. Add a new platform weak function to transform the public key buffer used by verify_signature to a platform specific public key.
Mark this new weak function as deprecated as it will be replaced by another framework implementation.
Change-Id: I71017b41e3eca9398cededf317ad97e9b511be5f Signed-off-by: Nicolas Toromanoff <nicolas.toromanoff@st.com> Signed-off-by: Lionel Debieve <lionel.debieve@foss.st.com>
show more ...
|
| e78ba69e | 14-Nov-2022 |
Lionel Debieve <lionel.debieve@foss.st.com> |
feat(cert-create): update for ECDSA brainpoolP256r/t1 support
Updated cert_tool to be able to select brainpool P256r/t1 or NIST prim256v1 curve for certificates signature.
Change-Id: I6e80014469706
feat(cert-create): update for ECDSA brainpoolP256r/t1 support
Updated cert_tool to be able to select brainpool P256r/t1 or NIST prim256v1 curve for certificates signature.
Change-Id: I6e800144697069ea83660053b8ba6e21c229243a Signed-off-by: Nicolas Toromanoff <nicolas.toromanoff@st.com> Signed-off-by: Lionel Debieve <lionel.debieve@foss.st.com>
show more ...
|
| 797d7446 | 11-Nov-2022 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge "refactor(security): add OpenSSL 1.x compatibility" into integration |
| cf2dd17d | 25-Oct-2022 |
Juan Pablo Conde <juanpablo.conde@arm.com> |
refactor(security): add OpenSSL 1.x compatibility
When updated to work with OpenSSL 3.0, the host tools lost their compatibility with previous versions (1.x) of OpenSSL. This is mainly due to the fa
refactor(security): add OpenSSL 1.x compatibility
When updated to work with OpenSSL 3.0, the host tools lost their compatibility with previous versions (1.x) of OpenSSL. This is mainly due to the fact that 1.x APIs became deprecated in 3.0 and therefore their use cause compiling errors. In addition, updating for a newer version of OpenSSL meant improving the stability against security threats. However, although version 1.1.1 is now deprecated, it still receives security updates, so it would not imply major security issues to keep compatibility with it too.
This patch adds backwards compatibility with OpenSSL 1.x versions by adding back 1.x API code. It defines a macro USING_OPENSSL3, which will select the appropriate OpenSSL API version depending on the OpenSSL library path chosen (which is determined by the already-existing OPENSSL_DIR variable).
In addition, cleanup items were packed in functions and moved to the proper modules in order to make the code more maintainable and legible.
Signed-off-by: Juan Pablo Conde <juanpablo.conde@arm.com> Change-Id: I8deceb5e419edc73277792861882404790ccd33c
show more ...
|
| 20a43156 | 11-Nov-2022 |
Bipin Ravi <bipin.ravi@arm.com> |
Merge "feat(cpus): make cache ops conditional" into integration |
| f41e23ea | 10-Nov-2022 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge changes from topic "mp/ras_refactoring" into integration
* changes: docs: document do_panic() and panic() helper functions fix(ras): restrict RAS support for NS world |
| 04c7303b | 04-Nov-2022 |
Okash Khawaja <okash@google.com> |
feat(cpus): make cache ops conditional
When a core is in debug recovery mode its caches are not invalidated upon reset, so the L1 and L2 cache contents from before reset are observable after reset.
feat(cpus): make cache ops conditional
When a core is in debug recovery mode its caches are not invalidated upon reset, so the L1 and L2 cache contents from before reset are observable after reset. Similarly, debug recovery mode of DynamIQ cluster ensures that contents of the shared L3 cache are also not invalidated upon transition to On mode.
Booting cores in debug recovery mode means booting with caches disabled and preserving the caches until a point where software can dump the caches and retrieve their contents. TF-A however unconditionally cleans and invalidates caches at multiple points during boot. This can lead to memory corruption as well as loss of cache contents to be used for debugging.
This patch fixes this by calling a platform hook before performing CMOs in helper routines in cache_helpers.S. The platform hook plat_can_cmo is an assembly routine which must not clobber x2 and x3, and avoid using stack. The whole checking is conditional upon `CONDITIONAL_CMO` which can be set at compile time.
Signed-off-by: Okash Khawaja <okash@google.com> Change-Id: I172e999e4acd0f872c24056e647cc947ee54b193
show more ...
|
| 0d41e174 | 10-Nov-2022 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "chore(docs): move deprecated platforms information around" into integration |
| 00bf236e | 09-Nov-2022 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge "refactor(trng): cleanup the existing TRNG support" into integration |
| a6a1dcbe | 08-Nov-2022 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
chore(docs): move deprecated platforms information around
We used to have a dedicated page for deprecated platforms information. This document contained 2 pieces of information:
a) the process for
chore(docs): move deprecated platforms information around
We used to have a dedicated page for deprecated platforms information. This document contained 2 pieces of information:
a) the process for deprecating a platform port; b) the list of deprecated platforms to this day.
I think it makes more sense to move b) to the platforms ports landing page, such that it is more visible.
This also has the nice effect to move the 'Deprecated platforms' title as the last entry of the 'Platform ports' table of contents, like so:
- Platform ports - 1. Allwinner ARMv8 SoCs - 2. Arm Development Platforms ... - 39. Broadcom Stingray - Deprecated platforms
instead of it being lost in the middle of supported platform ports.
Regarding a), this gets moved under the "Processes & Policies" section. More specifically, it gets clubbed with the existing platform compatibility policy. The combined document gets renamed into a "Platforms Ports Policy" document.
Change-Id: I6e9ce2abc68b8a8ac88e7bd5f21749c14c9a2af6 Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
show more ...
|
| 5988a807 | 02-Nov-2022 |
Manish Pandey <manish.pandey2@arm.com> |
docs: document do_panic() and panic() helper functions
panic() and do_panic() are widely used helper functions called when encountering a critical failure that cannot be recovered from. Document the
docs: document do_panic() and panic() helper functions
panic() and do_panic() are widely used helper functions called when encountering a critical failure that cannot be recovered from. Document them in porting guide. Also, remove panic() documentation from PSCI guide(where it is unused anyways).
Signed-off-by: Manish Pandey <manish.pandey2@arm.com> Change-Id: Ib0965cce56c03d0de5ac0d05d5714a6942793ede
show more ...
|
| 0b22e591 | 11-Oct-2022 |
Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> |
refactor(trng): cleanup the existing TRNG support
This patch adds the following changes to complete the existing TRNG implementation:
1. Adds a feature specific scope for buildlog generation. 2. Up
refactor(trng): cleanup the existing TRNG support
This patch adds the following changes to complete the existing TRNG implementation:
1. Adds a feature specific scope for buildlog generation. 2. Updates the docs on the build flag "TRNG_SUPPORT" and its values. 3. Makefile update and improves the existing comments at few sections for better understanding of the underlying logic.
Change-Id: I3f72f0ccd5c94005a2df87158cf23199d2160d37 Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
show more ...
|
| 46cc41d5 | 10-Oct-2022 |
Manish Pandey <manish.pandey2@arm.com> |
fix(ras): restrict RAS support for NS world
Current RAS framework in TF-A only supports handling errors originating from NS world but the HANDLE_EA_EL3_FIRST flag configures it for all lower Els. To
fix(ras): restrict RAS support for NS world
Current RAS framework in TF-A only supports handling errors originating from NS world but the HANDLE_EA_EL3_FIRST flag configures it for all lower Els. To make the current design of RAS explicit, rename this macro to HANDLE_EA_EL3_FIRST_NS and set EA bit in scr_el3 only when switching to NS world.
Note: I am unaware of any platform which traps errors originating in Secure world to EL3, if there is any such platform then it need to be explicitly implemented in TF-A
Signed-off-by: Manish Pandey <manish.pandey2@arm.com> Change-Id: If58eb201d8fa792c16325c85c26056e9b409b750
show more ...
|