Commit Graph

9063 Commits

Author SHA1 Message Date
Olivier Deprez b5dd2422a0 docs: spm design document refresh
General refresh of the SPM document.

Change-Id: I2f8e37c3f34bc8511b115f00b9a53b6a6ff41bea
Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
2021-05-12 15:45:27 +02:00
Davidson K ca9324819e feat(tc0): add support for trusted services
This patch adds support for the crypto and secure storage secure
partitions for the Total Compute platform.  These secure partitions
have to be managed by Hafnium executing at S-EL2

Change-Id: I2df690e3a99bf6bf50e2710994a905914a07026e
Signed-off-by: Davidson K <davidson.kumaresan@arm.com>
2021-05-10 18:39:37 +05:30
Madhukar Pappireddy b9a5706c07 docs(release): add change log for v2.5 release
Change log for trusted-firmware-a v2.5 release

Change-Id: I6ffc8a40d2cc3a18145b87f895acdc1400db485a
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
2021-05-07 10:35:36 -05:00
Mark Dykes 57dde21207 Merge "fix(plat/arm_fpga): increase initrd size" into integration 2021-05-07 17:03:01 +02:00
Zelalem 0de60d31b8 docs: add threat model code owners
Signed-off-by: Zelalem Aweke <zelalem.aweke@arm.com>
Change-Id: I97b2c5c5cfbf4ddb055d0f7a5ab04386460db060
2021-05-05 14:00:25 -05:00
Mark Dykes c51afaff0d Merge "docs: removing "upcoming" change log" into integration 2021-05-05 20:49:33 +02:00
laurenw-arm e3bb8666a3 docs: removing "upcoming" change log
Removing the "Upcoming" change log due to the change in change log
processing.

Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com>
Change-Id: I6d2cc095dca3e654bd7e6fec2077c58bfbc48bb5
2021-05-05 12:08:45 -05:00
Andre Przywara c3ce73be0b fix(plat/arm_fpga): increase initrd size
In the comment in the ARM FPGA DT we promise a generous 100 MB initrd,
but actually describe only a size of 20 MB.

As initrds are the most common and easy userland option for the boards,
let's increase the maximum size to the advertised 100 MB, to avoid
unpacking errors when an initrd exceeds the current limit of 20 MB.

Change-Id: If08ba3fabdad27b2c2aff93b18c3f664728b4348
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2021-05-05 13:23:01 +01:00
Mark Dykes a45e0580b3 Merge "docs: revert FVP versions for select models" into integration 2021-05-04 20:54:59 +02:00
laurenw-arm 9cfb878f95 docs: revert FVP versions for select models
Reverting FVP versions to previous version 11.12.38 for Cortex-A32x4
and Neoverse-N2x4.

Change-Id: I81e8ad24794dd425a9e9a66dc8bb02b42191abf1
Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com>
2021-05-04 10:24:44 -05:00
Andre Przywara 67fad514ee fix(services): drop warning on unimplemented calls
Standard Secure Services, complying to the SMCCC specification, are
discoverable: Any user can do the SMC call, and derive from the return
value (-1) if the service is implemented. Consequently we should not
*warn* if BL31 does not implement a service, as some services (TRNG, for
instance) might never be implemented for devices, as they are lacking
hardware.

Short of dropping the existing warning message altogether, change the
level to VERBOSE, which should prevent it actually being printed in
normal situations.

This removes the pointless TF-A messages on the console when booting
Linux, as modern kernels now call the SOCID and the TRNG service
unconditionally.

Change-Id: I08b0b02e0f46322ebe0b40b3991c3c9b5bed4f97
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2021-05-04 10:30:15 +01:00
Pranav Madhu e8b119e03a feat(plat/sgi): enable AMU for RD-V1-MC
AMU counters are used for monitoring the CPU performance. RD-V1-MC
platform has architected AMU available for each core. Enable the use of
AMU by non-secure OS for supporting the use of counters for processor
performance control (ACPI CPPC).

Change-Id: I33be594cee669e7f4031e5e5a371eec7c7451030
Signed-off-by: Pranav Madhu <pranav.madhu@arm.com>
2021-05-03 23:01:03 +05:30
Lauren Wehrmeister 08532d75c0 Merge "docs: update list of supported FVP platforms" into integration 2021-04-30 21:00:28 +02:00
bipin.ravi 9738cf9688 Merge "docs(threat model): add TF-A threat model" into integration 2021-04-30 19:00:19 +02:00
Zelalem 7006f208b6 docs(threat model): add TF-A threat model
This is the first release of the public Trusted
Firmware A class threat model. This release
provides the baseline for future updates to be
applied as required by developments to the
TF-A code base.

