]> git.baikalelectronics.ru Git - arm-tf.git/log
arm-tf.git
3 years agofeat(synquacer): add TBBR support
Jassi Brar [Thu, 3 Mar 2022 21:24:31 +0000 (15:24 -0600)]
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>
3 years agofeat(synquacer): add BL2 support
Jassi Brar [Thu, 3 Mar 2022 21:24:31 +0000 (15:24 -0600)]
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>
3 years agorefactor(synquacer): move common source files
Jassi Brar [Thu, 3 Mar 2022 21:24:31 +0000 (15:24 -0600)]
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>
3 years agoMerge changes from topic "ns/cpu_info" into integration
Madhukar Pappireddy [Wed, 22 Jun 2022 15:45:45 +0000 (17:45 +0200)]
Merge changes from topic "ns/cpu_info" into integration

* changes:
  feat(plat/arm/sgi): increase memory reserved for bl31 image
  feat(plat/arm/sgi): read isolated cpu mpid list from sds

3 years agoMerge "feat(board/rdn2): add a new 'isolated-cpu-list' property" into integration
Madhukar Pappireddy [Wed, 22 Jun 2022 15:45:40 +0000 (17:45 +0200)]
Merge "feat(board/rdn2): add a new 'isolated-cpu-list' property" into integration

3 years agoMerge changes from topic "st_clk_fixes" into integration
Madhukar Pappireddy [Tue, 21 Jun 2022 15:19:58 +0000 (17:19 +0200)]
Merge changes from topic "st_clk_fixes" into integration

* changes:
  fix(st-clock): correct MISRA C2012 15.6
  fix(st-clock): correctly check ready bit

3 years agofix(st-clock): correct MISRA C2012 15.6
Yann Gautier [Tue, 21 Jun 2022 12:34:13 +0000 (14:34 +0200)]
fix(st-clock): correct MISRA C2012 15.6

Add braces to correct MISRA C2012 15.6 warning:
The body of an iteration-statement or a selection-statement shall be a
compound-statement.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Change-Id: If26f3732d31df11bf389a16298ec9e9d8a4a2279

3 years agofix(st-clock): correctly check ready bit
Yann Gautier [Tue, 21 Jun 2022 13:12:27 +0000 (15:12 +0200)]
fix(st-clock): correctly check ready bit

The function clk_oscillator_wait_ready() was wrongly checking the set
bit and not the ready bit. Correct that by using osc_data->gate_rdy_id
when calling _clk_stm32_gate_wait_ready().

Signed-off-by: Yann Gautier <yann.gautier@foss.st.com>
Change-Id: Ida58f14d7f0f326b580ae24b98d6b9f592d2d711

3 years agofeat(plat/arm/sgi): increase memory reserved for bl31 image
Nishant Sharma [Thu, 31 Mar 2022 16:16:21 +0000 (17:16 +0100)]
feat(plat/arm/sgi): increase memory reserved for bl31 image

Increase the size of bl31 image by 52K to accomodate increased size of
xlat table.

Signed-off-by: Nishant Sharma <nishant.sharma@arm.com>
Change-Id: Ic3a8d8be1104adf48d22aa829e2197f710b6b666

3 years agofeat(plat/arm/sgi): read isolated cpu mpid list from sds
Nishant Sharma [Tue, 30 Nov 2021 09:31:48 +0000 (09:31 +0000)]
feat(plat/arm/sgi): read isolated cpu mpid list from sds

Add support to read the list of isolated CPUs from SDS and publish this
list via the non-trusted firmware configuration file for the next stages
of boot software to use.

Isolated CPUs are those that are not to be used on the platform for
various reasons. The isolated CPU list is an array of MPID values of the
CPUs that have to be isolated.

Signed-off-by: Nishant Sharma <nishant.sharma@arm.com>
Change-Id: I4313cf025f4c9e9feffebca2d35b259f5bafce69

3 years agoMerge changes from topic "mb/gic600-errata" into integration
Manish Pandey [Tue, 21 Jun 2022 12:11:47 +0000 (14:11 +0200)]
Merge changes from topic "mb/gic600-errata" into integration

* changes:
  refactor(arm): update BL2 base address
  refactor(nxp): use DPG0 mask from Arm GICv3 header
  fix(gic600): implement workaround to forward highest priority interrupt

3 years agofeat(board/rdn2): add a new 'isolated-cpu-list' property
Nishant Sharma [Tue, 30 Nov 2021 09:38:46 +0000 (09:38 +0000)]
feat(board/rdn2): add a new 'isolated-cpu-list' property

Add a new property named 'isolated-cpu-list' to list the CPUs that are
to be isolated and not used by the platform. The data represented by
this property is formatted as below.

  strutct isolated_cpu_mpid_list {
          uint64_t count;
          uint64_t mpid_list[MAX Number of PE];
  }

Also, the property is pre-initialized to 0 to reserve space for the
property in the dtb. The data for this property is read from SDS and
updated during boot. The number of entries in this list is equal to the
maximum number of PEs present on the platform.

Signed-off-by: Nishant Sharma <nishant.sharma@arm.com>
Change-Id: I4119f899a273ccbf8259e0d711d3a25501c7ec64

3 years agoMerge changes from topic "uart_segregation_v2" into integration
Manish Pandey [Tue, 21 Jun 2022 10:42:08 +0000 (12:42 +0200)]
Merge changes from topic "uart_segregation_v2" into integration

* changes:
  feat(sgi): add page table translation entry for secure uart
  feat(sgi): route TF-A logs via secure uart
  feat(sgi): deviate from arm css common uart related definitions

3 years agofeat(sgi): add page table translation entry for secure uart
Rohit Mathew [Mon, 13 Dec 2021 15:33:04 +0000 (15:33 +0000)]
feat(sgi): add page table translation entry for secure uart

Add page table translation entry for secure uart so that logs from
secure partition can be routed via the same.

Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: I3416d114bcee13824a7d0861ee54fb799e154897

3 years agofeat(sgi): route TF-A logs via secure uart
Rohit Mathew [Mon, 13 Dec 2021 15:40:25 +0000 (15:40 +0000)]
feat(sgi): route TF-A logs via secure uart

Route the boot, runtime and crash stage logs via secure UART port
instead of the existing use of non-secure UART. This aligns with the
security state the PE is in when logs are put out. In addition to this,
this allows consolidation of the UART related macros across all the
variants of the Neoverse reference design platforms.

Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: I417f5d16457b602c94da4c74b4d88bba03da7462

