]> git.baikalelectronics.ru Git - arm-tf.git/log
arm-tf.git
2 years agofeat(hikey960): increase secure workspace to 64MB
Arthur Cassegrain [Fri, 26 Nov 2021 15:34:36 +0000 (16:34 +0100)]
feat(hikey960): increase secure workspace to 64MB

Common TEE use cases require 64 MB these days, and not just 16 MB.
This in turn requires more XLAT tables to be pre-allocated for BL31.

Change-Id: I85c4033da64785f3e3272b0e9a4da4bceb20fcc7
Signed-off-by: vallau01 <valentin.laurent@trustonic.com>
Signed-off-by: Lukas Hanel <lukas.hanel@trustonic.com>
2 years agofeat(hikey960): upgrade to xlat_tables_v2
Lukas Hanel [Fri, 23 Apr 2021 16:45:57 +0000 (18:45 +0200)]
feat(hikey960): upgrade to xlat_tables_v2

Allow 36-bit addresses.
Don't map BL32 memory into BL31 to save space

Change-Id: I033132354dc4b9876f4a384491097b9b5238e700
Signed-off-by: vallau01 <valentin.laurent@trustonic.com>
Signed-off-by: Lukas Hanel <lukas.hanel@trustonic.com>
2 years agoMerge "fix(rme): relax RME compiler requirements" into integration
Manish V Badarkhe [Fri, 21 Oct 2022 08:17:52 +0000 (10:17 +0200)]
Merge "fix(rme): relax RME compiler requirements" into integration

2 years agoMerge changes from topic "imx8m-hab-support" into integration
Sandrine Bailleux [Fri, 21 Oct 2022 07:35:32 +0000 (09:35 +0200)]
Merge changes from topic "imx8m-hab-support" into integration

* changes:
  docs(imx8m): update for high assurance boot
  feat(imx8m): add support for high assurance boot
  feat(imx8mp): add hab and map required memory blocks
  feat(imx8mn): add hab and map required memory blocks
  feat(imx8mm): add hab and map required memory blocks

2 years agoMerge "fix(cpus): fix cpu version check for Neoverse N2, V1" into integration
Madhukar Pappireddy [Thu, 20 Oct 2022 13:56:57 +0000 (15:56 +0200)]
Merge "fix(cpus): fix cpu version check for Neoverse N2, V1" into integration

2 years agoMerge "fix(cpus): workaround for Cortex-A510 erratum 2666669" into integration
Madhukar Pappireddy [Thu, 20 Oct 2022 13:03:13 +0000 (15:03 +0200)]
Merge "fix(cpus): workaround for Cortex-A510 erratum 2666669" into integration

2 years agoMerge "feat(ethos-n)!: add support for SMMU streams" into integration
Joanna Farley [Thu, 20 Oct 2022 09:04:48 +0000 (11:04 +0200)]
Merge "feat(ethos-n)!: add support for SMMU streams" into integration

2 years agofix(cpus): fix cpu version check for Neoverse N2, V1
Bipin Ravi [Wed, 19 Oct 2022 15:29:16 +0000 (10:29 -0500)]
fix(cpus): fix cpu version check for Neoverse N2, V1

The CPU version check was moved wrongly down in N2 and missing in V1.
The patch fixes the issues.

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

2 years agodocs(imx8m): update for high assurance boot
Andrey Zhizhikin [Mon, 26 Sep 2022 20:51:47 +0000 (22:51 +0200)]
docs(imx8m): update for high assurance boot

Add a section into documentation listing the support for High Assurance
Boot (HABv4), note on the DRAM mapping, and reference to the external
documentation.

Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
Change-Id: Iaca97f4ac2595e35de2664a880394519f96eca07

2 years agofeat(imx8m): add support for high assurance boot
Andrey Zhizhikin [Mon, 26 Sep 2022 20:25:33 +0000 (22:25 +0200)]
feat(imx8m): add support for high assurance boot

Introduce support for High Assurance Boot (HABv4), which is used to
establish and extend the Root-of-Trust during FW loading at any given
boot stage.

This commit introduces support for HAB ROM Vector Table (RVT) API, which
is normally used by post-ROM code to authenticate additional boot images
(Kernel, FDT, FIT, etc.) that are taking part in the Root-of-Trust.

Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
Change-Id: I780d308369824fa4850844eb9e91768e417166a0

2 years agofeat(imx8mp): add hab and map required memory blocks
Andrey Zhizhikin [Mon, 26 Sep 2022 20:48:56 +0000 (22:48 +0200)]
feat(imx8mp): add hab and map required memory blocks

In order for HAB to perform operations, memory regions has to be mapped
in TF-A, which HAB ROM code would use internally.

Include those memory blocks for i.MX8M+ SoC. Of a special note, the DRAM
block is mapped with complete size available on the platform and uses
MT_RW attributes, this is required to minimize the size of translation
tables and provide a possibility to exchange the execution results
between EL3 and EL1&2, see details in [1].

Link: [1]: https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/16880
Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
Change-Id: I986cdce434d1ec9ea8b3c0d5599edde55b9b30f8

2 years agofeat(imx8mn): add hab and map required memory blocks
Andrey Zhizhikin [Mon, 26 Sep 2022 20:47:12 +0000 (22:47 +0200)]
feat(imx8mn): add hab and map required memory blocks

In order for HAB to perform operations, memory regions has to be mapped
in TF-A, which HAB ROM code would use internally.

Include those memory blocks for i.MX8MN SoC. Of a special note, the DRAM
block is mapped with complete size available on the platform and uses
MT_RW attributes, this is required to minimize the size of translation
tables and provide a possibility to exchange the execution results
between EL3 and EL1&2, see details in [1].

Link: [1]: https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/16880
Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
Change-Id: If7a2b718658db452871e1ae56b71a4983e8ef2fe

2 years agofeat(imx8mm): add hab and map required memory blocks
Andrey Zhizhikin [Mon, 26 Sep 2022 20:41:08 +0000 (22:41 +0200)]
feat(imx8mm): add hab and map required memory blocks

In order for HAB to perform operations, memory regions has to be mapped
in TF-A, which HAB ROM code would use internally.

Include those memory blocks for i.MX8MM SoC. Of a special note, the DRAM
block is mapped with complete size available on the platform and uses
MT_RW attributes, this is required to minimize the size of translation
tables and provide a possibility to exchange the execution results
between EL3 and EL1&2, see details in [1].

