- Jan 11, 2023
-
-
Andre Przywara authored
Our system register access function wrappers are using "volatile" inline assembly instructions. On the first glance this is a good idea, since many system registers have side effects, and we don't want the compiler to optimise or reorder them (what "volatile" prevents). However this also naturally limits the compiler's freedom to optimise code better, and those volatile properties don't apply to every type of system register. One example are the CPU ID registers, which have constant values, are side-effect free and read-only. Introduce a new wrapper type that drops the volatile keyword, and use that for the wrappers instantiating ID register accessors. This allows the compiler to freely optimise those instructions away, if their result isn't actually used, which can trigger further optimisations. Change-Id: I3c64716ae4f4bf603f0ea57b652bd50bcc67bb0e Signed-off-by:
Andre Przywara <andre.przywara@arm.com>
-
- Jan 10, 2023
-
-
Manish Pandey2 authored
* changes: docs: describe the new warning levels build: add -Wunused-const-variable=2 to W=2 build: include -Wextra in generic builds docs(porting-guide): update a reference fix(st-usb): replace redundant checks with asserts fix(brcm): add braces around bodies of conditionals fix(renesas): align incompatible function pointers fix(zynqmp): remove redundant api_version check fix: remove old-style declarations fix: unify fallthrough annotations
-
- Jan 09, 2023
-
-
Madhukar Pappireddy authored
-
Madhukar Pappireddy authored
-
Manish Badarkhe authored
-
Rupinderjit Singh authored
Signed-off-by:
Rupinderjit Singh <rupinderjit.singh@arm.com> Change-Id: I64e7b036f404da110339d9013aa5c17ed8bf100f
-
Manish Badarkhe authored
-
- Jan 06, 2023
-
-
Yann Gautier authored
Signed-off-by:
Yann Gautier <yann.gautier@st.com> Change-Id: Ie9426509ee4f0a4c4f0fe0296d7a7378cc8828f5
-
Madhukar Pappireddy authored
-
Yann Gautier authored
SCHAR_MIN definition should use SCHAR_MAX, and not itself. Signed-off-by:
Yann Gautier <yann.gautier@st.com> Change-Id: If8c1751a381dac50fe3ec5fdf19d6a4918470b58
-
Yann Gautier authored
In FCONF_REGISTER_POPULATOR macro, add static for the fconf_populator struct. This avoids this kind of sparse warning: plat/st/common/stm32mp_fconf_io.c:181:1: warning: symbol 'stm32mp_io__populator' was not declared. Should it be static? Signed-off-by:
Yann Gautier <yann.gautier@st.com> Change-Id: Icaa7da3079e82497e112585150f6348ef2ebf5e6
-
Olivier Deprez authored
-
Chengci.Xu authored
IOMMU kernel driver has changed the function parameters, so update IOMMU TF-A driver to be consistent with it. Change-Id: I2adda69bdbdc31833781fac5e6c1f4b10da161be Signed-off-by:
Chengci.Xu <chengci.xu@mediatek.com>
-
- Jan 04, 2023
-
-
Manish Pandey2 authored
* changes: feat(fvp): emulate trapped RNDR feat(el3-runtime): introduce system register trap handler
-
Manish Pandey2 authored
-
Increase TC_TZC_DRAM1_SIZE for Trusty image and its memory size. Update OP-TEE reserved memory range in DTS Change-Id: Iad433c3c155f28860b15bde2398df653487189dd Signed-off-by:
Arunachalam Ganapathy <arunachalam.ganapathy@arm.com> Signed-off-by:
Davidson K <davidson.kumaresan@arm.com>
-
Sandrine Bailleux authored
-
- Jan 03, 2023
-
-
Sandrine Bailleux authored
* changes: refactor(auth): do not include SEQUENCE tag in saved extensions fix(auth): reject junk after certificates fix(auth): require bit strings to have no unused bits
-
This makes the code a little bit smaller. No functional change intended. Change-Id: I794d2927fcd034a79e29c9bba1f8e4410203f547 Signed-off-by:
Demi Marie Obenour <demiobenour@gmail.com>
-
Certificates must not allow trailing junk after them. Change-Id: Ie33205fb051fc63af5b72c326822da7f62eec1d1 Signed-off-by:
Demi Marie Obenour <demiobenour@gmail.com>
-
This is already checked by the crypto module or by mbedTLS, but checking it in the X.509 parser is harmless. Change-Id: Ifdbe3b4c6d04481bb8e93106ee04b49a70f50d5d Signed-off-by:
Demi Marie Obenour <demiobenour@gmail.com>
-
Sandrine Bailleux authored
* changes: refactor(auth): partially validate SubjectPublicKeyInfo early fix(auth): reject padding after BIT STRING in signatures fix(auth): reject invalid padding in digests fix(auth): require at least one extension to be present fix(auth): forbid junk after extensions fix(auth): only accept v3 X.509 certificates
-
Manish Pandey2 authored
* changes: fix(st-crypto): remove platdata functions fix(st-crypto): set get_plain_pk_from_asn1() static fix(stm32mp1): add missing platform.h include fix(st): make metadata_block_spec static
-
- Dec 30, 2022
-
-
Demi Marie Obenour authored
Since the two instances of the signature algorithm in a certificate must be bitwise identical, it is not necessary to parse both of them. Instead, it suffices to parse one of them, and then check that the other fits in the remaining buffer space and is equal to the first. Change-Id: Id0a0663165f147879ac83b6a540378fd4873b0dd Signed-off-by:
Demi Marie Obenour <demiobenour@gmail.com>
-
- Dec 29, 2022
-
-
Demi Marie Obenour authored
This reduces the likelihood of future problems later. Change-Id: Ia748b6ae31a7a48f17ec7f0fc08310a50cd1b135 Signed-off-by:
Demi Marie Obenour <demiobenour@gmail.com>
-
Demi Marie Obenour authored
It is forbidden by ASN.1 DER. Change-Id: Id8a48e14bb8a1a17a6481ea3fde0803723c05e31 Signed-off-by:
Demi Marie Obenour <demiobenour@gmail.com>
-
Demi Marie Obenour authored
Digests must not have padding after the SEQUENCE or OCTET STRING. Change-Id: Id25ab23111781f8c8a97c2c3c8edf1cc4a4384c0 Signed-off-by:
Demi Marie Obenour <demiobenour@gmail.com>
-
Demi Marie Obenour authored
X.509 and RFC5280 allow omitting the extensions entirely, but require that if the extensions field is present at all, it must contain at least one certificate. TF-A already requires the extensions to be present, but allows them to be empty. However, a certificate with an empty extensions field will always fail later on, as the extensions contain the information needed to validate the next stage in the boot chain. Therefore, it is simpler to require the extension field to be present and contain at least one extension. Also add a comment explaining why the extensions field is required, even though it is OPTIONAL in the ASN.1 syntax. Change-Id: Ie26eed8a7924bf50937a6b27ccdf7cc9a390588d Signed-off-by:
Demi Marie Obenour <demiobenour@gmail.com>
-
Demi Marie Obenour authored
The extensions must use all remaining bytes in the TBSCertificate. Change-Id: Idf48f7168e146d050ba62dbc732638946fcd6c92 Signed-off-by:
Demi Marie Obenour <demiobenour@gmail.com>
-
Demi Marie Obenour authored
v1 and v2 are forbidden as at least one extension is required. Instead of actually parsing the version number, just compare it with a hard-coded string. Change-Id: Ib8fd34304a0049787db77ec8c2359d0930cd4ba1 Signed-off-by:
Demi Marie Obenour <demiobenour@gmail.com>
-
- Dec 22, 2022
-
-
Bipin Ravi authored
-
Manish Badarkhe authored
* changes: fix(tc): change the properties of optee reserved memory feat(tc): use smmu 700
-
- Dec 21, 2022
-
-
Madhukar Pappireddy authored
-
Bipin Ravi authored
Neoverse N2 erratum 2743089 is a Cat B erratum that applies to all revisions <=r0p2 and is fixed in r0p3. The workaround is to insert a dsb before the isb in the power down sequence. SDEN documentation: https://developer.arm.com/documentation/SDEN1982442/latest Signed-off-by:
Bipin Ravi <bipin.ravi@arm.com> Change-Id: Idec862226bd32c91374a8bbd5d73d7ee480a34d9
-
Madhukar Pappireddy authored
* changes: fix(cpus): workaround for Cortex-A78 erratum 2772019 fix(cpus): workaround for Neoverse V1 erratum 2743093
-
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
-
At the moment we only handle SMC traps from lower ELs, but ignore any other synchronous traps and just panic. To cope with system register traps, which we might need to emulate, introduce a C function to handle those traps, and wire that up in the exception handler to be called. We provide a dispatcher function (in C), that will call platform specific implementation for certain (classes of) system registers. For now this is empty. Signed-off-by:
Andre Przywara <andre.przywara@arm.com> Change-Id: If147bcb49472eb02791498700300926afbcf75ff
-
- Dec 20, 2022
-
-
Bipin Ravi authored
Cortex-A78 erratum 2772019 is a Cat B erratum that applies to all revisions <=r1p2 and is still open. The workaround is to insert a dsb before the isb in the power down sequence. SDEN documentation: https://developer.arm.com/documentation/SDEN1401784/latest Signed-off-by:
Bipin Ravi <bipin.ravi@arm.com> Change-Id: I0362da463eca777aa7a385bcdeb39b8549799f02
-
Bipin Ravi authored
Neoverse V1 erratum 2743093 is a Cat B erratum that applies to all revisions <=r1p2 and is still open. The workaround is to insert a dsb before the isb in the power down sequence. SDEN documentation: https://developer.arm.com/documentation/SDEN1401781/latest Signed-off-by:
Bipin Ravi <bipin.ravi@arm.com> Change-Id: I8ee7c16c14c4fd6ee35d20c855273ecfce0d1b32
-
Olivier Deprez authored
-