12179 Commits

Author SHA1 Message Date
Chris Kay
c2a634b7f8 docs: add link to DCO
The link to the Developer Certificate of Origin was mistakenly removed
in a patch some time ago. This change re-adds it.

Change-Id: Ia8aed055cb449cdf4c1aaeac9b81ca15099e73f5
Signed-off-by: Chris Kay <chris.kay@arm.com>
2022-11-08 17:25:03 +00:00
Lauren Wehrmeister
6bf5c5902b Merge "docs(changelog): add missing scopes for release" into integration 2022-11-08 18:06:39 +01:00
Manish Pandey
c1f46a81e2 Merge changes from topic "npm-dependencies" into integration
* changes:
  docs(changelog): fix invalid context management scope
  docs(commit-style): fix incorrect instructions for adding scopes
  docs(prerequisites): update Node.js prerequisites documentation
2022-11-08 17:20:53 +01:00
Manish Pandey
5988a80767 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
2022-11-08 14:09:33 +00:00
Sandrine Bailleux
7e6cee53d3 build: warn about RSS driver experimental status
Change-Id: I93b7afe17395a94e1ec0ae09457eb2fd320d59a9
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
2022-11-08 15:04:36 +01:00
Jayanth Dodderi Chidanand
0b22e59103 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>
2022-11-08 13:48:18 +00:00
Sandrine Bailleux
2fe661c20f chore(docs): refresh platform ports landing page
- Remove mentions of Arm SGM-775 and MediaTek MT6795 platforms.
   Both platform ports were deleted from TF-A source tree in the
   last release (v2.7).

 - Remove mention of Arm Morello platform, as it now has a dedicated
   documentation page accessible from the table of contents
   (see docs/plat/arm/morello/).

Change-Id: Ie3acdddab81f5589bb36114a8a766200f5b08ad4
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
2022-11-08 13:31:38 +01:00
Manish Pandey
3a284d08d1 Merge "build(bl2): only set BL2_CPPFLAGS for armv8" into integration 2022-11-08 12:48:31 +01:00
Manish Pandey
46cc41d559 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
2022-11-08 10:10:59 +00:00
Manish Pandey
0ae4a3a3f0 fix(debug): decouple "get_el_str()" from backtrace
get_el_str() was implemented under ENABLE_BACKTRACE macro but being
used at generic places too, this causes multiple definition of this
function.
Remove duplicate definition of this function and move it out of
backtrace scope. Also, this patch fixes a small bug where in default
case S-EL1 is returned which ideally should be EL1, as there is no
notion of security state in EL string.

Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Change-Id: Ib186ea03b776e2478eff556065449ebd478c3538
2022-11-08 10:10:19 +00:00
Olivier Deprez
0fe7b9f2bc feat: pass SMCCCv1.3 SVE hint bit to dispatchers
SMCCCv1.3 introduces the SVE hint bit added to the SMC FID (bit 16)
denoting that the world issuing an SMC doesn't expect the callee to
preserve the SVE state (FFR, predicates, Zn vector bits greater than
127). Update the generic SMC handler to copy the SVE hint bit state
to SMC flags and mask out the bit by default for the services called
by the standard dispatcher. It is permitted by the SMCCC standard to
ignore the bit as long as the SVE state is preserved. In any case a
callee must preserve the NEON state (FPCR/FPSR, Vn 128b vectors)
whichever the SVE hint bit state.

Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
Change-Id: I2b163ed83dc311b8f81f96b23c942829ae9fa1b5
2022-11-08 09:28:36 +01:00
Muhammad Arsath K F
85918dfd53 docs(maintainers): update qti maintainer
Add Muhammad Arsath K F in qti maintainer

Signed-off-by: Muhammad Arsath K F <quic_mkf@quicinc.com>
Change-Id: I71e6cc72b3c658730abe5255977f3b93dd7e4563
2022-11-07 21:42:34 -08:00
laurenw-arm
21cd066188 docs(changelog): add missing scopes for release
Add missing scopes from commits for the upcoming release.

Change-Id: I22e38fb0658e42b45591c82aa30e063f7a7edc86
Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com>
2022-11-07 15:19:15 -06:00
Manish Pandey
d435238dc3 fix(bl31): harden check in delegate_async_ea
Following hardening done around ESR_EL3 register usage
 - Panic if exception is anyting other than SError
 - AET bit is only valid if DFSC is 0x11, move DFSC check before AET.

Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Change-Id: Ib15159920f6cad964332fd40f88943aee2bc73b4
2022-11-07 21:04:42 +00:00
Pali Rohár
de89b2828e docs(marvell): fix typo 8K => A8K
It is Armada 80x0, hence A8K (like A7K).