Link: [1]: https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/16880
Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
Change-Id: I6a3a3d7105b85c2f4ab6ea6cfbca67c9a325eb11

2 years agoMerge "feat(fvp): build delegated attestation in BL31" into integration
Sandrine Bailleux [Tue, 18 Oct 2022 14:20:05 +0000 (16:20 +0200)]
Merge "feat(fvp): build delegated attestation in BL31" into integration

2 years agoMerge "chore(rpi3): remove redundant code" into integration
André Przywara [Mon, 17 Oct 2022 13:57:40 +0000 (15:57 +0200)]
Merge "chore(rpi3): remove redundant code" into integration

2 years agoMerge "docs(maintainers): add NPU driver owners" into integration
Manish V Badarkhe [Mon, 17 Oct 2022 13:20:19 +0000 (15:20 +0200)]
Merge "docs(maintainers): add NPU driver owners" into integration

2 years agodocs(maintainers): add NPU driver owners
Mikael Olsson [Fri, 14 Oct 2022 09:48:07 +0000 (11:48 +0200)]
docs(maintainers): add NPU driver owners

Code owners have been added for the Arm(R) Ethos(TM)-N NPU driver.

Change-Id: I0bda0d95151cdff5cd3a793c6c0e9ef6a9a5f50b
Signed-off-by: Mikael Olsson <mikael.olsson@arm.com>
2 years agoMerge "fix(versal_net): Enable a78 errata workarounds" into integration
Joanna Farley [Fri, 14 Oct 2022 17:58:35 +0000 (19:58 +0200)]
Merge "fix(versal_net): Enable a78 errata workarounds" into integration

2 years agofix(versal_net): Enable a78 errata workarounds
Akshay Belsare [Tue, 11 Oct 2022 09:42:02 +0000 (15:12 +0530)]
fix(versal_net): Enable a78 errata workarounds

TF-A is reporting that erratum are missing to be enabled.

Enable the Following errata workaround to Cortex-A78 AE CPU for versal_net
ERRATA_A78_AE_1941500
ERRATA_A78_AE_1951502
ERRATA_A78_AE_2376748
ERRATA_A78_AE_2395408

For further information refer to
https://developer.arm.com/documentation/SDEN1707912/1300/

Signed-off-by: Akshay Belsare <Akshay.Belsare@amd.com>
Change-Id: Ib7fc16e035feab1dfbd88c1f8ce128b057eee86d

2 years agofix(cpus): workaround for Cortex-A510 erratum 2666669
Akram Ahmad [Wed, 21 Sep 2022 12:59:56 +0000 (13:59 +0100)]
fix(cpus): workaround for Cortex-A510 erratum 2666669

Cortex-A510 erratum 2666669 applies to revisions r1p1 and lower,
and is fixed in r1p2. The errata is mitigated by setting
IMP_CPUACTLR_EL1[38] to 1.

SDEN documentation:
https://developer.arm.com/documentation/SDEN1873351/latest
https://developer.arm.com/documentation/SDEN1873361/latest

Signed-off-by: Akram Ahmad <Akram.Ahmad@arm.com>
Change-Id: Ief27e4a155e43e75f05f2710d0c7bd5da2dec43f

2 years agofeat(fvp): build delegated attestation in BL31
Sandrine Bailleux [Wed, 12 Oct 2022 12:46:56 +0000 (14:46 +0200)]
feat(fvp): build delegated attestation in BL31

Right now, the delegated attestation module is not used in TF-A. This
means it's not even getting built and so the CI system cannot detect
build regressions.

Eventually, delegated attestation will be involved in a new runtime
service exposed by BL31 to lower exception levels. We are not there
yet but let's already include it into BL31 image, so we get build
coverage and static analysis on the code. Note that we make sure to
cover both PLAT_RSS_NOT_SUPPORTED=0 and PLAT_RSS_NOT_SUPPORTED=1
configurations.

Delegated attestation is currently made dependent on measured boot
support. This dependency is not at the source code level (attestation
code does not invoke any measured boot interfaces) but it is rather a
logical dependency: attestation without boot measurements is not very
useful...

For now, this is good enough for our purpose but the conditions under
which the attestation code is included might change in the future.

Change-Id: I616715c3dd0418a1bbf1019df3ff9acd8461e705
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
2 years agoMerge "fix(versal): enable a72 erratum 859971 and 1319367" into integration
Joanna Farley [Thu, 13 Oct 2022 09:15:12 +0000 (11:15 +0200)]
Merge "fix(versal): enable a72 erratum 859971 and 1319367" into integration

2 years agofix(versal): enable a72 erratum 859971 and 1319367
Michal Simek [Fri, 7 Oct 2022 06:15:19 +0000 (08:15 +0200)]
fix(versal): enable a72 erratum 859971 and 1319367

TF-A is reporting that above two erratum are missing to be enabled that's
why enable them by default.

For futher information please refer to
https://developer.arm.com/documentation/epm012079/11/

where
859971 is "Speculative instruction prefetch to Execute-never (XN) memory
could cause deadlock or data integrity issue" and
1319367 is "Speculative AT instruction using out-of-context translation
regime could cause subsequent request to generate an incorrect
translation".

Change-Id: I408706713a169e53db63ac5657751b0b003e646d
Signed-off-by: Michal Simek <michal.simek@amd.com>
2 years agoMerge "fix(ufs): retry commands on unit attention" into integration
Madhukar Pappireddy [Wed, 12 Oct 2022 13:56:24 +0000 (15:56 +0200)]
Merge "fix(ufs): retry commands on unit attention" into integration

2 years agoMerge "fix(sptool): operators "is/is not" in sp_mk_gen.py" into integration
Manish Pandey [Wed, 12 Oct 2022 11:01:04 +0000 (13:01 +0200)]
Merge "fix(sptool): operators "is/is not" in sp_mk_gen.py" into integration

2 years agoMerge "fix(mt8186): fix EMI_MPU domain setting for DSP" into integration
Olivier Deprez [Wed, 12 Oct 2022 10:02:51 +0000 (12:02 +0200)]
Merge "fix(mt8186): fix EMI_MPU domain setting for DSP" into integration

2 years agoMerge "fix: backtrace stack unwind misses lr adjustment" into integration
Manish Pandey [Wed, 12 Oct 2022 09:32:08 +0000 (11:32 +0200)]
Merge "fix: backtrace stack unwind misses lr adjustment" into integration