3 years agofeat(sgi): deviate from arm css common uart related definitions
Rohit Mathew [Mon, 13 Dec 2021 13:50:15 +0000 (13:50 +0000)]
feat(sgi): deviate from arm css common uart related definitions

The Neoverse reference design platforms will migrate to use different
set of secure and non-secure UART ports. This implies that the board
specific macros defined in the common Arm platform code will no longer
be usable for Neoverse reference design platforms.

In preparation for migrating to a different set of UART ports, add a
Neoverse reference design platform specific copy of the board
definitions. The value of these definitions will be changed in
subsequent patches.

Signed-off-by: Rohit Mathew <rohit.mathew@arm.com>
Change-Id: I1ab17a3f02c8180b63be24e9266f7129beee819f

3 years agoMerge "docs(security): update security advisory for CVE-2022-23960" into integration
Manish Pandey [Fri, 17 Jun 2022 09:10:35 +0000 (11:10 +0200)]
Merge "docs(security): update security advisory for CVE-2022-23960" into integration

3 years agodocs(security): update security advisory for CVE-2022-23960
Bipin Ravi [Thu, 16 Jun 2022 21:32:22 +0000 (16:32 -0500)]
docs(security): update security advisory for CVE-2022-23960

Update advisory document following Spectre-BHB mitigation support for
additional CPUs.

Signed-off-by: Bipin Ravi <bipin.ravi@arm.com>
Change-Id: I4492397f18882f514beff4da06afe973acecf1f0

3 years agoMerge "fix(errata): workaround for Neoverse-V1 erratum 2372203" into integration
Madhukar Pappireddy [Thu, 16 Jun 2022 21:30:22 +0000 (23:30 +0200)]
Merge "fix(errata): workaround for Neoverse-V1 erratum 2372203" into integration

3 years agoMerge "fix(errata): workaround for Cortex-A77 erratum 2356587" into integration
Madhukar Pappireddy [Thu, 16 Jun 2022 20:06:40 +0000 (22:06 +0200)]
Merge "fix(errata): workaround for Cortex-A77 erratum 2356587" into integration

3 years agofix(errata): workaround for Cortex-A77 erratum 2356587
Bipin Ravi [Wed, 8 Jun 2022 20:27:00 +0000 (15:27 -0500)]
fix(errata): workaround for Cortex-A77 erratum 2356587

Cortex-A77 erratum 2356587 is a cat B erratum that applies to revisions
r0p0 - r1p1 and is still open. The workaround is to set bit[0] of
CPUACTLR2_EL1 to force PLDW/PFRM ST to behave like PLD/PRFM LD and not
cause invalidations to other PE caches.

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

Signed-off-by: Bipin Ravi <bipin.ravi@arm.com>
Change-Id: I243cfd587bca06ffd2a7be5bce28f8d2c5e68230

3 years agofix(errata): workaround for Neoverse-V1 erratum 2372203
Bipin Ravi [Tue, 14 Jun 2022 22:09:23 +0000 (17:09 -0500)]
fix(errata): workaround for Neoverse-V1 erratum 2372203

Neoverse-V1 erratum 2372203 is a cat B erratum that applies to revisions
r0p0 - r1p1 and is still open. 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/SDEN1401781/latest

Signed-off-by: Bipin Ravi <bipin.ravi@arm.com>
Change-Id: Ice8c2e5a0152972a35219c8245a2e07e646d0557

3 years agorefactor(arm): update BL2 base address
Manish V Badarkhe [Mon, 13 Jun 2022 17:23:01 +0000 (18:23 +0100)]
refactor(arm): update BL2 base address

BL2 base address updated to provide enough space for BL31 in
Trusted SRAM when building with BL2_AT_EL3 and ENABLE_PIE options.

Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
Change-Id: Ieaba00d841648add855feb99b7923a4b0cccfb08

3 years agorefactor(nxp): use DPG0 mask from Arm GICv3 header
Manish V Badarkhe [Mon, 6 Jun 2022 11:08:35 +0000 (12:08 +0100)]
refactor(nxp): use DPG0 mask from Arm GICv3 header

Removed GICR_CTLR_DPG0_MASK definition from platform GIC header file
as Arm GICv3 header file added its definition.

Change-Id: Ieec43aeef96b9b6c8a7f955a8d145be6e4b183c5
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
3 years agofix(gic600): implement workaround to forward highest priority interrupt
Manish V Badarkhe [Mon, 9 May 2022 20:55:19 +0000 (21:55 +0100)]
fix(gic600): implement workaround to forward highest priority interrupt

If the interrupt being targeted is released from the CPU before the
CLEAR command is sent to the CPU then a subsequent SET command may not
be delivered in a finite time. To workaround this, issue an unblocking
event by toggling GICR_CTLR.DPG* bits after clearing the cpu group
enable (EnableGrp* bits of GIC CPU interface register)
This fix is implemented as per the errata 2384374-part 2 workaround
mentioned here:
https://developer.arm.com/documentation/sden892601/latest/

Change-Id: I13926ceeb7740fa4c05cc5b43170e7ce49598f70
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
3 years agoMerge "build(changelog): add stm32mp13 and stm32mp15 scopes" into integration
Madhukar Pappireddy [Wed, 15 Jun 2022 15:15:47 +0000 (17:15 +0200)]
Merge "build(changelog): add stm32mp13 and stm32mp15 scopes" into integration

3 years agoMerge "fix(errata): workaround for Neoverse-V1 erratum 2294912" into integration
Madhukar Pappireddy [Mon, 13 Jun 2022 20:55:09 +0000 (22:55 +0200)]
Merge "fix(errata): workaround for Neoverse-V1 erratum 2294912" into integration

3 years agofix(errata): workaround for Neoverse-V1 erratum 2294912
Bipin Ravi [Wed, 8 Jun 2022 21:28:46 +0000 (16:28 -0500)]
fix(errata): workaround for Neoverse-V1 erratum 2294912

Neoverse-V1 erratum 2294912 is a cat B erratum that applies to revisions
r0p0 - r1p1 and is still open. The workaround is to set bit[0] of
CPUACTLR2_EL1 to force PLDW/PFRM ST to behave like PLD/PRFM LD and not
cause invalidations to other PE caches.

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