Change-Id: I4888b472204ecd19bfe9b8c89adaa1a99b01dd5f
Signed-off-by: Pali Rohár <pali@kernel.org>
2022-11-07 19:57:01 +01:00
Marc Bonnici
eed15e4310 fix(el3-spmc): check descriptor size for overflow
Ensure that the provided descriptor size used when reserving space
for a memory descriptor does not overflow to prevent scope for
memory corruption. Reported by Matt Oh, Google Android Red Team.

Reported-by: mattoh@google.com
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com>
Change-Id: If06985c4de9a88ff82ce60d10e346da948ed383f
2022-11-07 14:39:39 +01:00
Marc Bonnici
21ed9ea323 fix(el3-spmc): fix location of fragment length check
Ensure that the fragment_length parameter is validated to prevent
a buffer overflow before it is used. Reported by Matt Oh, Google Android Red Team.

Reported-by: mattoh@google.com
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com>
Change-Id: I0323c096ffd988fbd85bbd4ade3abd8427aea977
2022-11-07 14:39:33 +01:00
Marc Bonnici
0dc3518666 fix(el3-spmc): fix detection of overlapping memory regions
The current logic does not cover all scenarios of overlapping
memory regions. Update the implementation to verify non-overlapping
regions instead. Reported by Matt Oh, Google Android Red Team.

Reported-by: mattoh@google.com
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com>
Change-Id: I16c53d081e4455bc0e28399d28a1b27b1a9eb49c
2022-11-07 14:39:26 +01:00
Marc Bonnici
c4adbe6e67 fix(el3-spmc): fix incomplete reclaim validation
Ensure that the full memory transaction descriptor has been transmitted
before a request to reclaim the memory transaction is permitted.
This prevents any potential accesses to the incomplete descriptor.
Reported by Matt Oh, Google Android Red Team.

Reported-by: mattoh@google.com
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com>
Change-Id: I33e993c6b754632051e899ab20edd19b18b6cf65
2022-11-07 14:39:20 +01:00
Diego Sueiro
4202cd51be build(bl2): only set BL2_CPPFLAGS for armv8
If ARM_ARCH_MAJOR is 9 and ARM_ARCH_MINOR is 0 we don't want need to
have "-march=armv8-a+crc" in BL2_CPPFLAGS.

Change-Id: I9ac11522fde00953da40b95eebf82ff8ab2559ba
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
2022-11-07 11:32:24 +00:00
Manish V Badarkhe
54b3fc63e4 Merge "feat(qti): updated soc version for sc7180 and sc7280" into integration 2022-11-04 18:55:26 +01:00
Chris Kay
24687b74a1 docs(changelog): fix invalid context management scope
Change-Id: Ia94b944a023568fc53a812cefffe97a7b3af4266
Signed-off-by: Chris Kay <chris.kay@arm.com>
2022-11-04 17:20:21 +01:00
Chris Kay
832df3cc3b docs(commit-style): fix incorrect instructions for adding scopes
Change-Id: I3ce7abd1c21b084dea6b618c603f71b5bb4c50e8
Signed-off-by: Chris Kay <chris.kay@arm.com>
2022-11-04 17:20:18 +01:00
Chris Kay
10c969c5bb docs(prerequisites): update Node.js prerequisites documentation
This change updates the version of the Node Version Manager suggested by
the prerequisites documentation. The NVM installation command line hint
has been replaced with the snippet provided by NVM's user guide, and the
second line now automatically installs a version of Node.js compatible
with TF-A's repository scripts.

Change-Id: I6ef5e504118238716ceb45a52083450c424c5d20
Signed-off-by: Chris Kay <chris.kay@arm.com>
2022-11-04 17:20:13 +01:00
Olivier Deprez
07217574af Merge changes from topic "hikey960-el3-spmc" into integration
* changes:
  feat(hikey960): read serial number from UFS
  feat(hikey960): add a FF-A logical partition
  feat(hikey960): add memory sharing hooks for SPMC_AT_EL3
  feat(hikey960): add plat-defines for SPMC_AT_EL3
  feat(hikey960): define a datastore for SPMC_AT_EL3
  feat(hikey960): add SP manifest for SPMC_AT_EL3
  feat(hikey960): increase secure workspace to 64MB
  feat(hikey960): upgrade to xlat_tables_v2