2 years agoMerge "fix(rk3399): explicitly define the sys_sleep_flag_sram type" into integration
Olivier Deprez [Wed, 12 Oct 2022 09:30:54 +0000 (11:30 +0200)]
Merge "fix(rk3399): explicitly define the sys_sleep_flag_sram type" into integration

2 years agochore(rpi3): remove redundant code
Boyan Karatotev [Wed, 5 Oct 2022 13:43:54 +0000 (14:43 +0100)]
chore(rpi3): remove redundant code

The pwr_domain_pwr_down_wfi entry is overridden by a newer
implementation. This removes the last reference to
rpi3_pwr_domain_pwr_down_wfi. Remove both as they are not needed

Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Change-Id: Ie65c40935cd1ed3c673ffdc9aa72064f5ab4032e

2 years agofix(rk3399): explicitly define the sys_sleep_flag_sram type
Scott Parlane [Mon, 5 Sep 2022 22:59:57 +0000 (10:59 +1200)]
fix(rk3399): explicitly define the sys_sleep_flag_sram type

Recent GCC versions now do array-bounds checking which fails for
sys_sleep_flag_sram because the struct is larger than the 8-bytes
size that (void *) is

This variable is only used in one place as the struct,
so it can be defined with the struct type.

Resolves:
plat/rockchip/px30/drivers/pmu/pmu.c: In function 'rockchip_soc_sys_pwr_dm_suspend':
plat/rockchip/px30/drivers/pmu/pmu.c:977:23: error: array subscript 'struct psram_data_t[0]' is partly outside array bounds of 'void[8]' [-Werror=array-bounds]
  977 |         psram_boot_cfg->pm_flag &= ~PM_WARM_BOOT_BIT;

Change-Id: Ifbe42d11d0c7875f6cb23dc0b7ffb3f3f90c55a8
Signed-off-by: Scott Parlane <scott@parlanenz.com>
2 years agoMerge changes from topic "fvp_dts_rework" into integration
Manish V Badarkhe [Tue, 11 Oct 2022 17:33:35 +0000 (19:33 +0200)]
Merge changes from topic "fvp_dts_rework" into integration

* changes:
  fix(fvp_ve): fdts: Fix vexpress,config-bus subnode names
  fix(fvp): fdts: Fix idle-states entry method
  fix(fvp): fdts: fix memtimer subframe addressing
  feat(fvp): fdts: update rtsm_ve DT files from the Linux kernel
  refactor(fvp): fdts: consolidate GICv2 base FVP DT files
  refactor(fvp): fdts: consolidate GICv3 base FVP DT files
  feat(fvp): dts: drop 32-bit .dts files
  refactor(fvp): fdts: merge motherboard .dtsi files
  refactor(fvp_ve): fdts: prepare Cortex-A5 and A7 model DTs
  fix(fvp): fdts: unify and fix PSCI nodes

2 years agoMerge "feat(cpu): add library support for Hunter ELP" into integration
Bipin Ravi [Tue, 11 Oct 2022 15:23:56 +0000 (17:23 +0200)]
Merge "feat(cpu): add library support for Hunter ELP" into integration

2 years agofix(fvp_ve): fdts: Fix vexpress,config-bus subnode names
Andre Przywara [Tue, 23 Aug 2022 09:45:54 +0000 (10:45 +0100)]
fix(fvp_ve): fdts: Fix vexpress,config-bus subnode names

The arm,vexpress,config-bus DT binding restricts the possible (sub)node
names.
Adjust the current node names, to drop the unneeded address specifier,
and make the node names binding compliant.

Change-Id: Ic48c6969268c960ce92c8ec3a756ed1d89e61b08
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2 years agofix(fvp): fdts: Fix idle-states entry method
Andre Przywara [Mon, 22 Aug 2022 14:54:26 +0000 (15:54 +0100)]
fix(fvp): fdts: Fix idle-states entry method

When firmware implements idle states via PSCI, the value of the DT
entry-method property must be "psci", not "arm,psci".

Fix this to make the CPU description binding compliant.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Change-Id: Icd1bf704d177368af9b7aab545f47e580791b8cc

2 years agofix(fvp): fdts: fix memtimer subframe addressing
Andre Przywara [Mon, 22 Aug 2022 14:50:22 +0000 (15:50 +0100)]
fix(fvp): fdts: fix memtimer subframe addressing

The arm,armv7-timer-mem DT binding documentation demands that the
 #size-cells property should be <1> only.

Adjust the value to be <1> and drop the now needless leading 0 in the
frame's reg property. Convert to #address-cell = <1> on the way.
Also adjust the interrupts property to use the proper GIC macros.

Change-Id: Ia2224663b1e6aaa7cf94af777473641de6a840d2
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2 years agofeat(fvp): fdts: update rtsm_ve DT files from the Linux kernel
Andre Przywara [Fri, 19 Aug 2022 15:21:29 +0000 (16:21 +0100)]
feat(fvp): fdts: update rtsm_ve DT files from the Linux kernel

The existing DT files for the base FVP model are having some issues,
that lead to warnings reported by the device tree compiler.

Those (and many other issues around (updated) DT binding compliance)
were fixed in the Linux kernel tree, so let's sync those files back into
TF-A.
We cannot copy the files "as is" for now, since we rely on certain custom
properties to be added (max-pwr-lvl in the PSCI node, SDEI nodes, etc).

Merge in the changed parts of the Linux kernel DT (from Linux v6.0-rc1),
and rework the base file to allow including the motherboard.dtsi
unchanged. This should make any future update less painful.

As this also affects the FVP VE boards (Cortex-A7 and Cortex-A5), since
they share the motherboard include file, fix them up as well.

Change-Id: I4f74d05e5583747f8849e32f246f74aeec7a9c60
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2 years agorefactor(fvp): fdts: consolidate GICv2 base FVP DT files
Andre Przywara [Fri, 19 Aug 2022 10:01:16 +0000 (11:01 +0100)]
refactor(fvp): fdts: consolidate GICv2 base FVP DT files

The GICv2 and GICv3 version of the FVP DT files are unnecessarily split,
as the common part of the peripherals is the same: it's literally just
the interrupt controller node that is different.
Since the GICv3 versions now use a generic DT include file (without any
GIC node), let's reuse that for the GICv2 versions of the FVP as well.
We just add a separate fvp-base-gicv2.dtsi file which describes the
GICv2 interrupt controller. Also shorten the compatible string, since
the GICv2 binding documentation does not allow the current combination.

