12179 Commits

Author SHA1 Message Date
Manish Pandey
275353dc53 Merge "feat(stm32mp15-fdts): add support for STM32MP157C based DHCOM SoM on PDK2 board" into integration 2022-07-08 14:48:18 +02:00
Johann Neuhauser
eef485abb1 feat(stm32mp15-fdts): add support for STM32MP157C based DHCOM SoM on PDK2 board
This is an SoM in SODIMM-200 format on an evaluation board called
"DHCOM Premium Developer Kit #2" (DHCOM PDK2 for short). The SoM features an
STM32MP157C SoC with 1 GB DDR3, 8 GB eMMC, microSD and 2 MB SPI flash.
The baseboard has multiple UART, USB, SPI, and I2C ports/headers and several
other interfaces that are not important for TF-A.

These dts(i) files are based on DHCOM dt's from Linux 5.16 and U-Boot 2022.01.
The DRAM calibration values are taken from U-Boot 2022.01 and are optimized for
industrial temperature range above 85° C.

TF-A on this board was fully tested with the latest OP-TEE developer setup.

Change-Id: I696c01742954d761fbad312cd1059e3ab01fa93c
Signed-off-by: Johann Neuhauser <jneuhauser@dh-electronics.com>
2022-07-08 13:52:40 +02:00
Manish Pandey
a4a36421df Merge "feat(libfdt): add function to set MAC addresses" into integration 2022-07-08 13:29:58 +02:00
Bipin Ravi
a1a2b6d1e2 Merge "refactor(arm): add debug logs to show the reason behind skipping firmware config loading" into integration 2022-07-07 23:45:38 +02:00
Manish V Badarkhe
6f60e94e0a refactor(arm): add debug logs to show the reason behind skipping firmware config loading
Added debug logs to show the reason behind skipping firmware
configuration loading, and also a few debug strings were corrected.
Additionally, a panic will be triggered if the configuration sanity
fails.

Change-Id: I6bbd67b72801e178a14cbe677a8831b25a907d0c
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2022-07-07 19:07:21 +02:00
Rohit Ner
28645ebd70 fix(ufs): add retries to ufs_read_capacity
This change replaces the polling loop with fixed number of retries,
returns error values and handles them in ufs_enum.

Signed-off-by: Rohit Ner <rohitner@google.com>
Change-Id: Ia769ef26703c7525091e55ff46aaae4637db933c
2022-07-07 07:14:33 -07:00
Daniel Boulby
884d515625 fix(cpus): workaround for Neoverse-N2 erratum 2388450
Neoverse-N2 erratum 2388450 is a cat B erratum that applies to
revision r0p0 and is fixed in r0p1. The workaround is to set
bit[40] of CPUACTLR2_EL1 to disable folding of demand requests into
older prefetches with L2 miss requests outstanding.

SDEN can be found here:
https://developer.arm.com/documentation/SDEN1982442/latest

Change-Id: I6dd949c79cea8dbad322e569aa5de86cf8cf9639
Signed-off-by: Daniel Boulby <daniel.boulby@arm.com>
2022-07-07 15:05:15 +01:00
Manish V Badarkhe
92eba8665a Merge "fix(morello): move BL31 to run from DRAM space" into integration 2022-07-07 15:28:13 +02:00
Manish V Badarkhe
c8d6e581fa Merge changes from topic "sgi-updates-jul-2022" into integration
* changes:
  feat(sgi): bump bl1 rw size
  refactor(sgi): rewrite address space size definitions
2022-07-07 12:38:56 +02:00
Joanna Farley
89666eb302 Merge "feat(zynqmp): resolve the misra 10.1 warnings" into integration 2022-07-07 12:22:19 +02:00
Vijayenthiran Subramaniam
94df8da3ab feat(sgi): bump bl1 rw size
Increase BL1 RW size by 16 KiB to accommodate for future development.

Signed-off-by: Vijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
Change-Id: I21626a97de4a6c98c25b93b9f79e16325c6e4349
2022-07-07 15:40:22 +05:30
Vijayenthiran Subramaniam
1d74b4bbba refactor(sgi): rewrite address space size definitions
The value of the macro CSS_SGI_REMOTE_CHIP_MEM_OFFSET can be different
across all the Neoverse reference design platforms. This value depends
on the number of address bits used per chip. So let all platforms define
CSS_SGI_ADDR_BITS_PER_CHIP which specifies the number of address bits
used per chip.