2022-11-04 10:47:54 +01:00
Manish Pandey
65f32fe652 Merge "fix(build): fix arch32 build issue for clang" into integration 2022-11-04 10:42:17 +01:00
Bipin Ravi
49273098a5 fix(cpus): workaround for Cortex-A76 erratum 2743102
Cortex-A76 erratum 2743102 is a Cat B erratum that applies to
all revisions <=r4p1 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/SDEN885749/latest

Signed-off-by: Bipin Ravi <bipin.ravi@arm.com>
Change-Id: Ie2cd73bd91417d30b5633d80b2fbee32944bc2de
2022-11-03 14:50:58 -05:00
Bipin Ravi
8ce40503ad fix(cpus): workaround for Neoverse N1 erratum 2743102
Neoverse N1 erratum 2743102 is a Cat B erratum that applies to
all revisions <=r4p1 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/SDEN885747/latest

Signed-off-by: Bipin Ravi <bipin.ravi@arm.com>
Change-Id: I81a8793c1a118764df3ac97b67f5e088f56f6a20
2022-11-03 14:47:04 -05:00
Joanna Farley
5b044227c1 Merge "style(linker_script): fix indentation" into integration 2022-11-03 18:01:20 +01:00
Manish Pandey
4415676d3f Merge "feat(drtm): add DRTM parameters structure version check" into integration 2022-11-03 17:56:35 +01:00
Bharath N
39fdd3d85d feat(qti): updated soc version for sc7180 and sc7280
SMCCC_GET_SOC_VERSION SMC will return soc id to distinguish
different varaints in sc7180 and sc7280

Signed-off-by: Bharath N <quic_bharn@quicinc.com>
Change-Id: I72ea4bdb8193c816ba249c1e0755784c9b9bb7da
2022-11-03 16:29:13 +05:30
Manish V Badarkhe
c503ded2c5 feat(drtm): add DRTM parameters structure version check
Added DRTM parameters structure version check that as per
the current released DRTM specification [1].

Mainly to cater below mentioned in the specification [1]
section 3.12 -
For a given DRTM major version number this structure will
always be extended in a backwards compatible manner.

[1]: https://developer.arm.com/documentation/den0113/a

Change-Id: I9f312c7f9f20152c5d7e40a22b462c7fe8db70bc
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2022-11-02 23:04:01 +01:00
Madhukar Pappireddy
10b292e649 docs(spm): update FF-A manifest binding
Added action in response to Non-secure interrupt attribute to the
partition manifest.

Change-Id: I1d4f85e58b2f1fea7230dffc6a4361f7fd65be15
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
2022-11-02 15:53:24 -05:00
Olivier Deprez
6b2193bd48 Merge changes from topic "el3-spmc" into integration
* changes:
  fix(el3-spmc): error handling in allocation
  fix(el3-spmc): deadlock when relinquishing memory
  fix(el3-spmc): compute full FF-A V1.1 desc size
2022-11-02 19:47:31 +01:00
Manish V Badarkhe
78927ef61a Merge "chore(docs): update supported FVP models doc" into integration 2022-11-02 15:51:49 +01:00
Arthur Cassegrain
c371b83f0c feat(hikey960): read serial number from UFS
Serial number is written into UFS by fastboot
Pass BL2 params to BL31 (serial number)

Change-Id: I9a490db07ca10088da69191a2f2c1621d44a278c
Signed-off-by: vallau01 <valentin.laurent@trustonic.com>
Signed-off-by: Lukas Hanel <lukas.hanel@trustonic.com>
2022-11-02 15:35:03 +01:00
Lukas Hanel
25a357f193 feat(hikey960): add a FF-A logical partition
Required to compile with SPMC_AT_EL3=1
Copied from FVP, sample code for platforms

Change-Id: I7d8a4d8846a328b05cf45a5044802ea3e2f7fb67
Signed-off-by: Lukas Hanel <lukas.hanel@trustonic.com>
2022-11-02 15:35:03 +01:00
vallau01
5f905a2498 feat(hikey960): add memory sharing hooks for SPMC_AT_EL3
These allows a platform to do any System-MMU/IOMMU configuration
in line with FF-A memory sharing.