This allows to remove the mostly redundant nodes from the GICv2 .dts
file.

Change-Id: I9018031bb611fb00ca7dbefc1bff7d40c3f05819
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2 years agorefactor(fvp): fdts: consolidate GICv3 base FVP DT files
Andre Przywara [Fri, 19 Aug 2022 10:00:37 +0000 (11:00 +0100)]
refactor(fvp): fdts: consolidate GICv3 base FVP DT files

The GICv2 and GICv3 version of the FVP DT files are unnecessarily split,
as the common part of the peripherals is the same: it's literally just
the interrupt controller node that is different.
To facilitate a unification, refactor the DT include files to explicitly
include a snippet with just the GICv3 description, and a generic base DT
file for the rest. This generic file can then be reused by the GICv2
versions later.

Since we can only have a /memreserve/ entry *before* any DT nodes, move
that line to each file, to allow including the GIC DT file separately.

Change-Id: I9ff357d3fe0ce46e280c30131aeae97a99631512
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2 years agofeat(fvp): dts: drop 32-bit .dts files
Andre Przywara [Fri, 19 Aug 2022 09:26:00 +0000 (10:26 +0100)]
feat(fvp): dts: drop 32-bit .dts files

Conceptually the DT is a hardware description, as such it's independent
from the instruction set that a DT client uses. So having separate DTs
for aarch32 and aarch64 does not make sense and is not needed.

Probably due to historic reasons (a Linux bug fixed in 2016 with Linux
commit ba6dea4f7ced, in Linux v4.8) the CPU reg property was using a
different size between aarch64 and aarch32, even though the size of it
is solely governed by the parent's #address-cells property.

Consolidate this to be always 2, and always use two cells to describe
the CPU's MPIDR register.

This removes the last difference of the -aarch32 versions of the FVP
DT files, so just remove all of them. The respective versions without
that suffix can now be used with AArch32 DT clients as well.

Also remove the respective part in the documentation.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Change-Id: I45d3a2cbba8e04595a741e1cf41900377952673e

2 years agorefactor(fvp): fdts: merge motherboard .dtsi files
Andre Przywara [Fri, 19 Aug 2022 09:45:17 +0000 (10:45 +0100)]
refactor(fvp): fdts: merge motherboard .dtsi files

For no real reason we were shipping two separate DT include files for the
base FVP motherboard peripherals, one for aarch32, one for aarch64.
There is no difference in the hardware description when using a
different instruction set, and the diff between the two files was about
a missing interrupt map for the 64-bit DT files.

Consolidate the situation by just using a single motherboard .dtsi file,
which relies on an interrupt map by the including files.
Provide that map in the two files where it was missing before, and
change the filenames to let all users include the same file now.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Change-Id: I19b77ecc8da9b4bfbd61d02f910b9ab05dbf92e9

2 years agoMerge "revert(cpus): "Revert workaround for A77 erratum 1800714"" into integration
Bipin Ravi [Tue, 11 Oct 2022 15:01:17 +0000 (17:01 +0200)]
Merge "revert(cpus): "Revert workaround for A77 erratum 1800714"" into integration

2 years agoMerge "fix(psa): add missing semicolon" into integration
Sandrine Bailleux [Tue, 11 Oct 2022 13:46:16 +0000 (15:46 +0200)]
Merge "fix(psa): add missing semicolon" into integration

2 years agorefactor(fvp_ve): fdts: prepare Cortex-A5 and A7 model DTs
Andre Przywara [Thu, 25 Aug 2022 11:59:10 +0000 (12:59 +0100)]
refactor(fvp_ve): fdts: prepare Cortex-A5 and A7 model DTs

The DT files for the Cortex-A5 and Cortex-A7 FVP models include the
shared rtsm_ve-motherboard.dtsi file, which we need to sync with the
upstream Linux version soon.

To prepare for its changed structure there, adjust the top-level
 #address-cells and #size-cells properties to be compatible with the
expectations of the Linux version.
Also extend the interrupt map to cover all peripherals listed in the
motherboard file, and use the proper GIC macros to make them more
readable on the way.

Change-Id: I7d1493f1a200e8350530f912833f9ffcc5f94b21
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2 years agofix(fvp): fdts: unify and fix PSCI nodes
Andre Przywara [Fri, 10 Dec 2021 18:22:09 +0000 (18:22 +0000)]
fix(fvp): fdts: unify and fix PSCI nodes

The PSCI DT nodes used for the various fvp-base model variants provide
explicit function IDs, as required for the pre-v0.2 PSCI specification.
This prevents them from being used from both AArch32 and AArch64 DT
clients, and using this version of the PSCI spec is long deprecated
anyway.

Remove the old compatible string and the function properties, to
force clients to use the standard function IDs as described in the PSCI
spec. sys_poweroff and sys_reset were never standardised or used anyway.

There should be no client software around that cannot deal with PSCI
v0.2.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Change-Id: Ie87deb9898eae79b7307c15bcefcd4b311d4dc22

2 years agofix(psa): add missing semicolon
Sandrine Bailleux [Tue, 11 Oct 2022 12:45:18 +0000 (14:45 +0200)]
fix(psa): add missing semicolon

Fix a syntax error in the delegated attestation service code.

Unfortunately, this build failure was not caught by the CI system
because right now lib/psa/delegated_attestation.c file is not getting
pulled in by any upstream platform. This will be addressed in a
separate patch.

Change-Id: Idb84f62aabc5008396213023fc40547097925860
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
2 years agoMerge changes from topic "npm-dependencies" into integration
Olivier Deprez [Tue, 11 Oct 2022 12:27:34 +0000 (14:27 +0200)]
Merge changes from topic "npm-dependencies" into integration

* changes:
  build(npm): update locked Node.js dependencies
  build(npm): add NVM version file

2 years agofix(rme): relax RME compiler requirements
Andre Przywara [Tue, 4 Oct 2022 12:56:49 +0000 (13:56 +0100)]
fix(rme): relax RME compiler requirements

Currently building TF-A for the FVP with RME enabled requires a
toolchain that understands the -march=armv8.6-a command line option,
even though we actually don't need any ARMv8.6 features from the
compiler.

Relax the requirement to use ARMv8.5, since this is what's the GCC
shipped with Ubuntu 20.04 understands. This is in line what the current
RMM implementation uses as well.