Signed-off-by: Zelalem Aweke <zelalem.aweke@arm.com>
Change-Id: I3c9aadc46196837679f0b1377bec9ed4fc42ff11
2021-04-30 17:59:22 +02:00
laurenw-arm 6f09bcced3 docs: update list of supported FVP platforms
Updated the list of supported FVP platforms as per the latest FVP
release.

Change-Id: I1abd0a7885b1133715062ee1b176733556a4820e
Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com>
2021-04-30 10:33:41 -05:00
Manish Pandey 44de593d19 Merge "plat/st: do not rely on tainted value for dt property length" into integration 2021-04-30 13:04:23 +02:00
Manish Pandey 711505f045 Merge changes from topic "imx8mp_fix" into integration
* changes:
  plat: imx8mp: change the bl31 physical load address
  plat: imx8m: Fix the macro define error
2021-04-30 13:01:48 +02:00
Jacky Bai 7f9390d3a3 plat: imx8mp: change the bl31 physical load address
on i.MX8MP A1 silicon, the OCRAM space is extended to 512K + 64K,
currently, OCRAM @0x960000-0x980000 is reserved for BL31, it will
leave the last 64KB in non-continuous space. To provide a continuous
384KB + 64KB space for generic use, so move the BL31 space to
0x970000-0x990000 range.

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Change-Id: I96d572fc0f87f05a60f55e0552a68b6e70f8e7f4
2021-04-30 12:28:41 +02:00
Jacky Bai 8c72a7ab20 plat: imx8m: Fix the macro define error
the 'always_on' member should be initialized from 'on'.

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Change-Id: I5746ff40075b4fcda2ac7d04a8d7f1269af17e91
2021-04-30 12:28:37 +02:00
Manish Pandey dd6efc9ea5 Merge changes I8e67a921,I0dc06072,I5e149063,I962cdfc7,I5c5d0444 into integration
* changes:
  plat: ti: k3: board: Let explicitly map our SEC_SRAM_BASE to 0x0
  plat: ti: k3: board: Lets cast our macros
  plat: ti: k3: common: bl31_setup: Use BL31_SIZE instead of computing
  plat: ti: k3: platform_def.h: Define the correct number of max table entries
  plat: ti: k3: board: lite: Increase SRAM size to account for additional table
2021-04-30 12:23:04 +02:00
Olivier Deprez 674803667e Merge "feat(tc0): update Matterhorn ELP DVFS clock index" into integration 2021-04-30 11:12:54 +02:00
Usama Arif a2f6294c98 feat(tc0): update Matterhorn ELP DVFS clock index
This allows the the Matterhorn ELP Arm core to operate at its
designated OPP.

Signed-off-by: Usama Arif <usama.arif@arm.com>
Change-Id: I7ccef0cfd079d630c3cfe7874590bf42789a1dca
2021-04-30 10:39:08 +02:00
Olivier Deprez 5c3bcfcdf4 Merge "docs: remove PSA wording for SPM chapters" into integration 2021-04-30 09:56:45 +02:00
Olivier Deprez 8ff71de7cd Merge "revert(commitlint): disable `signed-off-by` rule" into integration 2021-04-30 09:32:12 +02:00
Olivier Deprez 1b17f4f1f8 docs: remove PSA wording for SPM chapters
PSA wording is not longer associated with FF-A.

Change-Id: Id7c53b9c6c8f383543f6a32a15eb15b7749d8658
Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
2021-04-30 08:44:26 +02:00
Yann Gautier f714ca80b8 plat/st: do not rely on tainted value for dt property length
To compare the "okay" string of a property, strncmp is used but with the
length given by fdt_getprop. This len value is reported as tainted by
Coverity [1]. We just can use strlen("okay") which is a known value
to compare the 2 strings.

 [1] https://scan4.coverity.com/reports.htm#v51972/p11439/fileInstanceId=96515154&defectInstanceId=14219121&mergedDefectId=342997

Signed-off-by: Yann Gautier <yann.gautier@foss.st.com>
Change-Id: Ic8fb6ccf3126a37df615e433eb028861812015da
2021-04-29 17:57:47 +02:00
Olivier Deprez 6794378d2e Merge changes from topic "fw-update" into integration
* changes:
  docs: add build options for GPT support enablement
  feat(plat/arm): add GPT parser support
2021-04-29 14:49:10 +02:00
Manish Pandey 08e7cc533e Merge changes I15e7cc43,Id7411bd5,I92bafe70,I8f1c0658 into integration
* changes:
  stm32mp1: enable PIE for BL32
  stm32mp1: set BL sizes regardless of flags
  Add PIE support for AARCH32
  Avoid the use of linker *_SIZE__ macros