Signed-off-by: Bipin Ravi <bipin.ravi@arm.com>
Change-Id: Ia7afb4c42fe66b36fdf38a7d4281a0d168f68354

3 years agoMerge "feat(zynqmp): add support for xck24 silicon" into integration
Madhukar Pappireddy [Mon, 13 Jun 2022 18:12:31 +0000 (20:12 +0200)]
Merge "feat(zynqmp): add support for xck24 silicon" into integration

3 years agoMerge "refactor(context mgmt): refactor EL2 context save and restore functions" into...
Manish Pandey [Mon, 13 Jun 2022 12:18:57 +0000 (14:18 +0200)]
Merge "refactor(context mgmt): refactor EL2 context save and restore functions" into integration

3 years agoMerge changes from topic "jc/detect_feat" into integration
Manish Pandey [Fri, 10 Jun 2022 09:57:12 +0000 (11:57 +0200)]
Merge changes from topic "jc/detect_feat" into integration

* changes:
  feat(trbe): add trbe under feature detection mechanism
  feat(brbe): add brbe under feature detection mechanism

3 years agoMerge "fix(mmc): remove broken, unsecure, unused eMMC RPMB handling" into integration
Madhukar Pappireddy [Thu, 9 Jun 2022 14:23:04 +0000 (16:23 +0200)]
Merge "fix(mmc): remove broken, unsecure, unused eMMC RPMB handling" into integration

3 years agorefactor(context mgmt): refactor EL2 context save and restore functions
Zelalem Aweke [Mon, 4 Apr 2022 22:42:48 +0000 (17:42 -0500)]
refactor(context mgmt): refactor EL2 context save and restore functions

This patch splits the el2_sysregs_context_save/restore functions
into multiple functions based on features. This will allow us to
selectively save and restore EL2 context registers based on
features enabled for a particular configuration.

For now feature build flags are used to decide which registers
to save and restore. The long term plan is to dynamically check
for features that are enabled and then save/restore registers
accordingly. Splitting el2_sysregs_context_save/restore functions
into smaller assembly functions makes that task easier. For more
information please take a look at:
https://trustedfirmware-a.readthedocs.io/en/latest/design_documents/context_mgmt_rework.html

Signed-off-by: Zelalem Aweke <zelalem.aweke@arm.com>
Change-Id: I1819a9de8b70fa35c8f45568908025f790c4808c

3 years agoMerge "fix(rme/fid): refactor RME fid macros" into integration
Soby Mathew [Wed, 8 Jun 2022 11:37:33 +0000 (13:37 +0200)]
Merge "fix(rme/fid): refactor RME fid macros" into integration

3 years agofix(mmc): remove broken, unsecure, unused eMMC RPMB handling
Ahmad Fatoum [Wed, 8 Jun 2022 06:42:24 +0000 (08:42 +0200)]
fix(mmc): remove broken, unsecure, unused eMMC RPMB handling

Replay-protected memory block access is enabled by writing 0x3
to PARTITION_ACCESS (bit[2:0]). Instead the driver is using the
first boot partition, which does not provide any playback protection.
Additionally, it unconditionally activates the first boot partition,
potentially breaking boot for SoCs that consult boot partitions,
require boot ack or downgrading to an old bootloader if the first
partition happens to be the inactive one.

Also, neither enabling or disabling the RPMB observes the
PARTITION_SWITCH_TIME. As there are no in-tree users for these
functions, drop them for now until a properly functional implementation
is added. That one will likely share most code with the existing boot
partition switch, which doesn't suffer from the described issues.

Change-Id: Ia4a3f738f60a0dbcc33782f868cfbb1e1c5b664a
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
3 years agoMerge changes from topic "stm32mp-emmc-boot-fip" into integration
Madhukar Pappireddy [Tue, 7 Jun 2022 22:14:59 +0000 (00:14 +0200)]
Merge changes from topic "stm32mp-emmc-boot-fip" into integration

* changes:
  feat(stm32mp1): extend STM32MP_EMMC_BOOT support to FIP format
  refactor(mmc): replace magic value with new PART_CFG_BOOT_PARTITION_NO_ACCESS
  refactor(mmc): export user/boot partition switch functions

3 years agoMerge changes from topic "st-pinctrl" into integration
Madhukar Pappireddy [Tue, 7 Jun 2022 14:47:12 +0000 (16:47 +0200)]
Merge changes from topic "st-pinctrl" into integration

* changes:
  feat(stm32mp1-fdts): change pin-controller to pinctrl
  feat(st): search pinctrl node by compatible

3 years agofeat(stm32mp1-fdts): change pin-controller to pinctrl
Yann Gautier [Fri, 11 Mar 2022 13:23:43 +0000 (14:23 +0100)]
feat(stm32mp1-fdts): change pin-controller to pinctrl

Due to commit updating kernel yaml file [1], we need to align TF-A DT
files to what is done in kernel.

[1] c09acbc499e8 ("dt-bindings: pinctrl: use pinctrl.yaml")

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Change-Id: Id717162e42d3959339d6c01883e87a9d4399f5d9

3 years agofeat(st): search pinctrl node by compatible
Yann Gautier [Fri, 11 Mar 2022 13:18:13 +0000 (14:18 +0100)]
feat(st): search pinctrl node by compatible

Instead of searching pinctrl node with its name, search with its
compatible. This will be necessary before pin-controller name changes
to pinctrl due to kernel yaml changes.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Change-Id: I00590414fa65e193c6a72941a372bcecac673f60

3 years agoMerge "fix(changelog): fix the broken link to commitlintrc.js" into integration
Manish Pandey [Tue, 7 Jun 2022 12:05:42 +0000 (14:05 +0200)]
Merge "fix(changelog): fix the broken link to commitlintrc.js" into integration

3 years agofix(changelog): fix the broken link to commitlintrc.js
Jayanth Dodderi Chidanand [Tue, 7 Jun 2022 11:01:41 +0000 (12:01 +0100)]
fix(changelog): fix the broken link to commitlintrc.js

The link to commitlintrc.js file in the v2.7 changelog
is updated.

Change-Id: I24ee736180d8df72b2d831e110a9a3a80a6d9862
Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
3 years agofeat(zynqmp): add support for xck24 silicon
Venkatesh Yadav Abbarapu [Tue, 17 May 2022 04:09:30 +0000 (09:39 +0530)]
feat(zynqmp): add support for xck24 silicon