In addition to this, reuse the definition of CSS_SGI_ADDR_BITS_PER_CHIP
for single chip platforms and CSS_SGI_REMOTE_CHIP_MEM_OFFSET for multi-
chip platforms to determine the maximum address space size. Also,
increase the RD-N2 multi-chip address space per chip from 4TB to 64TB.

Signed-off-by: Vijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
Change-Id: If5e69ec26c2389304c71911729d4addbdf8b2686
2022-07-07 15:40:17 +05:30
Manoj Kumar
05330a49cd fix(morello): move BL31 to run from DRAM space
The EL3 runtime firmware has been running from internal trusted
SRAM space on the Morello platform. Due to unavailability of tag
support for the internal trusted SRAM this becomes a problem if
we enable capability pointers in BL31.

To support capability pointers in BL31 it has to be run from the
main DDR memory space. This patch updates the Morello platform
configuration such that BL31 is loaded and run from DDR space.

Signed-off-by: Manoj Kumar <manoj.kumar3@arm.com>
Change-Id: I16d4d757fb6f58c364f5133236d50fc06845e0b4
2022-07-07 10:53:37 +01:00
Manish Pandey
f9bebcef24 Merge "fix(rme): xlat table setup fails for bl2" into integration 2022-07-07 11:38:37 +02:00
Soby Mathew
e516ba6de5 fix(rme): xlat table setup fails for bl2
The patch 8c980a4 created a 4KB shared region from the 32MB
Realm region for RMM-EL3 communication. But this meant that BL2
needs to map a region of 32MB - 4KB, which required more xlat
tables at runtime. This patch maps the entire 32MB region in BL2
which is more memory efficient in terms of xlat tables needed.

Signed-off-by: Soby Mathew <soby.mathew@arm.com>
Change-Id: I17aa27545293d7b5bbec1c9132ea2c22bf2e7e65
2022-07-07 10:35:50 +02:00
Venkatesh Yadav Abbarapu
bfd7c88190 feat(zynqmp): resolve the misra 10.1 warnings
MISRA Violation: MISRA-C:2012 R.10.1
1) The expression of non-boolean essential type is being interpreted as a
boolean value for the operator.
2) The operand to the operator does not have an essentially unsigned type.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@xilinx.com>
Change-Id: I97bbc056f4fee167742429e144144ba793bf77b3
2022-07-07 10:20:48 +02:00
Itaru Kitayama
74ec90e69b feat(cpus): add a64fx cpu to tf-a
while sbsa maintainers upstream decide whether new cpus types
should be in, add fujitsu a64fx cpu type in advance

Signed-off-by: Itaru Kitayama <itaru.kitayama@fujitsu.com>
Change-Id: I521a62f1233f3fe6e92f040edaff2cc60a1bd874
2022-07-07 07:17:25 +09:00
Manish Pandey
4ee3a974a6 Merge changes from topic "st_fix_stm32mp13" into integration
* changes:
  fix(stm32mp13): correct USART addresses
  feat(stm32mp13): change BL33 memory mapping
2022-07-06 16:08:27 +02:00
Olivier Deprez
303c52a742 Merge "docs(rmmd): add myself as RMMD and RME owner" into integration 2022-07-06 08:47:26 +02:00
Javier Almansa Sobrino
7e06575b77 docs(rmmd): add myself as RMMD and RME owner
Signed-off-by: Javier Almansa Sobrino <javier.almansasobrino@arm.com>
Change-Id: I93f5e622e37f3156bd5326b7d3a3d0d7f73b2c2e
2022-07-05 17:43:34 +01:00
Yann Gautier
de1ab9fe05 fix(stm32mp13): correct USART addresses
On STM32MP13, USART1 and USART2 addresses are 0x4C000000 and 0x4C001000.
Whereas on STM32MP15, the addresses were 0x5C000000 and 0x4000E000.
Use dedicated flags to choose the correct address, that could be use
for early or crash console.