2021-04-29 13:57:31 +02:00
Manish V Badarkhe e3be1086c4 docs: add build options for GPT support enablement
Documented the build options used in Arm GPT parser enablement.

Change-Id: I9d7ef2f44b8f9d2731dd17c2639e5ed0eb6d0b3a
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2021-04-29 11:13:08 +02:00
Manish V Badarkhe ef1daa420f feat(plat/arm): add GPT parser support
Added GPT parser support in BL2 for Arm platforms to get the entry
address and length of the FIP in the GPT image.

Also, increased BL2 maximum size for FVP platform to successfully
compile ROM-enabled build with this change.

Verified this change using a patch:
https://review.trustedfirmware.org/c/ci/tf-a-ci-scripts/+/9654

Change-Id: Ie8026db054966653b739a82d9ba106d283f534d0
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2021-04-29 10:11:06 +01:00
Mark Dykes 800b8849c0 Merge "refactor(plat/arm): replace FIP base and size macro with a generic name" into integration 2021-04-28 21:16:20 +02:00
Mark Dykes 081c5e5afd Merge "refactor(plat/arm): store UUID as a string, rather than ints" into integration 2021-04-28 21:08:35 +02:00
Mark Dykes b29dec5c21 Merge "feat(fdt): introduce wrapper function to read DT UUIDs" into integration 2021-04-28 21:07:28 +02:00
Mark Dykes 2ba56793d1 Merge "fix(driver/auth): avoid NV counter upgrade without certificate validation" into integration 2021-04-28 21:02:12 +02:00
Madhukar Pappireddy 50b11c3c2b Merge changes from topic "mp/update_release_timelines" into integration
* changes:
  docs: update release information for v2.6
  docs: update code freeze & target date for v2.5
2021-04-28 17:31:23 +02:00
Madhukar Pappireddy 1328076cdd docs: update release information for v2.6
Updated tentative code freeze and release target date for v2.6
release.

Change-Id: I3dd6cfef1a07f3e0159ec7996d18f6cbcb975da7
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
2021-04-28 08:03:31 -05:00
Madhukar Pappireddy a6edefe008 docs: update code freeze & target date for v2.5
Updated code freeze and release target date for v2.5 release.

Change-Id: I72850eed2aa77d3adecaf71d74e9ecebcc36d5b4
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
2021-04-28 08:03:31 -05:00
Olivier Deprez 967f0621b9 Merge changes from topic "mit-license" into integration
* changes:
  fix(dt-bindings): fix static checks
  docs(license): rectify `arm-gic.h` license
2021-04-28 14:36:20 +02:00
David Horstmann 7d111d99c6 refactor(plat/arm): store UUID as a string, rather than ints
NOTE: Breaking change to the way UUIDs are stored in the DT

Currently, UUIDs are stored in the device tree as
sequences of 4 integers. There is a mismatch in endianness
between the way UUIDs are represented in memory and the way
they are parsed from the device tree. As a result, we must either
store the UUIDs in little-endian format in the DT (which means
that they do not match up with their string representations)
or perform endianness conversion after parsing them.

Currently, TF-A chooses the second option, with unwieldy
endianness-conversion taking place after reading a UUID.

To fix this problem, and to make it convenient to copy and
paste UUIDs from other tools, change to store UUIDs in string
format, using a new wrapper function to parse them from the
device tree.

Change-Id: I38bd63c907be14e412f03ef0aab9dcabfba0eaa0
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2021-04-28 12:13:58 +01:00
David Horstmann d13dbb6f1d feat(fdt): introduce wrapper function to read DT UUIDs
TF-A does not have the capability to read UUIDs in string form
from the device tree. This capability is useful for readability,
so add a wrapper function, fdtw_read_uuid() to parse UUIDs from
the DT.
This function should parse a string of the form:

"aabbccdd-eeff-4099-8877-665544332211"

to the byte sequence in memory:

[aa bb cc dd ee ff 40 99 88 77 66 55 44 33 22 11]

Change-Id: I99a92fbeb40f4f4713f3458b36cb3863354d2bdf
Signed-off-by: David Horstmann <david.horstmann@arm.com>
2021-04-28 12:13:12 +01:00
Manish V Badarkhe 49e9ac2811 refactor(plat/arm): replace FIP base and size macro with a generic name
Replaced PLAT_ARM_FIP_BASE and PLAT_ARM_FIP_MAX_SIZE macro with a
generic name PLAT_ARM_FLASH_IMAGE_BASE and PLAT_ARM_FLASH_IMAGE_MAX_SIZE
so that these macros can be reused in the subsequent GPT based support
changes.