Change-Id: I3806dcff90319a87f003fe2c86b7cdcdebd625e4
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2 years agorevert(cpus): "Revert workaround for A77 erratum 1800714"
Boyan Karatotev [Tue, 27 Sep 2022 09:37:54 +0000 (10:37 +0100)]
revert(cpus): "Revert workaround for A77 erratum 1800714"

Reinstate the workaround introduced in commit
9bbc03a6e0608a949d66d9da6db12a455b452bfb. The cited change to the SDEN
could not be found and there are no known problems with the workaround.

Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
Change-Id: Iec9938f173e7565024aca798f224df339de90806

2 years agofix(mt8186): fix EMI_MPU domain setting for DSP
Tinghan Shen [Fri, 7 Oct 2022 06:46:49 +0000 (14:46 +0800)]
fix(mt8186): fix EMI_MPU domain setting for DSP

Correct the domain setting for DSP. It should be 6.

BUG=b:249954378
TEST=audio is functional.

Change-Id: Ie79aa0dad3d2b1ef5de0f2acc51ded13b6f085ac
Signed-off-by: Tinghan Shen <tinghan.shen@mediatek.com>
2 years agobuild(npm): update locked Node.js dependencies
Chris Kay [Mon, 10 Oct 2022 12:28:19 +0000 (13:28 +0100)]
build(npm): update locked Node.js dependencies

This change updates our Node.js dependencies to their latest minor/patch
versions, but not necessarily to their latest major versions.

Change-Id: I59b093675134c679b7a834f3da6acf830f596c67
Signed-off-by: Chris Kay <chris.kay@arm.com>
2 years agobuild(npm): add NVM version file
Chris Kay [Mon, 10 Oct 2022 12:21:19 +0000 (13:21 +0100)]
build(npm): add NVM version file

The `.nvmrc` file specifies the version of Node.js that the repository's
Node.js-based tooling has been designed to be compatible with.

Users of NVM may want to run `nvm use` to install this version
automatically.

Change-Id: Ied90c51d8d1e5b43f2ca4de08a58bc782d9ae4e6
Signed-off-by: Chris Kay <chris.kay@arm.com>
2 years agoMerge changes I072fe5fe,I4066d476,Ie4af38b8,I730e7b04,Iac3356f8, ... into integration
Sandrine Bailleux [Mon, 10 Oct 2022 11:57:17 +0000 (13:57 +0200)]
Merge changes I072fe5fe,I4066d476,Ie4af38b8,I730e7b04,Iac3356f8, ... into integration

* changes:
  fix(psa): extend measured boot logging
  fix(rss): determine the size of sw_type in RSS mboot metadata
  fix(psa): align with original API in tf-m-extras
  fix(rss): clear the message buffer
  feat(tc): enable RSS backend based measured boot
  feat(tc): increase maximum BL1/BL2/BL31 sizes

2 years agoMerge "build(changelog): add new scope for Performance Monitor Extensions" into integ...
Manish V Badarkhe [Mon, 10 Oct 2022 09:49:13 +0000 (11:49 +0200)]
Merge "build(changelog): add new scope for Performance Monitor Extensions" into integration

2 years agoMerge changes from topic "delegated_attest" into integration
Sandrine Bailleux [Mon, 10 Oct 2022 09:06:38 +0000 (11:06 +0200)]
Merge changes from topic "delegated_attest" into integration

* changes:
  feat(psa): remove initial attestation partition API
  docs: add PLAT_RSS_COMMS_PAYLOAD_MAX_SIZE to porting-guide.rst

2 years agoMerge changes from topic "delegated_attest" into integration
Sandrine Bailleux [Mon, 10 Oct 2022 05:53:22 +0000 (07:53 +0200)]
Merge changes from topic "delegated_attest" into integration

* changes:
  fix(rss): remove dependency on attestation header
  fix(rss): rename AP-RSS message size macro
  feat(tc): add RSS-AP message size macro
  feat(tc): add MHU addresses for AP-RSS comms on TC2
  feat(psa): add delegated attestation partition API
  fix(rss): reduce input validation for measured boot

2 years agofeat(cpu): add library support for Hunter ELP
Harrison Mutai [Mon, 3 Oct 2022 11:48:35 +0000 (12:48 +0100)]
feat(cpu): add library support for Hunter ELP

Add basic CPU library code to support the Hunter ELP CPU in TF-A.
Hunter-ELP adds v9.2 architecture support and is derived from
Makalu-ELP. As such, the library code is adapted from the
Makalu-ELP support library.

Change-Id: I7e93b9af6b1f0bc4d08c3cf5caf071d2cbdbc89f
Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
2 years agofix(psa): extend measured boot logging
Tamas Ban [Wed, 5 Oct 2022 11:22:23 +0000 (13:22 +0200)]
fix(psa): extend measured boot logging

Print all the params of
rss_measured_boot_extend_measurement() to
the console to check parameter healthiness.

Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: I072fe5fef72c67e615ab64e06a9e1f6add5e9cfc

2 years agofeat(psa): remove initial attestation partition API
Tamas Ban [Thu, 1 Sep 2022 07:02:49 +0000 (09:02 +0200)]
feat(psa): remove initial attestation partition API

The attestation key derivation and platform attestation token
creation functionality is provided by the Delegated Attestation
partition in RSS.

Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: I2d8c0e6589d11e7c81c698adf75ee2a993e3a0c6

2 years agofix(rss): remove dependency on attestation header
Tamas Ban [Thu, 8 Sep 2022 15:04:49 +0000 (17:04 +0200)]
fix(rss): remove dependency on attestation header

Platform must define the maximum size of the message
over MHU.

Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: I91a6c132c946f4465178910b8ea83544f562e837

2 years agofix(rss): determine the size of sw_type in RSS mboot metadata
Tamas Ban [Mon, 3 Oct 2022 11:19:55 +0000 (13:19 +0200)]
fix(rss): determine the size of sw_type in RSS mboot metadata

Without setting the correct size of sw_type the metadata won't
be propagated to RSS through rss_measured_boot_extend_measurement()
API.

Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: I4066d4762689c96ac2ac8e8b8db5d2b1f108b550

2 years agodocs: add PLAT_RSS_COMMS_PAYLOAD_MAX_SIZE to porting-guide.rst
Tamas Ban [Fri, 16 Sep 2022 12:09:30 +0000 (14:09 +0200)]
docs: add PLAT_RSS_COMMS_PAYLOAD_MAX_SIZE to porting-guide.rst

Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: I79761347919a0dfa86a29b5424f1d34fc4ab91cb