Add support for new xck24 device.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@xilinx.com>
Change-Id: I913a34d5a48ea665aaa4348f573fc59566dd5a9b

3 years agofix(rme/fid): refactor RME fid macros
Subhasish Ghosh [Thu, 12 May 2022 11:22:17 +0000 (12:22 +0100)]
fix(rme/fid): refactor RME fid macros

Refactored RME FID macros to simplify usage.

Signed-off-by: Subhasish Ghosh <subhasish.ghosh@arm.com>
Change-Id: I68f51f43d6c100d90069577412c2e495fe7b7e40

3 years agoMerge "feat(imx8mq): add 100us delay after USB OTG SRC bit 0 clear" into integration
Madhukar Pappireddy [Mon, 6 Jun 2022 14:18:20 +0000 (16:18 +0200)]
Merge "feat(imx8mq): add 100us delay after USB OTG SRC bit 0 clear" into integration

3 years agoMerge "fix(imx8mq): correct architected counter frequency" into integration
Madhukar Pappireddy [Mon, 6 Jun 2022 14:17:00 +0000 (16:17 +0200)]
Merge "fix(imx8mq): correct architected counter frequency" into integration

3 years agofeat(trbe): add trbe under feature detection mechanism
Jayanth Dodderi Chidanand [Thu, 19 May 2022 13:08:28 +0000 (14:08 +0100)]
feat(trbe): add trbe under feature detection mechanism

This change adds "FEAT_TRBE" to be part of feature detection mechanism.

Previously feature enablement flags were of boolean type, containing
either 0 or 1. With the introduction of feature detection procedure
we now support three states for feature enablement build flags(0 to 2).

Accordingly, "ENABLE_TRBE_FOR_NS" flag is now modified from boolean
to numeric type to align with the feature detection.

Change-Id: I53d3bc8dc2f6eac63feef22dfd627f3a48480afc
Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
3 years agofeat(brbe): add brbe under feature detection mechanism
Jayanth Dodderi Chidanand [Mon, 9 May 2022 11:33:03 +0000 (12:33 +0100)]
feat(brbe): add brbe under feature detection mechanism

This change adds "FEAT_BRBE" to be part of feature detection mechanism.

Previously feature enablement flags were of boolean type, possessing
either 0 or 1. With the introduction of feature detection procedure
we now support three states for feature enablement build flags(0 to 2).

Accordingly, "ENABLE_BRBE_FOR_NS" flag is now modified from boolean
to numeric type to align with the feature detection.

Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
Change-Id: I1eb52863b4afb10b808e2f0b6584a8a210d0f38c

3 years agoMerge "fix(plat/zynqmp): fix coverity scan warnings" into integration
Madhukar Pappireddy [Fri, 3 Jun 2022 17:44:00 +0000 (19:44 +0200)]
Merge "fix(plat/zynqmp): fix coverity scan warnings" into integration

3 years agoMerge "feat(plat/xilinx/zynqmp): optimization on pinctrl_functions" into integration
Madhukar Pappireddy [Thu, 2 Jun 2022 17:33:24 +0000 (19:33 +0200)]
Merge "feat(plat/xilinx/zynqmp): optimization on pinctrl_functions" into integration

3 years agoMerge changes Idafbe02d,Ib01eb5ce into integration
Madhukar Pappireddy [Thu, 2 Jun 2022 15:39:57 +0000 (17:39 +0200)]
Merge changes Idafbe02d,Ib01eb5ce into integration

* changes:
  fix(scmi-msg): base: fix protocol list querying
  fix(scmi-msg): base: fix protocol list response size

3 years agofeat(stm32mp1): extend STM32MP_EMMC_BOOT support to FIP format
Ahmad Fatoum [Thu, 19 May 2022 05:42:33 +0000 (07:42 +0200)]
feat(stm32mp1): extend STM32MP_EMMC_BOOT support to FIP format

STM32MP_EMMC_BOOT allowed placing SSBL into the eMMC boot
partition along with FSBL. This allows atomic update of both
FSBL and SSBL at the same time. Previously, this was only
possible for the FSBL, as the eMMC layout expected by TF-A
had a single SSBL GPT partition in the eMMC user area.
TEE binaries remained in dedicated GPT partitions whether
STM32MP_EMMC_BOOT was on or off.

The new FIP format collects SSBL and TEE partitions into
a single binary placed into a GPT partition.
Extend STM32MP_EMMC_BOOT, so eMMC-booted TF-A first uses
a FIP image placed at offset 256K into the active eMMC boot
partition. If no FIP magic is detected at that offset or if
STM32MP_EMMC_BOOT is disabled, the GPT on the eMMC user area
will be consulted as before.

This allows power fail-safe update of all firmware using the
built-in eMMC boot selector mechanism, provided it fits into
the boot partition - SZ_256K. SZ_256K was chosen because it's
the same offset used with the legacy format and because it's
the size of the on-chip SRAM, where the STM32MP15x BootROM
loads TF-A into. As such, TF-A may not exceed this size limit
for existing SoCs.

Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Change-Id: Id7bec45652b3a289ca632d38d4b51316c5efdf8d

3 years agorefactor(mmc): replace magic value with new PART_CFG_BOOT_PARTITION_NO_ACCESS
Ahmad Fatoum [Tue, 31 May 2022 08:03:04 +0000 (10:03 +0200)]
refactor(mmc): replace magic value with new PART_CFG_BOOT_PARTITION_NO_ACCESS

Disabling access to the boot partition reverts the MMC to read from the
user area. Add a macro to make this clearer.

Suggested-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Change-Id: I34a5a987980bb4690d08d255f465b11a4697ed5a

3 years agorefactor(mmc): export user/boot partition switch functions
Ahmad Fatoum [Mon, 23 May 2022 15:06:37 +0000 (17:06 +0200)]
refactor(mmc): export user/boot partition switch functions

At the moment, mmc_boot_part_read_blocks() takes care to switch
to the boot partition before transfer and back afterwards.
This can introduce large overhead when reading small chunks.
Give consumers of the API more control by exporting
mmc_part_switch_current_boot() and mmc_part_switch_user().

Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Change-Id: Ib641f188071bb8e0196f4af495ec9ad4a292284f