Signed-off-by: Yann Gautier <yann.gautier@foss.st.com>
Change-Id: I98bd97a0ac8b0408a50376801e2a1961b241a3d6
2022-07-05 17:03:24 +02:00
Patrick Delaunay
10f6dc7893 feat(stm32mp13): change BL33 memory mapping
U-Boot is loaded at the beginning of the DDR:
STM32MP_DDR_BASE = 0xC0000000.

This patch remove the need to use the 0x100000 offset, reserved
on STM32MP15 for flashlayout.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Change-Id: I8d0a93f4db411cf59838e635a315c729cccee269
2022-07-05 17:03:19 +02:00
Lionel Debieve
1dab28f99d feat(stm32mp1): retrieve FIP partition by type UUID
Modify the function to retrieve the FIP partition looking
the UUID type define for FIP. If not defined, compatibility
used to find the FIP partition by name.

Signed-off-by: Lionel Debieve <lionel.debieve@foss.st.com>
Change-Id: I76634dea891f51d913a549fb9a077cf7284d5cb2
2022-07-05 14:46:10 +02:00
Lionel Debieve
564f5d4776 feat(guid-partition): allow to find partition by type UUID
Add function to return the partition by type.

Signed-off-by: Lionel Debieve <lionel.debieve@foss.st.com>
Change-Id: I87729dc5e68fbc45a523c894b67595b0079dd8fb
2022-07-05 14:46:02 +02:00
Yann Gautier
8fc6fb5cae refactor(stm32mp1): update PLAT_PARTITION_MAX_ENTRIES
Fix the maximum partition number to a default value. It must
also take care of the extra partition when FWU feature is enabled.

Change-Id: Ib64b1f19f1f0514f7e89d35fc367facd6df54bed
Signed-off-by: Lionel Debieve <lionel.debieve@foss.st.com>
Signed-off-by: Yann Gautier <yann.gautier@st.com>
2022-07-05 14:39:30 +02:00
Manish Pandey
e45ffa18d3 Merge "feat(sme): fall back to SVE if SME is not there" into integration 2022-07-05 14:32:39 +02:00
Soby Mathew
717daadce0 Merge changes from topic "jas/rmm-el3-ifc" into integration
* changes:
  docs(rmmd): document EL3-RMM Interfaces
  feat(rmmd): add support to create a boot manifest
  fix(rme): use RMM shared buffer for attest SMCs
  feat(rmmd): add support for RMM Boot interface
2022-07-05 12:03:49 +02:00
Mark Brown
26a3351eda feat(sme): fall back to SVE if SME is not there
Due to their interrelationship in the architecture the SVE and SME
features in TF-A are mutually exclusive. This means that a single binary
can't be shared between systems with and without SME if the system
without SME does support SVE, SVE will not be initialised so lower ELs
will run into trouble trying to use it. This unusual behaviour for TF-A
which normally gracefully handles situations where features are enabled
but not supported on the current hardware.

Address this by calling the SVE enable and disable functions if SME is
not supported rather than immediately exiting, these perform their own
feature checks so if neither SVE nor SME is supported behaviour is
unchanged.

Signed-off-by: Mark Brown <broonie@kernel.org>
Change-Id: I2c606202fa6c040069f44e29d36b5abb48391874
2022-07-05 11:37:18 +02:00
Javier Almansa Sobrino
6944729086 docs(rmmd): document EL3-RMM Interfaces
This patch documents the RMM-EL3 Boot and runtime interfaces.

Note that for the runtime interfaces, some services are not
documented in this patch and will be added on a later doc patch.

These services are:

* RMMD_GTSI_DELEGATE
* RMMD_GTSI_UNDELEGATE
* RMMD_RMI_REQ_COMPLETE

Signed-off-by: Javier Almansa Sobrino <javier.almansasobrino@arm.com>
Change-Id: I8fcc89d91fe5a334c2f68c6bfd1fd672a8738b5c
2022-07-05 10:41:18 +02:00
Olivier Deprez
896fd4e2ff Merge "feat(spmd): avoid spoofing in FF-A direct request" into integration 2022-07-05 10:21:59 +02:00
Sandrine Bailleux
1ae014ddca Merge "feat(arm): forbid running RME-enlightened BL31 from DRAM" into integration 2022-07-05 10:21:36 +02:00
Javier Almansa Sobrino
1d0ca40e90 feat(rmmd): add support to create a boot manifest
This patch also adds an initial RMM Boot Manifest (v0.1) for fvp
platform.