Change-Id: Id517759198421a32c5d16bf5bb99590275e77736
Signed-off-by: vallau01 <valentin.laurent@trustonic.com>
Signed-off-by: Lukas Hanel <lukas.hanel@trustonic.com>
2022-11-02 15:35:03 +01:00
Lukas Hanel
feebd4c7a8 feat(hikey960): add plat-defines for SPMC_AT_EL3
To use SPMC_AT_EL3, a platform must define a few configuration
options. Copied them from fvp platform to hikey960.

Change-Id: Ifd60d69bf79f2f340fe93fe030ab8c538b3a56e4
Signed-off-by: vallau01 <valentin.laurent@trustonic.com>
Signed-off-by: Lukas Hanel <lukas.hanel@trustonic.com>
2022-11-02 15:35:03 +01:00
Lukas Hanel
e618c621b3 feat(hikey960): define a datastore for SPMC_AT_EL3
Kinibi now has 60MB (instead of 64MB).
Increase XLAT tables for BL31

Change-Id: I6843d26198a7d8bdb812e394e4482b1c35afa4c0
Signed-off-by: vallau01 <valentin.laurent@trustonic.com>
Signed-off-by: Lukas Hanel <lukas.hanel@trustonic.com>
2022-11-02 15:35:03 +01:00
Lukas Hanel
6971642d23 feat(hikey960): add SP manifest for SPMC_AT_EL3
The purpose of this patch is to show silicon partners how to upgrade
existing TF-A port to include a manifest that is required with FF-A.

The manifest values are consumed by TF-A SPMC_AT_EL3 and by the TEE.

Change-Id: Ied81187d6b1cfb72ad2e9020dfc19ad73d80186f
Signed-off-by: Cedric Chan <cedric.chan@trustonic.com>
Signed-off-by: vallau01 <valentin.laurent@trustonic.com>
Signed-off-by: Lukas Hanel <lukas.hanel@trustonic.com>
2022-11-02 15:35:00 +01:00
vallau01
cee8bb3b38 fix(el3-spmc): error handling in allocation
Error check must be done on the previously allocated pointer, not a
random one from the code.

Change-Id: I1c8253eacbe778cc4a9a8d71081fc615fa7e5293
Signed-off-by: Lukas Hanel <lukas.hanel@trustonic.com>
2022-11-02 15:15:59 +01:00
vallau01
ac568b2bcc fix(el3-spmc): deadlock when relinquishing memory
Do not forget to pass via err_unlock_mailbox: label.

Change-Id: Icfb997b1c7cce196003af2c28bffc50dc73e30b4
Signed-off-by: Lukas Hanel <lukas.hanel@trustonic.com>
2022-11-02 15:15:59 +01:00
vallau01
be075c3edf fix(el3-spmc): compute full FF-A V1.1 desc size
This patch fixes an issue in spmc_ffa_fill_desc.

In order to compute the spmc_shm_get_v1_1_descriptor_size,
fragment_length which is a fraction of the descriptor size is used as
desc_size parameter. It has to be replaced with the
full V1.0 descriptor size(obj->desc_filled).

Ran a subset of our tests and they are passing.

Change-Id: Ia4bbc5dabf0b77fa53d923ff609ee48ecd5bf549
Signed-off-by: vallau01 <valentin.laurent@trustonic.com>
Signed-off-by: Lukas Hanel <lukas.hanel@trustonic.com>
2022-11-02 15:15:59 +01:00
Madhukar Pappireddy
b139f8527e Merge "feat(imx8mm): add BL31 PIE support" into integration 2022-11-01 15:16:07 +01:00
Madhukar Pappireddy
c41a196f56 Merge "refactor(imx8mm): introduce BL2_SIZE and BL31_SIZE" into integration 2022-11-01 15:16:03 +01:00
Madhukar Pappireddy
473bed8ffd Merge "refactor(imx8mm): make use of setup_page_tables()" into integration 2022-11-01 15:15:52 +01:00
Madhukar Pappireddy
a213c27ba7 Merge "refactor(imx8mm): cleanup the mmap region settings" into integration 2022-11-01 15:15:45 +01:00
Madhukar Pappireddy
d81fc8e60e Merge "feat(imx8mn): add BL31 PIE support" into integration 2022-11-01 15:15:04 +01:00
Madhukar Pappireddy
89cb9c579e Merge "refactor(imx8mn): introduce BL31_SIZE" into integration 2022-11-01 15:14:58 +01:00