3 years agoMerge "fix(lib/psa): fix Null pointer dereference error" into integration
Madhukar Pappireddy [Thu, 2 Jun 2022 15:26:53 +0000 (17:26 +0200)]
Merge "fix(lib/psa): fix Null pointer dereference error" into integration

3 years agoMerge "fix(stm32mp1): fdts: stm32mp1: align DDR regulators with new driver" into...
Madhukar Pappireddy [Thu, 2 Jun 2022 15:12:24 +0000 (17:12 +0200)]
Merge "fix(stm32mp1): fdts: stm32mp1: align DDR regulators with new driver" into integration

3 years agobuild(changelog): add stm32mp13 and stm32mp15 scopes
Yann Gautier [Wed, 1 Jun 2022 16:17:43 +0000 (18:17 +0200)]
build(changelog): add stm32mp13 and stm32mp15 scopes

The STM32MP1 series includes STM32MP13 and STM32MP15. As some features
may be dedicated to one SoC variant, add the 2 entries in the scopes
list.
While at it, correct the title for STM32MP1.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Change-Id: I521d0e1dfdda0638ab9970c93821cf08efbd183a

3 years agofix(stm32mp1): fdts: stm32mp1: align DDR regulators with new driver
Ahmad Fatoum [Thu, 2 Jun 2022 04:28:31 +0000 (06:28 +0200)]
fix(stm32mp1): fdts: stm32mp1: align DDR regulators with new driver

With recent changes, TF-A now panics on MC-1, Avenger96 and Odyssey:

  NOTICE:  CPU: STM32MP157C?? Rev.B
  NOTICE:  Model: Linux Automation MC-1 board
  ERROR:   regul ldo3: max value 750 is invalid
  PANIC at PC : 0x2ffeebb7

as the driver takes great offense at the content of the device
tree. The parts in question were copy-pasted from ST DTs, but
those ST DTs were fixed by commit 67d95409baae
("refactor(stm32mp1-fdts): update regulator description").

Fix the breakage by transplanting the same changes into all
remaining STM32MP1 DTs.

Change was boot-tested on MC-1, but only build tested for the
other two.

Fixes: bba9fdee589f ("feat(stm32mp1): add regulator framework compilation")
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Change-Id: I143d0091625f62c313b3b71449c9ad99583d01c8

3 years agoMerge "docs(changelog): changelog for v2.7 release" into integration
Joanna Farley [Wed, 1 Jun 2022 15:02:46 +0000 (17:02 +0200)]
Merge "docs(changelog): changelog for v2.7 release" into integration

3 years agodocs(changelog): changelog for v2.7 release
Jayanth Dodderi Chidanand [Thu, 19 May 2022 10:03:07 +0000 (11:03 +0100)]
docs(changelog): changelog for v2.7 release

Change-Id: I573e5eb3c7fad097892292c8a967dc02d72d12e6
Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
3 years agoMerge changes from topic "sb/threat-model" into integration
Joanna Farley [Wed, 1 Jun 2022 12:37:30 +0000 (14:37 +0200)]
Merge changes from topic "sb/threat-model" into integration

* changes:
  docs(threat-model): broaden the scope of threat #05
  docs(threat-model): emphasize whether mitigations are implemented

3 years agoMerge changes from topic "od/spm-doc-update" into integration
Joanna Farley [Wed, 1 Jun 2022 12:29:45 +0000 (14:29 +0200)]
Merge changes from topic "od/spm-doc-update" into integration

* changes:
  docs(spm): refresh FF-A SPM design doc
  docs(spm): update FF-A manifest binding

3 years agodocs(spm): refresh FF-A SPM design doc
Olivier Deprez [Thu, 28 Apr 2022 16:18:36 +0000 (18:18 +0200)]
docs(spm): refresh FF-A SPM design doc

- Move manifest binding doc as a dedicated SPM doc section.
- Highlight introduction of an EL3 FF-A SPM solution.
- Refresh TF-A build options.
- Refresh PE MMU configuration section.
- Add arch extensions for security hardening section.
- Minor corrections, typos fixes and rephrasing.

Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
Change-Id: I2db06c140ef5871a812ce00a4398c663d5433bb4

3 years agodocs(spm): update FF-A manifest binding
Olivier Deprez [Thu, 12 May 2022 16:17:05 +0000 (18:17 +0200)]
docs(spm): update FF-A manifest binding

- Add security state attribute to memory and device regions.
- Rename device region reg attribution to base-address aligned with
  memory regions.
- Add pages-count field to device regions.
- Refresh interrupt attributes description in device regions.

Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
Change-Id: I901f48d410edb8b10f65bb35398b80f18105e427

3 years agodocs(threat-model): broaden the scope of threat #05
Sandrine Bailleux [Mon, 16 May 2022 11:57:38 +0000 (13:57 +0200)]
docs(threat-model): broaden the scope of threat #05

 - Cite crash reports as an example of sensitive
   information. Previously, it might have sounded like this was the
   focus of the threat.

 - Warn about logging high-precision timing information, as well as
   conditionally logging (potentially nonsensitive) information
   depending on sensitive information.

Change-Id: I33232dcb1e4b5c81efd4cd621b24ab5ac7b58685
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
3 years agodocs(threat-model): emphasize whether mitigations are implemented
Sandrine Bailleux [Fri, 13 May 2022 10:39:56 +0000 (12:39 +0200)]
docs(threat-model): emphasize whether mitigations are implemented

For each threat, we now separate:
 - how to mitigate against it;
 - whether TF-A currently implements these mitigations.

A new "Mitigations implemented?" box is added to each threat to
provide the implementation status. For threats that are partially
mitigated from platform code, the original text is improved to make
these expectations clearer. The hope is that platform integrators will
have an easier time identifying what they need to carefully implement
in order to follow the security recommendations from the threat model.

Change-Id: I8473d75946daf6c91a0e15e61758c183603e195b
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
3 years agoMerge changes from topic "ja/boot_protocol" into integration
Olivier Deprez [Mon, 30 May 2022 14:50:10 +0000 (16:50 +0200)]
Merge changes from topic "ja/boot_protocol" into integration

* changes:
  docs(spm): update ff-a boot protocol documentation
  docs(maintainers): add code owner to sptool

3 years agoMerge "fix(include/aarch64): fix encodings for MPAMVPM* registers" into integration
Manish Pandey [Thu, 26 May 2022 09:30:34 +0000 (11:30 +0200)]
Merge "fix(include/aarch64): fix encodings for MPAMVPM* registers" into integration