2 years agofix(rss): rename AP-RSS message size macro
Tamas Ban [Wed, 5 Oct 2022 09:56:04 +0000 (11:56 +0200)]
fix(rss): rename AP-RSS message size macro

Adding PLAT_* prefix to indicate that the
platform needs to provide this definition.

Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: I0bd02be405fd8b1e625bd2b82647ebb2b58265fc

2 years agofix(psa): align with original API in tf-m-extras
Tamas Ban [Mon, 3 Oct 2022 11:06:53 +0000 (13:06 +0200)]
fix(psa): align with original API in tf-m-extras

The measured boot API is available in the tf-m-extras
repo:
partitions/measured_boot/interface/src/measured_boot_api.c

This change make the API behavior align with
the original implementation.

Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: Ie4af38b859f942b2ef090e92da64d75811b5b49b

2 years agofeat(tc): add RSS-AP message size macro
David Vincze [Mon, 11 Apr 2022 15:08:20 +0000 (17:08 +0200)]
feat(tc): add RSS-AP message size macro

Define the RSS_COMMS_PAYLOAD_MAX_SIZE macro. Its value is platform
specific and gives the largest message size which are exchanged
on the TC2 platform between RSS and AP.

Change-Id: Id831c282dc9a39755b82befead1a81767e217215
Signed-off-by: David Vincze <david.vincze@arm.com>
Signed-off-by: Tamas Ban <tamas.ban@arm.com>
2 years agofix(rss): clear the message buffer
Tamas Ban [Fri, 16 Sep 2022 11:42:29 +0000 (13:42 +0200)]
fix(rss): clear the message buffer

Clear the MHU message buffer to remove assets from memory.

Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: I730e7b044eaf0bf517532a12146e4f542949544e

2 years agofeat(tc): add MHU addresses for AP-RSS comms on TC2
David Vincze [Wed, 13 Apr 2022 12:00:21 +0000 (14:00 +0200)]
feat(tc): add MHU addresses for AP-RSS comms on TC2

Change-Id: I600485ca83f91378d07cac6cee484bc4a1bf2a9c
Signed-off-by: David Vincze <david.vincze@arm.com>
2 years agofeat(tc): enable RSS backend based measured boot
Tamas Ban [Fri, 16 Sep 2022 14:26:15 +0000 (16:26 +0200)]
feat(tc): enable RSS backend based measured boot

Measurements taken during boot are stored in RSS.
These measurements are included in the platform
attestation token.

Change-Id: Iac3356f813fb417315681c718839319832a76191
Signed-off-by: David Vincze <david.vincze@arm.com>
Signed-off-by: Tamas Ban <tamas.ban@arm.com>
2 years agofeat(psa): add delegated attestation partition API
Tamas Ban [Wed, 31 Aug 2022 12:50:27 +0000 (14:50 +0200)]
feat(psa): add delegated attestation partition API

Delegated attestation is a service provided by RSS to:
- Derive a delegated attestation key: Realm Attestation Key
- Query the platform attestation token

Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: I3edf09fcbef24bca7c8a000ffac8c1ab64dfb812

2 years agofeat(tc): increase maximum BL1/BL2/BL31 sizes
David Vincze [Wed, 4 May 2022 08:11:16 +0000 (10:11 +0200)]
feat(tc): increase maximum BL1/BL2/BL31 sizes

The maximum size of BL1/BL2/BL31 is increased due to
the added new functionalities, such as RSS based
measured boot on TC2.

Change-Id: I939c7c3da6bf870db46b32cd2836c6737de278bb
Signed-off-by: David Vincze <david.vincze@arm.com>
Signed-off-by: Tamas Ban <tamas.ban@arm.com>
2 years agofix(rss): reduce input validation for measured boot
Tamas Ban [Mon, 3 Oct 2022 15:29:45 +0000 (17:29 +0200)]
fix(rss): reduce input validation for measured boot

Remove an assert, which checks whether output buffer is
provided, because in measured boot there is no output.

Signed-off-by: Tamas Ban <tamas.ban@arm.com>
Change-Id: I08db9c2eea1da2d7120c9872ffbf8d8ee45c8e08

2 years agofix(sptool): operators "is/is not" in sp_mk_gen.py
J-Alves [Fri, 7 Oct 2022 09:02:33 +0000 (10:02 +0100)]
fix(sptool): operators "is/is not" in sp_mk_gen.py

Replace the "is/is not" operator by "==/!=" for literals, to fix the
syntax warnings below:

tools/sptool/sp_mk_generator.py:93: SyntaxWarning: "is not" with a literal. Did you mean "!="?
  return len(sppkg_rule) is not 0

tools/sptool/sp_mk_generator.py:203: SyntaxWarning: "is" with a literal. Did you mean "=="?
  assert(len(uuid_lines) is 1)

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

2 years agoMerge changes from topic "mb/drtm-preparatory-patches" into integration
Manish Pandey [Thu, 6 Oct 2022 15:39:35 +0000 (17:39 +0200)]
Merge changes from topic "mb/drtm-preparatory-patches" into integration

* changes:
  docs(drtm): steps to run DRTM implementation
  docs(drtm): add platform APIs for DRTM
  feat(drtm): flush dcache before DLME launch
  feat(drtm): invalidate icache before DLME launch
  feat(drtm): ensure that passed region lies within Non-Secure region of DRAM
  feat(fvp): add plat API to validate that passed region is non-secure
  feat(drtm): ensure that no SDEI event registered during dynamic launch
  feat(drtm): prepare EL state during dynamic launch
  feat(drtm): prepare DLME data for DLME launch
  feat(drtm): take DRTM components measurements before DLME launch
  feat(drtm): add a few DRTM DMA protection APIs
  feat(drtm): add remediation driver support in DRTM
  feat(fvp): add plat API to set and get the DRTM error
  feat(drtm): add Event Log driver support for DRTM
  feat(drtm): check drtm arguments during dynamic launch
  feat(drtm): introduce drtm dynamic launch function
  refactor(measured-boot): split out a few Event Log driver functions
  feat(drtm): retrieve DRTM features
  feat(drtm): add platform functions for DRTM
  feat(sdei): add a function to return total number of events registered
  feat(drtm): add PCR entries for DRTM
  feat(drtm): update drtm setup function
  refactor(crypto): change CRYPTO_SUPPORT flag to numeric
  feat(mbedtls): update mbedTLS driver for DRTM support
  feat(fvp): add crypto support in BL31
  feat(crypto): update crypto module for DRTM support
  build(changelog): add new scope for mbedTLS and Crypto module
  feat(drtm): add standard DRTM service
  build(changelog): add new scope for DRTM service
  feat(fvp): increase MAX_XLAT_TABLES entries for DRTM support
  feat(fvp): increase BL31's stack size for DRTM support
  feat(fvp): add platform hooks for DRTM DMA protection