Signed-off-by: Javier Almansa Sobrino <javier.almansasobrino@arm.com>
Change-Id: I1374f8f9cb207028f1820953cd2a5cf6d6c3b948
2022-07-04 18:46:34 +01:00
Javier Almansa Sobrino
dc65ae4643 fix(rme): use RMM shared buffer for attest SMCs
Use the RMM shared buffer to attestation token and signing key SMCs.

Signed-off-by: Javier Almansa Sobrino <javier.almansasobrino@arm.com>
Change-Id: I313838b26d3d9334fb0fe8cd4b229a326440d2f4
2022-07-04 18:46:01 +01:00
Javier Almansa Sobrino
8c980a4a46 feat(rmmd): add support for RMM Boot interface
This patch adds the infrastructure needed to pass boot arguments from
EL3 to RMM and allocates a shared buffer between both worlds that can
be used, among others, to pass a boot manifest to RMM. The buffer is
composed a single memory page be used by a later EL3 <-> RMM interface
by all CPUs.

The RMM boot manifest is not implemented by this patch.

In addition to that, this patch also enables support for RMM when
RESET_TO_BL31 is enabled.

Signed-off-by: Javier Almansa Sobrino <javier.almansasobrino@arm.com>
Change-Id: I855cd4758ee3843eadd9fb482d70a6d18954d82a
2022-07-04 18:45:58 +01:00
Sandrine Bailleux
1164a59cb1 feat(arm): forbid running RME-enlightened BL31 from DRAM
According to Arm CCA security model [1],

"Root world firmware, including Monitor, is the most trusted CCA
component on application PE. It enforces CCA security guarantees for
not just Realm world, but also for Secure world and for itself.

It is expected to be small enough to feasibly fit in on-chip memory,
and typically needs to be available early in the boot process when
only on-chip memory is available."

For these reasons, it is expected that "monitor code executes entirely
from on-chip memory."

This precludes usage of ARM_BL31_IN_DRAM for RME-enlightened firmware.

[1] Arm DEN0096 A.a, section 7.3 "Use of external memory by CCA".

Change-Id: I752eb45f1e6ffddc7a6f53aadcc92a3e71c1759f
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
2022-07-04 11:59:11 +02:00
Shruti
5519f07cd4 feat(spmd): avoid spoofing in FF-A direct request
Validate that non-secure caller does not spoof
SPMD, SPMC or any secure endpoint ID
in FFA_MSG_SEND_DIRECT_REQ.

Change-Id: I7eadb8886142d94bef107cf485462dfcda828895
Signed-off-by: Shruti <shruti.gupta@arm.com>
2022-07-01 11:54:17 +01:00
Sandrine Bailleux
2d8e80c2a2 Merge changes from topics "binary-format-sp", "od/meas-boot-spmc" into integration
* changes:
  feat(spm): add tpm event log node to spmc manifest
  fix(measured-boot): add SP entries to event_log_metadata
2022-06-30 16:47:49 +02:00
Manish Pandey
0652696243 Merge "feat(stm32mp15): manage OP-TEE shared memory" into integration 2022-06-30 16:29:22 +02:00
Yann Gautier
722ca35ecc feat(stm32mp15): manage OP-TEE shared memory
On STM32MP15, there is currently an OP-TEE shared memory area at the end
of the DDR. But this area will in term be removed. To allow a smooth
transition, a new flag is added (STM32MP15_OPTEE_RSV_SHM). It reflects
the OP-TEE flag: CFG_CORE_RESERVED_SHM. The flag is enabled by default
(no behavior change). It will be set to 0 when OP-TEE is aligned, and
then later be removed.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Change-Id: I91146cd8a26a24be22143c212362294c1e880264
2022-06-30 14:19:45 +02:00
Joanna Farley
57ab749758 Merge changes from topic "xlnx_zynqmp_misra_fix1" into integration
* changes:
  fix(zynqmp): resolve the misra 8.6 warnings
  fix(zynqmp): resolve the misra 4.6 warnings