Change-Id: I88fdbd53e1966578af4f1e8e9d5fef42c27b1173
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2021-04-28 11:50:35 +01:00
Manish Pandey 067cb3aedf Merge changes I2c9aecc9,Ie6a019f4,Ief6f0a63,Iec9c80f2 into integration
* changes:
  fdts: stm32mp1: add support for the Seeed Odyssey SoM and board
  fdts: stm32mp1: add alternative SDMMC2 pins to the pinctrl
  fdts: stm32mp1: add I2C2 pins in the pinctrl
  fdts: stm32mp1: add the I2C2 peripheral in the SoC DTS
2021-04-28 10:49:11 +02:00
Manish Pandey 5d3cf7450b Merge "plat: marvell: armada: a3k: Add new compile option A3720_DB_PM_WAKEUP_SRC" into integration 2021-04-27 19:54:16 +02:00
Pali Rohár f2800a472e plat: marvell: armada: a3k: Add new compile option A3720_DB_PM_WAKEUP_SRC
This new compile option is only for Armada 3720 Development Board. When
it is set to 1 then TF-A will setup PM wake up src configuration.

By default this new option is disabled as it is board specific and no
other A37xx board has PM wake up src configuration.

Currently neither upstream U-Boot nor upstream Linux kernel has wakeup
support for A37xx platforms, so having it disabled does not cause any
issue.

Prior this commit PM wake up src configuration specific for Armada 3720
Development Board was enabled for every A37xx board. After this change it
is enabled only when compiling with build flag A3720_DB_PM_WAKEUP_SRC=1

Signed-off-by: Pali Rohár <pali@kernel.org>
Change-Id: I09fea1172c532df639acb3bb009cfde32d3c5766
2021-04-27 18:00:03 +02:00
Chris Kay 8a73b563e5 revert(commitlint): disable `signed-off-by` rule
The `signed-off-by` rule does not correctly detect the `Signed-off-by:`
trailer if it's not the last trailer. Therefore, this rule has been
disabled until we can resolve this in the commitlint upstream.

Change-Id: I50ea29067528f3c1c25beeea5eb25134b25b2af2
Signed-off-by: Chris Kay <chris.kay@arm.com>
2021-04-27 16:12:10 +01:00
Manish V Badarkhe a2a5a94569 fix(driver/auth): avoid NV counter upgrade without certificate validation
Platform NV counter get updated (if cert NV counter > plat NV counter)
before authenticating the certificate if the platform specifies NV
counter method before signature authentication in its CoT, and this
provides an opportunity for a tempered certificate to upgrade the
platform NV counter. This is theoretical issue, as in practice none
of the standard CoT (TBBR, dualroot) or upstream platforms ones (NXP)
exercised this issue.

To fix this issue, modified the auth_nvctr method to do only NV
counter check, and flags if the NV counter upgrade is needed or not.
Then ensured that the platform NV counter gets upgraded with the NV
counter value from the certificate only after that certificate gets
authenticated.

This change is verified manually by modifying the CoT that specifies
certificate with:
1. NV counter authentication before signature authentication
   method
2. NV counter authentication method only

Change-Id: I1ad17f1a911fb1035a1a60976cc26b2965b05166
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
2021-04-27 14:16:59 +01:00
Manish Pandey d355565165 Merge changes from topic "rd_plat_variants" into integration
* changes:
  feat(board/rdn2): add support for variant 1 of rd-n2 platform
  feat(plat/sgi): introduce platform variant build option
2021-04-27 15:03:20 +02:00
Alexei Fedorov 0861fcdd3e fix(dt-bindings): fix static checks
This patch fixes static checks errors reported for missing copyright in
`include/dt-bindings/interrupt-controller/arm-gic.h` and the include
order of header files in `.dts` and `.dtsi` files.

Change-Id: I2baaf2719fd2c84cbcc08a8f0c4440a17a9f24f6
Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Signed-off-by: Chris Kay <chris.kay@arm.com>
2021-04-27 13:16:56 +01:00
Aditya Angadi fe5d5bbfe6 feat(board/rdn2): add support for variant 1 of rd-n2 platform
Add board support for RD-N2 Cfg1 variant of RD-N2 platform. It is a
variant of RD-N2 platform with a reduced interconnect mesh size (3x3)
and core count (8-cores). Its platform variant id is 1.

Change-Id: I34ad35c5a5c1e9b69a658fb92ed00e5bc5fe72f3
Signed-off-by: Aditya Angadi <aditya.angadi@arm.com>
2021-04-27 16:29:52 +05:30