2 years agoMerge "fix(qti): adding secure rm flag" into integration
Madhukar Pappireddy [Thu, 6 Oct 2022 13:55:47 +0000 (15:55 +0200)]
Merge "fix(qti): adding secure rm flag" into integration

2 years agodocs(drtm): steps to run DRTM implementation
Manish V Badarkhe [Wed, 29 Jun 2022 13:09:47 +0000 (14:09 +0100)]
docs(drtm): steps to run DRTM implementation

Documented steps to run DRTM implementation.

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

2 years agodocs(drtm): add platform APIs for DRTM
Lucian Paul-Trifu [Wed, 22 Jun 2022 17:45:36 +0000 (18:45 +0100)]
docs(drtm): add platform APIs for DRTM

Documented platform APIs for DRTM

Signed-off-by: Lucian Paul-Trifu <lucian.paultrifu@gmail.com>
Signed-off-by: Manish V Badarkhe <manish.badarkhe@arm.com>
Change-Id: I22749c26bbe7b3271705dd3db07e8597fce6225b

2 years agofeat(drtm): flush dcache before DLME launch
Manish Pandey [Thu, 21 Jul 2022 12:07:07 +0000 (13:07 +0100)]
feat(drtm): flush dcache before DLME launch

Flush the data cache range before DLME launch to ensure that data
passed by DCE preamble is committed.

Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Change-Id: I9946fd3420a17b86d9f1483e8b2cd5880033454e

2 years agofeat(drtm): invalidate icache before DLME launch
Manish Pandey [Tue, 19 Jul 2022 13:35:00 +0000 (14:35 +0100)]
feat(drtm): invalidate icache before DLME launch

As per DRTM beta0 spec table #28, Before the DLME is called the DCE
must invalidate all instruction caches.

Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Change-Id: I7efbb03d1d13346a8d898882fdbd7bbe8f1d49b2

2 years agoMerge "build: forbid `ENABLE_RME=1` when `SEPARATE_CODE_AND_RODATA=0`" into integration
Sandrine Bailleux [Thu, 6 Oct 2022 07:32:31 +0000 (09:32 +0200)]
Merge "build: forbid `ENABLE_RME=1` when `SEPARATE_CODE_AND_RODATA=0`" into integration

2 years agofix(qti): adding secure rm flag
Muhammad Arsath K F [Thu, 22 Sep 2022 12:49:41 +0000 (05:49 -0700)]
fix(qti): adding secure rm flag

Adding SECURE rm flag to support INTR_EL3_VALID_RM1 routing model.

Signed-off-by: Muhammad Arsath K F <quic_mkf@quicinc.com>
Change-Id: Ie72d62148e81d3cf7fb05f46124f846cc45d9d41

2 years agoMerge "fix(semihosting): fix seek call failure check" into integration
Madhukar Pappireddy [Wed, 5 Oct 2022 16:42:50 +0000 (18:42 +0200)]
Merge "fix(semihosting): fix seek call failure check" into integration

2 years agofeat(drtm): ensure that passed region lies within Non-Secure region of DRAM
Manish V Badarkhe [Wed, 13 Jul 2022 08:47:03 +0000 (09:47 +0100)]
feat(drtm): ensure that passed region lies within Non-Secure region of DRAM

Ensured DLME data region and DRTM parameters are lies within Non-Secure
region of DRAM by calling platform function 'plat_drtm_validate_ns_region'.

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

2 years agofeat(fvp): add plat API to validate that passed region is non-secure
Manish V Badarkhe [Mon, 4 Jul 2022 13:51:07 +0000 (14:51 +0100)]
feat(fvp): add plat API to validate that passed region is non-secure

Added a platform function to check passed region is within
the Non-Secure region of DRAM.

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

2 years agofeat(drtm): ensure that no SDEI event registered during dynamic launch
Manish Pandey [Thu, 23 Jun 2022 12:11:48 +0000 (13:11 +0100)]
feat(drtm): ensure that no SDEI event registered during dynamic launch

Ensured no SDEI event are registered during dynamic launch.

Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Change-Id: Ied3b2d389aa3d9a96ace9078581d5e691f0b38a7

2 years agofeat(drtm): prepare EL state during dynamic launch
Manish Pandey [Thu, 23 Jun 2022 09:43:31 +0000 (10:43 +0100)]
feat(drtm): prepare EL state during dynamic launch

Prepared EL state before dynamic launch

Change-Id: I3940cd7fc74da1a1addbeb08ae34f16771395e61
Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Signed-off-by: Lucian Paul-Trifu <lucian.paultrifu@gmail.com>
2 years agofeat(drtm): prepare DLME data for DLME launch
Manish V Badarkhe [Wed, 22 Jun 2022 12:11:14 +0000 (13:11 +0100)]
feat(drtm): prepare DLME data for DLME launch

Prepared DLME data before DLME launch

Change-Id: I28e2132d9c832ab5bd25cf884925b99cc48258ea
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2 years agofeat(drtm): take DRTM components measurements before DLME launch
Manish V Badarkhe [Tue, 21 Jun 2022 17:11:53 +0000 (18:11 +0100)]
feat(drtm): take DRTM components measurements before DLME launch

Taken measurement of various DRTM components in the Event Log
buffer to pass it to DLME.

Change-Id: Ic56620161f42596d22bf40d5c83c041cbce0b618
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2 years agofeat(drtm): add a few DRTM DMA protection APIs
Manish V Badarkhe [Tue, 21 Jun 2022 17:08:50 +0000 (18:08 +0100)]
feat(drtm): add a few DRTM DMA protection APIs

Added DRTM DMA protections APIs, and called them during
the DLME launch and DRTM SMC handling.

Change-Id: I29e7238c04e2ca9f26600276c5c05bff5387789e
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2 years agofeat(drtm): add remediation driver support in DRTM
Manish V Badarkhe [Tue, 21 Jun 2022 08:41:32 +0000 (09:41 +0100)]
feat(drtm): add remediation driver support in DRTM

Added remediation driver for DRTM to set/get the error
from non-volatile memory