3 years agodocs(spm): update ff-a boot protocol documentation
J-Alves [Tue, 24 May 2022 11:13:08 +0000 (12:13 +0100)]
docs(spm): update ff-a boot protocol documentation

Updated following sections to document implementation of the FF-A boot
information protocol:
- Describing secure partitions.
- Secure Partition Packages.
- Passing boot data to the SP.
Also updated description of the manifest field 'gp-register-num'.

Signed-off-by: J-Alves <joao.alves@arm.com>
Change-Id: I5c856437b60cdf05566dd636a01207c9b9f42e61

3 years agoMerge "fix(cpus/denver): use CPU_NO_EXTRA3_FUNC for all variants" into integration
Varun Wadekar [Wed, 25 May 2022 11:52:40 +0000 (13:52 +0200)]
Merge "fix(cpus/denver): use CPU_NO_EXTRA3_FUNC for all variants" into integration

3 years agofix(include/aarch64): fix encodings for MPAMVPM* registers
Varun Wadekar [Wed, 25 May 2022 11:45:22 +0000 (12:45 +0100)]
fix(include/aarch64): fix encodings for MPAMVPM* registers

This patch fixes the following encodings in the System register
encoding space for the MPAM registers. The encodings now match
with the ArmĀ® Architecture Reference Manual Supplement for MPAM.

* MPAMVPM0_EL2
* MPAMVPM1_EL2
* MPAMVPM2_EL2
* MPAMVPM3_EL2
* MPAMVPM4_EL2
* MPAMVPM5_EL2
* MPAMVPM6_EL2
* MPAMVPM7_EL2
* MPAMVPMV_EL2

Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
Change-Id: Ib339412de6a9c945a3307f3f347fe7b2efabdc18

3 years agofeat(imx8mq): add 100us delay after USB OTG SRC bit 0 clear
Jacky Bai [Sun, 19 Jan 2020 07:05:12 +0000 (15:05 +0800)]
feat(imx8mq): add 100us delay after USB OTG SRC bit 0 clear

After the SRC bit clear, we must wait for a while to make sure
the operation is finished. And don't enable all the PU domains
by default.

for USB OTG, the limitations are:
1. before system clock configuration. ipg clock runs at 12.5MHz.
delay time should longer than 82us.

2. after system clock configuration. ipg clock runs at 66.5MHz.
delay time should longer than 15.3us.

so add udelay 100 to safely clear the SRC bit 0.

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Change-Id: I52e8e7739fdaaf86442bcd148e768b6af38bcdb7

3 years agodocs(maintainers): add code owner to sptool
J-Alves [Tue, 24 May 2022 10:04:43 +0000 (11:04 +0100)]
docs(maintainers): add code owner to sptool

Add Joao Alves as code owner to the sptool.

Signed-off-by: J-Alves <joao.alves@arm.com>
Change-Id: I9e44e322ba1cce62308bf16c4a6253f7b0117fe0

3 years agofix(cpus/denver): use CPU_NO_EXTRA3_FUNC for all variants
Varun Wadekar [Tue, 24 May 2022 14:00:06 +0000 (15:00 +0100)]
fix(cpus/denver): use CPU_NO_EXTRA3_FUNC for all variants

Denver CPUs use the same workaround for CVE-2017-5715 and CVE-2022-23960
vulnerabilities. The workaround for CVE-2017-5715 is always enabled, so
all Denver variants use CPU_NO_EXTRA3_FUNC as a placeholder for the
mitigation for CVE-2022-23960. This patch implements the approach.

Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
Change-Id: I0863541ce19b6b3b6d1b2f901d3fb6a77f315189

3 years agoMerge "fix(build): use DWARF 4 when building debug" into integration
Manish Pandey [Tue, 24 May 2022 13:30:27 +0000 (15:30 +0200)]
Merge "fix(build): use DWARF 4 when building debug" into integration

3 years agoMerge changes from topic "ffa_el3_spmc" into integration
Olivier Deprez [Tue, 24 May 2022 13:04:16 +0000 (15:04 +0200)]
Merge changes from topic "ffa_el3_spmc" into integration

* changes:
  fix(spmc): fix incorrect FF-A version usage
  fix(spmc): fix FF-A memory transaction validation

3 years agofix(imx8mq): correct architected counter frequency
Lucas Stach [Fri, 20 May 2022 10:37:39 +0000 (12:37 +0200)]
fix(imx8mq): correct architected counter frequency

Different from other i.MX SoCs, which typically use a 24MHz reference clock,
the i.MX8MQ uses a 25MHz reference clock. As the architected timer clock
frequency is directly sourced from the reference clock via a /3 divider this
SoC runs the timers at 8.33MHz.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Change-Id: Ief36af9ffebce7cb75a200124134828d3963e744

3 years agofeat(plat/xilinx/zynqmp): optimization on pinctrl_functions
Ronak Jain [Fri, 6 May 2022 11:45:59 +0000 (04:45 -0700)]
feat(plat/xilinx/zynqmp): optimization on pinctrl_functions

Optimizing the pinctrl_functions structure. Remove the pointer to
array of u16 type which consumes a lot of memory (64bits pointer to
array + 16B for END_OF_GROUPS + almost useless 8bits on every entry
which is the same for every group) and add two new members of type
u16 and u8 with the name called group_base and group_size
respectively.

The group_base member contains the base value of pinctrl group whereas
the group_size member contains the total number of groups requested
from the pinctrl function.

Overall, it saves around ~2KB of RAM and ~0.7KB of code memory.

Signed-off-by: Michal Simek <michal.simek@amd.com>
Signed-off-by: Ronak Jain <ronak.jain@xilinx.com>
Change-Id: I79b761b45df350d390fa344d411b340d9b2f13ac

3 years agofix(lib/psa): fix Null pointer dereference error
David Vincze [Wed, 18 May 2022 14:02:37 +0000 (16:02 +0200)]
fix(lib/psa): fix Null pointer dereference error

Fixing possible Null pointer dereference error, found
by Coverity scan.

Change-Id: If60b7f7e13ecbc3c01e3a9c5005c480260bbabdd
Signed-off-by: David Vincze <david.vincze@arm.com>
3 years agofix(spmc): fix incorrect FF-A version usage
Marc Bonnici [Fri, 20 May 2022 13:38:55 +0000 (14:38 +0100)]
fix(spmc): fix incorrect FF-A version usage