2022-06-30 00:36:46 +02:00
Madhukar Pappireddy
cb666b39d8 Merge "fix(sptool): fix concurrency issue for SP packages" into integration 2022-06-29 15:27:32 +02:00
Daniel Boulby
0aaa382fe2 fix(sptool): fix concurrency issue for SP packages
Add dependency between rules to generate SP packages and their dtb files
to ensure the dtb files are built before the sptool attempts to generate
the SP package.

Change-Id: I071806f4aa09f39132e3e1990c91d71dc9acd728
Signed-off-by: Daniel Boulby <daniel.boulby@arm.com>
2022-06-28 12:27:20 +01:00
Joanna Farley
e0061a22a5 Merge "docs: add Manish Badarkhe to maintainer list" into integration 2022-06-28 13:23:18 +02:00
Manish Pandey
caca0e57b8 Merge "feat(stm32mp1): save boot auth status and partition info" into integration 2022-06-28 10:53:01 +02:00
Sandrine Bailleux
96f715eb84 Merge "fix(measured-boot): clear the entire digest array of Startup Locality event" into integration 2022-06-28 09:33:44 +02:00
Madhukar Pappireddy
4bbdc3912b Merge changes from topic "HEAD" into integration
* changes:
  feat(synquacer): add FWU Multi Bank Update support
  feat(synquacer): add TBBR support
  feat(synquacer): add BL2 support
  refactor(synquacer): move common source files
2022-06-28 03:43:48 +02:00
Jassi Brar
a19382521c feat(synquacer): add FWU Multi Bank Update support
Add FWU Multi Bank Update support. This reads the platform metadata
and update the FIP base address so that BL2 can load correct BL3X
based on the boot index.

Cc: Sumit Garg <sumit.garg@linaro.org>
Cc: Masahisa Kojima <masahisa.kojima@linaro.org>
Cc: Manish V Badarkhe <manish.badarkhe@arm.com>
Cc: Leonardo Sandoval <leonardo.sandoval@linaro.org>
Change-Id: I5d96972bc4b3b9a12a8157117e53a05da5ce89f6
Signed-off-by: Masami Hiramatsu <masami.hiramatsu@linaro.org>
Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
2022-06-27 13:12:24 -05:00
Jassi Brar
19aaeea00b feat(synquacer): add TBBR support
enable Trusted-Boot for Synquacer platform.

Cc: Sumit Garg <sumit.garg@linaro.org>
Cc: Masahisa Kojima <masahisa.kojima@linaro.org>
Cc: Manish V Badarkhe <manish.badarkhe@arm.com>
Cc: Leonardo Sandoval <leonardo.sandoval@linaro.org>
Change-Id: I2608b4d573d95d55da1fc5544333e0dbf3f763f2
Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
2022-06-27 13:12:24 -05:00
Jassi Brar
48ab390444 feat(synquacer): add BL2 support
Add BL2 support by default. Move the legacy mode behind the
RESET_TO_BL31 define.

Cc: Sumit Garg <sumit.garg@linaro.org>
Cc: Masahisa Kojima <masahisa.kojima@linaro.org>
Cc: Manish V Badarkhe <manish.badarkhe@arm.com>
Cc: Leonardo Sandoval <leonardo.sandoval@linaro.org>
Change-Id: Ic490745a7e8f6114172733428ebd6bd6adfcc1ec
Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
2022-06-27 13:12:24 -05:00
Jassi Brar
3ba82d5ff1 refactor(synquacer): move common source files
Prepare for introduction of BL2 support by moving
reusable files from BL31_SOURCES into PLAT_BL_COMMON_SOURCES

Cc: Sumit Garg <sumit.garg@linaro.org>
Cc: Masahisa Kojima <masahisa.kojima@linaro.org>
Cc: Manish V Badarkhe <manish.badarkhe@arm.com>
Cc: Leonardo Sandoval <leonardo.sandoval@linaro.org>
Change-Id: I21137cdd40d027cfa77f1dec3598ee85d4873581
Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
2022-06-27 13:12:24 -05:00