Change-Id: I8f0873dcef4936693e0f39a3c95096cb689c04b7
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
Signed-off-by: Lucian Paul-Trifu <lucian.paultrifu@gmail.com>
2 years agofeat(fvp): add plat API to set and get the DRTM error
Manish V Badarkhe [Tue, 12 Jul 2022 20:48:04 +0000 (21:48 +0100)]
feat(fvp): add plat API to set and get the DRTM error

Added a platform function to set and get DRTM error.
Also, added a platform function to reset the system.

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

2 years agofeat(drtm): add Event Log driver support for DRTM
Manish V Badarkhe [Fri, 17 Jun 2022 10:42:17 +0000 (11:42 +0100)]
feat(drtm): add Event Log driver support for DRTM

Added Event Log driver support for DRTM. This driver
is responsible for the doing the hash measurement of
various DRTM components as per [1], and putting these
measurements in the Event Log buffer.

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

Change-Id: I9892c313cf6640b82e261738116fe00f7975ee12
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2 years agofeat(drtm): check drtm arguments during dynamic launch
Manish Pandey [Tue, 21 Jun 2022 14:36:45 +0000 (15:36 +0100)]
feat(drtm): check drtm arguments during dynamic launch

Check the sanity of arguments before dynamic launch.

Change-Id: Iad68f852b09851b0c55a55df6ba16576e105758a
Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Signed-off-by: Lucian Paul-Trifu <lucian.paultrifu@gmail.com>
2 years agofeat(drtm): introduce drtm dynamic launch function
Manish Pandey [Mon, 20 Jun 2022 16:42:41 +0000 (17:42 +0100)]
feat(drtm): introduce drtm dynamic launch function

This function is placeholder for checking all the necessary conditions
before doing drtm dynamic launch.
In this patch following conditions are checked (based on Table 31 of
DRTM spec beta0), rest of the conditions will be added in later
patches.
 - Only boot PE is online
 - Caller execution state is AArch64
 - Caller exception level is NS-EL2 or NS-EL1

Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Change-Id: I622b946bc191bb39f828831336ceafbc10834c19

2 years agorefactor(measured-boot): split out a few Event Log driver functions
Manish V Badarkhe [Wed, 15 Jun 2022 14:06:43 +0000 (15:06 +0100)]
refactor(measured-boot): split out a few Event Log driver functions

Reorganized a few Event Log functions into multiple functions so that
they can be used for the upcoming DRTM feature. This change mainly
implements below new functions -
1. event_log_buf_init - called by 'event_log_init' to initialise Event
   Log buffer
2. event_log_write_specid_event - called by 'event_log_fixed_header' to
   write specification id event to Event Log buffer
3. event_log_measure and event_log_record - called by
   'event_log_measure_and_record' to measure and record the measurement
   to the Event Log buffer

Change-Id: I1aabb57f79bead726fcf36d59839702cd6a3521d
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2 years agofeat(drtm): retrieve DRTM features
Manish V Badarkhe [Thu, 16 Jun 2022 12:46:43 +0000 (13:46 +0100)]
feat(drtm): retrieve DRTM features

Retrieved below DRTM features via DRTM_FEATURES SMC call -
1. TPM features
2. Minimum memory requirement
3. Boot PE ID
4. DMA protection

Change-Id: Ia6dc497259541ce30a6550afa35d95d9a9a366af
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
Signed-off-by: Lucian Paul-Trifu <lucian.paultrifu@gmail.com>
2 years agofeat(drtm): add platform functions for DRTM
johpow01 [Fri, 11 Mar 2022 23:50:58 +0000 (17:50 -0600)]
feat(drtm): add platform functions for DRTM

Added platform hooks to retrieve DRTM features and
address map.
Additionally, implemented these hooks for the FVP platform.

Signed-off-by: John Powell <john.powell@arm.com>
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
Change-Id: I5621cc9807ffff8139ae8876250147f7b2c76759

2 years agofeat(sdei): add a function to return total number of events registered
John Powell [Thu, 12 May 2022 17:49:55 +0000 (12:49 -0500)]
feat(sdei): add a function to return total number of events registered

This patch adds a public API to return the total number of registered
events. The purpose of this is primarily for DRTM to ensure that no
SDEI event can interfere with a dynamic launch.

Signed-off-by: John Powell <john.powell@arm.com>
Change-Id: I1d1cba2da7d5566cc340620ee1ce7d7844740b86

2 years agofeat(drtm): add PCR entries for DRTM
Manish V Badarkhe [Thu, 3 Mar 2022 11:42:27 +0000 (11:42 +0000)]
feat(drtm): add PCR entries for DRTM

Added PCR entries for the measurement performed by the
DCE and D-CRTM in DRTM implementation

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

2 years agofeat(drtm): update drtm setup function
Manish V Badarkhe [Thu, 24 Feb 2022 20:22:39 +0000 (20:22 +0000)]
feat(drtm): update drtm setup function

Updated DRTM setup functionality that mainly does below 2 things
1. Initialise the DRTM DMA protection, this function assumes the
   platform must support complete DMA protection.
2. Initialise the Crypto module that will be useful to calculate
   the hash of various DRTM element involved.

Signed-off-by: Manish V Badarkhe <manish.badarkhe@arm.com>
Signed-off-by: Lucian Paul-Trifu <lucian.paultrifu@gmail.com>
Change-Id: I3d6e4d534686d391fa7626094d2b2535dac74e00

2 years agorefactor(crypto): change CRYPTO_SUPPORT flag to numeric
Manish V Badarkhe [Mon, 20 Jun 2022 14:32:38 +0000 (15:32 +0100)]
refactor(crypto): change CRYPTO_SUPPORT flag to numeric

Updated CRYPTO_SUPPORT flag to numeric to provide below
supports -
1. CRYPTO_SUPPORT = 1 -> Authentication verification only
2. CRYPTO_SUPPORT = 2 -> Hash calculation only
3. CRYPTO_SUPPORT = 3 -> Authentication verification and
                         hash calculation

Change-Id: Ib34f31457a6c87d2356d736ad2d048dc787da56f
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2 years agofeat(mbedtls): update mbedTLS driver for DRTM support
Manish V Badarkhe [Fri, 25 Feb 2022 09:11:12 +0000 (09:11 +0000)]
feat(mbedtls): update mbedTLS driver for DRTM support

Updated mbedTLS driver to include mbedTLS functions necessary for a
DRTM supported build.

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