Fix the wrong FF-A version being used for retrieving existing memory
descriptors for v1.0 clients. Internally these should always be stored
using the latest version rather than client version.

Signed-off-by: Marc Bonnici <marc.bonnici@arm.com>
Change-Id: Ibee1b2452c8d6ebd23bbd9d703c96ca185444093

3 years agofix(spmc): fix FF-A memory transaction validation
Marc Bonnici [Fri, 20 May 2022 13:34:56 +0000 (14:34 +0100)]
fix(spmc): fix FF-A memory transaction validation

Fix an incorrect bound check for overlapping memory regions which can
give false positives if the two regions are consecutive to each other.

Signed-off-by: Marc Bonnici <marc.bonnici@arm.com>
Change-Id: I997dc4d1ef2014660cc964aff0a73e348c44eff0

3 years agofix(build): use DWARF 4 when building debug
Daniel Boulby [Tue, 3 May 2022 15:46:16 +0000 (16:46 +0100)]
fix(build): use DWARF 4 when building debug

GCC 11 and Clang 14 now use the DWARF 5 standard by default however
Arm-DS currently only supports up to version 4. Therefore, for debug
builds, ensure the DWARF 4 standard is used.
Also update references for Arm DS-5 to it's successor Arm-DS (Arm
Development Studio).

Change-Id: Ica59588de3d121c1b795b3699f42c31f032cee49
Signed-off-by: Daniel Boulby <daniel.boulby@arm.com>
3 years agoMerge changes from topic "sb/threat-model" into integration
Bipin Ravi [Thu, 19 May 2022 19:33:32 +0000 (21:33 +0200)]
Merge changes from topic "sb/threat-model" into integration

* changes:
  docs(threat-model): make measured boot out of scope
  docs(threat-model): revamp threat #9

3 years agoMerge "fix(bl1): invalidate SP in data cache during secure SMC" into integration
Madhukar Pappireddy [Thu, 19 May 2022 19:11:55 +0000 (21:11 +0200)]
Merge "fix(bl1): invalidate SP in data cache during secure SMC" into integration

3 years agoMerge changes from topic "ffa_el3_spmc" into integration
Olivier Deprez [Thu, 19 May 2022 16:33:03 +0000 (18:33 +0200)]
Merge changes from topic "ffa_el3_spmc" into integration

* changes:
  feat(fvp): add plat hook for memory transactions
  feat(spmc): enable handling of the NS bit
  feat(spmc): add support for v1.1 FF-A memory data structures
  feat(spmc/mem): prevent duplicated sharing of memory regions
  feat(spmc/mem): support multiple endpoints in memory transactions
  feat(spmc): add support for v1.1 FF-A boot protocol
  feat(plat/fvp): introduce accessor function to obtain datastore
  feat(spmc/mem): add FF-A memory management code

3 years agoMerge "refactor(context mgmt): refactor initialization of EL1 context registers"...
Olivier Deprez [Thu, 19 May 2022 14:42:58 +0000 (16:42 +0200)]
Merge "refactor(context mgmt): refactor initialization of EL1 context registers" into integration

3 years agoMerge changes from topic "gpt-crc" into integration
Madhukar Pappireddy [Thu, 19 May 2022 14:04:39 +0000 (16:04 +0200)]
Merge changes from topic "gpt-crc" into integration

* changes:
  feat(partition): verify crc while loading gpt header
  build(hikey): platform changes for verifying gpt header crc
  build(agilex): platform changes for verifying gpt header crc
  build(stratix10): platform changes for verifying gpt header crc
  build(stm32mp1): platform changes for verifying gpt header crc

3 years agofeat(fvp): add plat hook for memory transactions
Marc Bonnici [Mon, 21 Feb 2022 15:02:36 +0000 (15:02 +0000)]
feat(fvp): add plat hook for memory transactions

Add call to platform hooks upon successful transmission of a
memory transaction request and as part of a memory reclaim request.
This allows for platform specific functionality to be performed
accordingly.

Note the hooks must be placed in the initial share request and final
reclaim to prevent order dependencies with operations that may take
place in the normal world without visibility of the SPMC.

Add a dummy implementation to the FVP platform.

Signed-off-by: Marc Bonnici <marc.bonnici@arm.com>
Change-Id: I0c7441a9fdf953c4db0651512e5e2cdbc6656c79

3 years agofeat(spmc): enable handling of the NS bit
Marc Bonnici [Tue, 19 Apr 2022 15:52:59 +0000 (16:52 +0100)]
feat(spmc): enable handling of the NS bit

In FF-A v1.1 the NS bit is used by the SPMC to specify the
security state of a memory region retrieved by a SP.

Enable the SPMC to set the bit for v1.1 callers or v1.0
callers that explicitly request the usage via FFA_FEATURES.

In this implementation the sender of the memory region must
reside in the normal world and the SPMC does not support
changing the security state of memory regions therefore
always set the NS bit if required by the caller.

Signed-off-by: Marc Bonnici <marc.bonnici@arm.com>
Change-Id: I215756b28e2382082933ba1dcc7584e7faf4b36b

3 years agofeat(spmc): add support for v1.1 FF-A memory data structures
Marc Bonnici [Tue, 19 Apr 2022 16:42:53 +0000 (17:42 +0100)]
feat(spmc): add support for v1.1 FF-A memory data structures

Add support for the FF-A v1.1 data structures to the EL3 SPMC
and enable the ability to convert between v1.0 and the v1.1
forwards compatible data structures.

The SPMC now uses the v1.1 data structures internally and will
convert descriptors as required depending on the FF-A version
supported by the calling partition.

Signed-off-by: Marc Bonnici <marc.bonnici@arm.com>
Change-Id: Ic14a95ea2e49c989aecf19b927a6b21ac50f863e

3 years agofeat(spmc/mem): prevent duplicated sharing of memory regions
Marc Bonnici [Fri, 21 Jan 2022 10:34:55 +0000 (10:34 +0000)]
feat(spmc/mem): prevent duplicated sharing of memory regions

Allow the SPMC to reject incoming memory sharing/lending requests
that contain memory regions which overlap with an existing
request.

To enable this functionality the SPMC compares each requested
memory region to those in ongoing memory transactions and rejects
the request if the ranges overlap.

Signed-off-by: Marc Bonnici <marc.bonnici@arm.com>
Change-Id: I7588846f272ec2add2a341d9f24836c73a046e2f

3 years agofeat(spmc/mem): support multiple endpoints in memory transactions
Marc Bonnici [Thu, 13 Jan 2022 11:39:10 +0000 (11:39 +0000)]
feat(spmc/mem): support multiple endpoints in memory transactions

Enable FFA_MEM_LEND and FFA_MEM_SHARE transactions to support multiple
borrowers and add the appropriate validation. Since we currently
only support a single S-EL1 partition, this functionality is to
support the use case where a VM shares or lends memory to one or
more VMs in the normal world as part of the same transaction to
the SP.

Signed-off-by: Marc Bonnici <marc.bonnici@arm.com>
Change-Id: Ia12c4357e9d015cb5f9b38e518b7a25b1ea2e30e

3 years agoMerge changes from topic "mb/drtm-work-phase-1" into integration
Manish Pandey [Thu, 19 May 2022 13:15:49 +0000 (15:15 +0200)]
Merge changes from topic "mb/drtm-work-phase-1" into integration

* changes:
  build(changelog): add new scope for Arm SMMU driver
  feat(smmu): add SMMU abort transaction function
  docs(build): add build option for DRTM support
  build(drtm): add DRTM support build option

3 years agoMerge changes from topic "sb/threat-model" into integration
Sandrine Bailleux [Thu, 19 May 2022 11:09:00 +0000 (13:09 +0200)]
Merge changes from topic "sb/threat-model" into integration

* changes:
  docs(threat-model): remove some redundant text in threat #08
  docs(threat-model): make experimental features out of scope
  docs(threat-model): cosmetic changes

3 years agoMerge "build(changelog): add new scope for the threat model" into integration
Sandrine Bailleux [Thu, 19 May 2022 10:58:10 +0000 (12:58 +0200)]
Merge "build(changelog): add new scope for the threat model" into integration

3 years agofeat(spmc): add support for v1.1 FF-A boot protocol
Achin Gupta [Tue, 19 Oct 2021 11:21:16 +0000 (12:21 +0100)]
feat(spmc): add support for v1.1 FF-A boot protocol

A partition can request the use of the FF-A boot protocol via
an entry in its manifest along with the register (0-3)
that should be populated with a pointer to a data structure
containing boot related information. Currently the boot
information consists of an allocated memory region
containing the SP's manifest, allowing it to map and parse
any extra information as required.

This implementation only supports the v1.1 data structures
and will return an error if a v1.0 client requests the usage
of the protocol.

Signed-off-by: Achin Gupta <achin.gupta@arm.com>
Signed-off-by: Marc Bonnici <marc.bonnici@arm.com>
Change-Id: I67692553a90a7e7d94c64fe275edd247b512efca

3 years agofeat(plat/fvp): introduce accessor function to obtain datastore
Marc Bonnici [Thu, 16 Dec 2021 18:31:02 +0000 (18:31 +0000)]
feat(plat/fvp): introduce accessor function to obtain datastore

In order to provide the EL3 SPMC a sufficient datastore to
record memory descriptors, a accessor function is used.
This allows for the backing memory to be allocated in a
platform defined manner, to accommodate memory constraints
and desired use cases.

Provide an implementation for the Arm FVP platform to
use a default value of 512KB memory allocated in the
TZC RAM section.

Signed-off-by: Marc Bonnici <marc.bonnici@arm.com>
Change-Id: I92bc55ba6e04bdad429eb52f0d2960ceda682804

3 years agofeat(spmc/mem): add FF-A memory management code
Marc Bonnici [Fri, 1 Oct 2021 15:06:04 +0000 (16:06 +0100)]
feat(spmc/mem): add FF-A memory management code

Originally taken from the downstream Trusty SPD [1]
implementation and modified to integrate with
the EL3 SPMC internals.

Add support to the EL3 SPMC for a subset of the FF-A
memory management ABIs:
- FFA_MEM_SHARE
- FFA_MEM_LEND
- FFA_MEM_RETRIEVE_REQ
- FFA_MEM_RETRIEVE_RESP
- FFA_MEM_RELINQUISH
- FFA_MEM_RECLAIM
- FFA_MEM_FRAG_RX
- FFA_MEM_FRAG_TX

This implementation relies on a datastore allocated in
platform specific code in order to store memory descriptors
about ongoing memory transactions. This mechanism
will be implemented in the following commit.

[1] https://android.googlesource.com/trusty/external/trusted-firmware-a/+/refs/heads/master/services/spd/trusty/

Signed-off-by: Marc Bonnici <marc.bonnici@arm.com>
Change-Id: Ib042f73c8a6e0f0aed00f6762be175cb9dedc042

3 years agodocs(threat-model): make measured boot out of scope
Sandrine Bailleux [Mon, 16 May 2022 13:10:27 +0000 (15:10 +0200)]
docs(threat-model): make measured boot out of scope

Add an explicit note that measured boot is out of scope of the threat
model. For example, we have no threat related to the secure
management of measurements, nor do we list its security benefits
(e.g. in terms of repudiation).

This might be a future improvement to the threat model but for now
just acknowledge it is not considered.

Change-Id: I2fb799a2ef0951aa681a755a948bd2b67415d156
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
3 years agofix(plat/zynqmp): fix coverity scan warnings
Ronak Jain [Wed, 11 May 2022 09:48:52 +0000 (02:48 -0700)]
fix(plat/zynqmp): fix coverity scan warnings

- Fix uninitialized variable use
- Fix array overrun issue

Signed-off-by: Tanmay Shah <tanmay.shah@xilinx.com>
Signed-off-by: Ronak Jain <ronak.jain@xilinx.com>
Change-Id: I604416531122c9208793d66c26b1fa69c95f3165

3 years agobuild(changelog): add new scope for Arm SMMU driver
Manish V Badarkhe [Thu, 24 Mar 2022 18:23:37 +0000 (18:23 +0000)]
build(changelog): add new scope for Arm SMMU driver

Added new scope for Arm SMMU driver.

Signed-off-by: Manish V Badarkhe <manish.badarkhe@arm.com>
Change-Id: I62f5ed36657a071d125cdddacbff9fb23d2bc8e0