]> git.baikalelectronics.ru Git - arm-tf.git/log
arm-tf.git
22 months agofix(plat/css): fix invalid redistributor poweroff
Waleed Elmelegy [Mon, 16 Jan 2023 15:10:38 +0000 (15:10 +0000)]
fix(plat/css): fix invalid redistributor poweroff

Commit 4d8c18196378824e388cf31ef991ba8fbbb09cbf
introduced an invalid redistributor power off
where we turn off the redistributor without
checking if the system power domain level is
turning off, otherwise we can turn off a
redistributor when other cores or clusters are
sharing it, also if it does indeed needs
powering off during suspend we do it twice.
This change fixes this by checking on the
system power state first then turning off
the redistributor.

Signed-off-by: Waleed Elmelegy <waleed.elmelegy@arm.com>
Change-Id: Id202bc2316ab7c516298fa33ea089ae2e221a933

22 months agoMerge changes from topic "st_dt_update" into integration
Manish Pandey [Tue, 17 Jan 2023 16:43:29 +0000 (17:43 +0100)]
Merge changes from topic "st_dt_update" into integration

* changes:
  refactor(stm32mp15-fdts): remove unused PMIC nodes
  fix(stm32mp15-fdts): use interrupts-extended for i2c2
  style(stm32mp15-fdts): remove extra spaces on vbus

22 months agoMerge changes from topic "ti-k3-checks-and-refactor" into integration
Madhukar Pappireddy [Mon, 16 Jan 2023 20:46:50 +0000 (21:46 +0100)]
Merge changes from topic "ti-k3-checks-and-refactor" into integration

* changes:
  fix(ti): fix typo in boot authentication message name
  refactor(ti): remove empty validate_ns_entrypoint function
  refactor(ti): use console_set_scope() rather than empty function hack
  refactor(ti): factor out common board code into common files
  feat(ti): add PSCI system_off support
  feat(ti): do not handle EAs in EL3
  feat(ti): set snoop-delayed exclusive handling on A72 cores
  feat(ti): disable L2 dataless UniqueClean evictions
  feat(ti): set L2 cache ECC and and parity on A72 cores
  feat(ti): set L2 cache data ram latency on A72 cores to 4 cycles

22 months agoMerge changes from topic "deprecate_io_drivers" into integration
Manish Pandey [Mon, 16 Jan 2023 15:45:37 +0000 (16:45 +0100)]
Merge changes from topic "deprecate_io_drivers" into integration

* changes:
  refactor(st): remove unused io_mmc driver
  docs: deprecate io_dummy driver

22 months agoMerge changes from topic "refactor_st_common" into integration
Manish Pandey [Mon, 16 Jan 2023 15:44:17 +0000 (16:44 +0100)]
Merge changes from topic "refactor_st_common" into integration

* changes:
  refactor(st): move board info in common code
  refactor(st): move GIC code to common directory
  refactor(st): move boot backup register management

22 months agoMerge "feat(versal-net): add support for uart1 console" into integration
Joanna Farley [Mon, 16 Jan 2023 13:45:05 +0000 (14:45 +0100)]
Merge "feat(versal-net): add support for uart1 console" into integration

22 months agoMerge "docs(security): security advisory for CVE-2022-47630" into integration
Sandrine Bailleux [Mon, 16 Jan 2023 13:23:39 +0000 (14:23 +0100)]
Merge "docs(security): security advisory for CVE-2022-47630" into integration

22 months agodocs(security): security advisory for CVE-2022-47630
Sandrine Bailleux [Fri, 13 Jan 2023 08:49:34 +0000 (09:49 +0100)]
docs(security): security advisory for CVE-2022-47630

Reported-by: Demi Marie Obenour <demiobenour@gmail.com>
Co-authored-by: Demi Marie Obenour <demiobenour@gmail.com>
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
Change-Id: I20be2d280437eb223c988e2bf59c4562515817a0

22 months agofeat(versal-net): add support for uart1 console
Akshay Belsare [Fri, 13 Jan 2023 09:10:37 +0000 (14:40 +0530)]
feat(versal-net): add support for uart1 console

Versal NET platform supports two UART(UART0, UART1)
Add support for UART1 to be used as console for Versal NET platform.

Change-Id: I3bc2034f54052e37cc480f98d48335fa5b2138bf
Signed-off-by: Akshay Belsare <akshay.belsare@amd.com>
22 months agoMerge "refactor(el3_runtime): remove unnecessary assembly macros" into integration
Manish Pandey [Fri, 13 Jan 2023 10:19:52 +0000 (11:19 +0100)]
Merge "refactor(el3_runtime): remove unnecessary assembly macros" into integration

22 months agoMerge "fix(mpam): remove unwanted param for "endfunc" macro" into integration
Manish Pandey [Fri, 13 Jan 2023 09:07:42 +0000 (10:07 +0100)]
Merge "fix(mpam): remove unwanted param for "endfunc" macro" into integration

22 months agofix(ti): fix typo in boot authentication message name
Andrew Davis [Tue, 10 Jan 2023 18:34:20 +0000 (12:34 -0600)]
fix(ti): fix typo in boot authentication message name

Fix AUTH_BOOT message identifier (s/IMIAGE/IMAGE).

Reported-by: Jorge Ramirez-Ortiz <jorge@foundries.io>
Signed-off-by: Andrew Davis <afd@ti.com>
Change-Id: I19eb1798c6b9dd8c3f59e05c59318c9c3be971a0

22 months agorefactor(ti): remove empty validate_ns_entrypoint function
Andrew Davis [Wed, 16 Nov 2022 00:11:25 +0000 (18:11 -0600)]
refactor(ti): remove empty validate_ns_entrypoint function

Signed-off-by: Andrew Davis <afd@ti.com>
Change-Id: I93165e9f26f5a5b600e7b6a9d48df75d62e89f17

22 months agorefactor(ti): use console_set_scope() rather than empty function hack
Andrew Davis [Wed, 16 Nov 2022 00:04:41 +0000 (18:04 -0600)]
refactor(ti): use console_set_scope() rather than empty function hack

Signed-off-by: Andrew Davis <afd@ti.com>
Change-Id: I62c1215bc02e95a7ea9fa1e2dfa9ef05e204fce1

22 months agorefactor(ti): factor out common board code into common files
Andrew Davis [Fri, 11 Nov 2022 18:49:38 +0000 (12:49 -0600)]
refactor(ti): factor out common board code into common files

Signed-off-by: Andrew Davis <afd@ti.com>
Change-Id: Ibf7328418c5285a64608b80e7c430a8dee64fb1d

22 months agofeat(ti): add PSCI system_off support
Andrew Davis [Wed, 16 Nov 2022 00:08:16 +0000 (18:08 -0600)]
feat(ti): add PSCI system_off support

Send a TI-SCI control message to system firmware to power down the board.

Signed-off-by: Andrew Davis <afd@ti.com>
Change-Id: I6b8fa64baa94da078db82fc8e115630c9f200b3d

22 months agofeat(ti): do not handle EAs in EL3
Andrew Davis [Tue, 27 Sep 2022 12:13:21 +0000 (07:13 -0500)]
feat(ti): do not handle EAs in EL3

This could be useful if we had extra information to print or
when RAS extensions are available, neither apply here so lets
not trap these in EL3 for now.

Signed-off-by: Andrew Davis <afd@ti.com>
Change-Id: Ia0334eb845686964e794afe45c7777ea64fd6b0b

22 months agofeat(ti): set snoop-delayed exclusive handling on A72 cores
Andrew Davis [Thu, 12 Jan 2023 15:32:33 +0000 (09:32 -0600)]
feat(ti): set snoop-delayed exclusive handling on A72 cores

Snoop requests should not be responded to during atomic operations. This
can be handled by the interconnect using its global monitor or by the
core's SCU delaying to check for the corresponding atomic monitor state.

TI SoCs take the second approach. Set the snoop-delayed exclusive handling
bit to inform the core it needs to delay responses to perform this check.

As J784s4 is currently the only SoC with multiple A72 clusters, limit
this delay to only that device.

Signed-off-by: Andrew Davis <afd@ti.com>
Change-Id: I875f64e4f53d47a9a0ccbf3415edc565be7f84d9

22 months agofeat(ti): disable L2 dataless UniqueClean evictions
Andrew Davis [Thu, 1 Sep 2022 16:02:59 +0000 (11:02 -0500)]
feat(ti): disable L2 dataless UniqueClean evictions

Do this early before we enable caching as a workaround for ARM A72
Errata #854172.

Signed-off-by: Andrew Davis <afd@ti.com>
Change-Id: Ic878fdb49e598da0ea6ade012712f8f57023678e

22 months agofeat(ti): set L2 cache ECC and and parity on A72 cores
Andrew Davis [Tue, 10 Jan 2023 19:25:42 +0000 (13:25 -0600)]
feat(ti): set L2 cache ECC and and parity on A72 cores

The Cortex-A72 based cores on K3 platforms have cache ECC and
parity protection, enable these.

Signed-off-by: Andrew Davis <afd@ti.com>
Change-Id: Icd00bc4aa9c1c48f0fb2a10ea66e75e0b146ef3c

22 months agofeat(ti): set L2 cache data ram latency on A72 cores to 4 cycles
Andrew Davis [Tue, 10 Jan 2023 19:14:37 +0000 (13:14 -0600)]
feat(ti): set L2 cache data ram latency on A72 cores to 4 cycles

The Cortex-A72 based cores on K3 platforms can be clocked fast
enough that an extra latency cycle is needed to ensure correct
L2 access. Set the latency here for all A72 cores.

Signed-off-by: Andrew Davis <afd@ti.com>
Change-Id: I639091dd0d2de09572bf0f73ac404e306e336883

22 months agoMerge changes from topic "tonnad01/rdn2cfg3" into integration
Manish V Badarkhe [Thu, 12 Jan 2023 21:15:40 +0000 (22:15 +0100)]
Merge changes from topic "tonnad01/rdn2cfg3" into integration

* changes:
  feat(rdn2): add platform id value for rdn2 variant 3
  refactor(rdn2): reduce use of CSS_SGI_PLATFORM_VARIANT build flag

22 months agoMerge changes Id4570f91,Ibdf1af70 into integration
Sandrine Bailleux [Thu, 12 Jan 2023 19:36:08 +0000 (20:36 +0100)]
Merge changes Id4570f91,Ibdf1af70 into integration

* changes:
  fix(auth): properly validate X.509 extensions
  fix(auth): avoid out-of-bounds read in auth_nvctr()

22 months agofeat(rdn2): add platform id value for rdn2 variant 3
Tony K Nadackal [Wed, 24 Nov 2021 16:09:26 +0000 (16:09 +0000)]
feat(rdn2): add platform id value for rdn2 variant 3

The RD-N2-Cfg3 platform is a variant of the RD-N2 platform with the
significant difference being the number of ITS blocks and the use of a
different part number.

Signed-off-by: Tony K Nadackal <tony.nadackal@arm.com>
Change-Id: Id4c5faeae44f21da79cb59540558192d0b02b124

22 months agorefactor(rdn2): reduce use of CSS_SGI_PLATFORM_VARIANT build flag
Tony K Nadackal [Sat, 12 Nov 2022 23:21:20 +0000 (23:21 +0000)]
refactor(rdn2): reduce use of CSS_SGI_PLATFORM_VARIANT build flag

The core count is one of the significant difference between the various
RD-N2 platform variants. The PLAT_ARM_CLUSTER_COUNT macro defines the
number of core/cluster for a variant. In preparation to add another
variant of RD-N2 platform, replace the use of CSS_SGI_PLATFORM_VARIANT
build flag, where applicable, with the PLAT_ARM_CLUSTER_COUNT macro.
This helps to reduce the changes required to add support for a new
variant.

Signed-off-by: Tony K Nadackal <tony.nadackal@arm.com>
Change-Id: I89b168308d1b5f7edd402205dd25d6c3a355e100

22 months agoMerge changes from topic "fix-power-up-dwn-issue" into integration
Joanna Farley [Thu, 12 Jan 2023 10:11:28 +0000 (11:11 +0100)]
Merge changes from topic "fix-power-up-dwn-issue" into integration

* changes:
  fix(versal-net): enable wake interrupt during client suspend
  fix(versal-net): disable wakeup interrupt during client wakeup
  fix(versal-net): clear power down bit during wakeup
  fix(versal-net): fix setting power down state
  fix(versal-net): clear power down interrupt status before enable
  fix(versal-net): resolve misra rule 20.7 warnings
  fix(versal-net): resolve misra 10.6 warnings

22 months agoMerge "fix(versal): print proper atf handoff source" into integration
Joanna Farley [Thu, 12 Jan 2023 10:08:52 +0000 (11:08 +0100)]
Merge "fix(versal): print proper atf handoff source" into integration

22 months agoMerge "fix(cpus): workaround for Cortex-X2 erratum 2282622" into integration
Madhukar Pappireddy [Wed, 11 Jan 2023 21:06:28 +0000 (22:06 +0100)]
Merge "fix(cpus): workaround for Cortex-X2 erratum 2282622" into integration

22 months agoMerge "fix(cpus): workaround for Cortex-A710 erratum 2282622" into integration
Lauren Wehrmeister [Wed, 11 Jan 2023 19:57:27 +0000 (20:57 +0100)]
Merge "fix(cpus): workaround for Cortex-A710 erratum 2282622" into integration

22 months agofix(cpus): workaround for Cortex-X2 erratum 2282622
Bipin Ravi [Thu, 22 Dec 2022 20:19:59 +0000 (14:19 -0600)]
fix(cpus): workaround for Cortex-X2 erratum 2282622

Cortex-X2 erratum 2282622 is a Cat B erratum that applies to
all revisions <=r2p1 and is still open. The workaround is to set
CPUACTLR2_EL1[0] to 1 to force PLDW/PFRM ST to behave like
PLD/PRFM LD and not cause invalidations to other PE caches.

SDEN documentation:
https://developer.arm.com/documentation/SDEN1775100/latest

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

22 months agofix(versal): print proper atf handoff source
Akshay Belsare [Wed, 11 Jan 2023 06:15:25 +0000 (11:45 +0530)]
fix(versal): print proper atf handoff source

Versal uses PLM in the boot flow and printing FSBL in the log for
handoff parameters is misleading. Print proper source of TF-A
handoff parameters.

Change-Id: I331e2eac2f5d30beed8573940ae02094254a759b
Signed-off-by: Akshay Belsare <akshay.belsare@amd.com>
22 months agorefactor(el3_runtime): remove unnecessary assembly macros
Manish Pandey [Fri, 6 Jan 2023 13:38:03 +0000 (13:38 +0000)]
refactor(el3_runtime): remove unnecessary assembly macros

Following macros removed
  - handle_async_ea : It duplicates "check_and_unmask_ea" functionality
  - check_if_serror_from_EL3: This macro is small and called only once,
    replace this macro with instructions at the caller.

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

22 months agofix(auth): properly validate X.509 extensions
Demi Marie Obenour [Fri, 9 Dec 2022 22:19:08 +0000 (17:19 -0500)]
fix(auth): properly validate X.509 extensions

get_ext() does not check the return value of the various mbedtls_*
functions, as cert_parse() is assumed to have guaranteed that they will
always succeed.  However, it passes the end of an extension as the end
pointer to these functions, whereas cert_parse() passes the end of the
TBSCertificate.  Furthermore, cert_parse() does *not* check that the
contents of the extension have the same length as the extension itself.
Before fd37982a19a4a291 ("fix(auth): forbid junk after extensions"),
cert_parse() also does not check that the extension block extends to the
end of the TBSCertificate.

This is a problem, as mbedtls_asn1_get_tag() leaves *p and *len
undefined on failure.  In practice, this results in get_ext() continuing
to parse at different offsets than were used (and validated) by
cert_parse(), which means that the in-bounds guarantee provided by
cert_parse() no longer holds.

This patch fixes the remaining flaw by enforcing that the contents of an
extension are the same length as the extension itself.

Change-Id: Id4570f911402e34d5d6c799ae01a01f184c68d7c
Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
22 months agofix(auth): avoid out-of-bounds read in auth_nvctr()
Demi Marie Obenour [Fri, 9 Dec 2022 23:21:47 +0000 (18:21 -0500)]
fix(auth): avoid out-of-bounds read in auth_nvctr()

auth_nvctr() does not check that the buffer provided is long enough to
hold an ASN.1 INTEGER, or even that the buffer is non-empty.  Since
auth_nvctr() will only ever read 6 bytes, it is possible to read up to
6 bytes past the end of the buffer.

This out-of-bounds read turns out to be harmless.  The only caller of
auth_nvctr() always passes a pointer into an X.509 TBSCertificate, and
all in-tree chains of trust require that the certificate’s signature has
already been validated.  This means that the signature algorithm
identifier is at least 4 bytes and the signature itself more than that.
Therefore, the data read will be from the certificate itself.  Even if
the certificate signature has not been validated, an out-of-bounds read
is still not possible.  Since there are at least two bytes (tag and
length) in both the signature algorithm ID and the signature itself, an
out-of-bounds read would require that the tag byte of the signature
algorithm ID would need to be either the tag or length byte of the
DER-encoded nonvolatile counter.  However, this byte must be
(MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE) (0x30), which is
greater than 4 and not equal to MBEDTLS_ASN1_INTEGER (2).  Therefore,
auth_nvctr() will error out before reading the integer itself,
preventing an out-of-bounds read.

Change-Id: Ibdf1af702fbeb98a94c0c96456ebddd3d392ad44
Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
22 months agoMerge changes from topic "bk/warnings" into integration
Manish Pandey [Tue, 10 Jan 2023 10:56:42 +0000 (11:56 +0100)]
Merge changes from topic "bk/warnings" into integration

* changes:
  docs: describe the new warning levels
  build: add -Wunused-const-variable=2 to W=2
  build: include -Wextra in generic builds
  docs(porting-guide): update a reference
  fix(st-usb): replace redundant checks with asserts
  fix(brcm): add braces around bodies of conditionals
  fix(renesas): align incompatible function pointers
  fix(zynqmp): remove redundant api_version check
  fix: remove old-style declarations
  fix: unify fallthrough annotations

22 months agofix(versal-net): enable wake interrupt during client suspend
Jay Buddhabhatti [Fri, 30 Dec 2022 05:54:44 +0000 (21:54 -0800)]
fix(versal-net): enable wake interrupt during client suspend

Wakeup interrupt should be set during power down sequence to wake
processor. So enable wakeup interrupt during power down sequence.

Signed-off-by: Jay Buddhabhatti <jay.buddhabhatti@amd.com>
Change-Id: I1154495c25e0468496f6e112996fd182aa516d88

22 months agofix(versal-net): disable wakeup interrupt during client wakeup
Jay Buddhabhatti [Fri, 30 Dec 2022 06:21:00 +0000 (22:21 -0800)]
fix(versal-net): disable wakeup interrupt during client wakeup

Clear and disable wakeup interrupt during client wakeup to avoid
multiple wakeup events.

Signed-off-by: Jay Buddhabhatti <jay.buddhabhatti@amd.com>
Change-Id: Iebc644ae582da03001830b96e3190fce10dbac42

22 months agofix(versal-net): clear power down bit during wakeup
Jay Buddhabhatti [Fri, 30 Dec 2022 06:15:19 +0000 (22:15 -0800)]
fix(versal-net): clear power down bit during wakeup

Power down bit and power down interrupt needs to be cleared once core
is wakeup to avoid unnecessary power down events. So disable power down
interrupt and clear power down bit during client wakeup.

Signed-off-by: Jay Buddhabhatti <jay.buddhabhatti@amd.com>
Change-Id: I3445991692c441831e4ea8dae112e23b19f185a9

22 months agofix(versal-net): fix setting power down state
Jay Buddhabhatti [Fri, 30 Dec 2022 05:58:35 +0000 (21:58 -0800)]
fix(versal-net): fix setting power down state

Versal NET is supporting max power state to AFF_LVL_2 so set power state
for all affinity level instead of setting for only AFF_LVL_0.

Signed-off-by: Jay Buddhabhatti <jay.buddhabhatti@amd.com>
Change-Id: I55a91e798b7566d2f34d7cb1fe28ca25993a7d8e

22 months agofix(versal-net): clear power down interrupt status before enable
Jay Buddhabhatti [Fri, 30 Dec 2022 05:47:54 +0000 (21:47 -0800)]
fix(versal-net): clear power down interrupt status before enable

Currently power down interrupt status is set by default before its
getting enabled. Because of that Linux is getting crashed since its
triggering interrupt before core goes to WFI state. So clear interrupt
status before enabling power down interrupt.

Signed-off-by: Jay Buddhabhatti <jay.buddhabhatti@amd.com>
Change-Id: Ia8d047b6078a49ab3dbe3e0bf24422357f0138c2

22 months agofix(versal-net): resolve misra rule 20.7 warnings
Jay Buddhabhatti [Mon, 9 Jan 2023 12:46:54 +0000 (04:46 -0800)]
fix(versal-net): resolve misra rule 20.7 warnings

Fix below MISRA violation from versal_net_def.h:
 - MISRA Violation: MISRA-C:2012 R.10.6:
   - Macro parameter expands into an expression without being wrapped
     by parentheses.

Signed-off-by: Jay Buddhabhatti <jay.buddhabhatti@amd.com>
Change-Id: Ie365d24c02bb38163005a3c073642d5c96412e2d

22 months agofix(versal-net): resolve misra 10.6 warnings
Jay Buddhabhatti [Mon, 9 Jan 2023 12:33:25 +0000 (04:33 -0800)]
fix(versal-net): resolve misra 10.6 warnings

Fix below MISRA violation from versal_net_def.h:
 - MISRA Violation: MISRA-C:2012 R.10.6
  - The value of a composite expression shall not be assigned to an
    object with wider essential type

Signed-off-by: Jay Buddhabhatti <jay.buddhabhatti@amd.com>
Change-Id: I74f8e5d63523f33d245a21f8e4f04d30e40b05e7

22 months agofix(cpus): workaround for Cortex-A710 erratum 2282622
Bipin Ravi [Thu, 22 Dec 2022 19:31:46 +0000 (13:31 -0600)]
fix(cpus): workaround for Cortex-A710 erratum 2282622

Cortex-A710 erratum 2282622 is a Cat B erratum that applies to
all revisions <=r2p1 and is still open. The workaround was earlier
applied to all revisions <= r2p0, this patch extends it to r2p1.
This was thought to have been fixed in r2p1 which is not the case.

SDEN documentation:
https://developer.arm.com/documentation/SDEN1775101/latest

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

22 months agofix(mpam): remove unwanted param for "endfunc" macro
Rohit Mathew [Tue, 18 Oct 2022 21:57:06 +0000 (22:57 +0100)]
fix(mpam): remove unwanted param for "endfunc" macro

"endfunc" macro is used to mark the end of a function. It takes the
function label as an argument. For el2_sysregs_context_save_mpam
function, "endfunc" has been called with an assumed typo, "func", along
with the function label. Remove this unwanted param to fix the endfunc
call.

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

22 months agoMerge "docs(changelog): add console scope" into integration
Madhukar Pappireddy [Mon, 9 Jan 2023 15:45:52 +0000 (16:45 +0100)]
Merge "docs(changelog): add console scope" into integration

22 months agoMerge "fix(libc): properly define SCHAR_MIN" into integration
Madhukar Pappireddy [Mon, 9 Jan 2023 15:14:42 +0000 (16:14 +0100)]
Merge "fix(libc): properly define SCHAR_MIN" into integration

22 months agoMerge "docs(maintainers): update maintainers for total compute" into integration
Manish V Badarkhe [Mon, 9 Jan 2023 14:32:16 +0000 (15:32 +0100)]
Merge "docs(maintainers): update maintainers for total compute" into integration

22 months agodocs(maintainers): update maintainers for total compute
Rupinderjit Singh [Thu, 5 Jan 2023 14:34:59 +0000 (14:34 +0000)]
docs(maintainers): update maintainers for total compute

Signed-off-by: Rupinderjit Singh <rupinderjit.singh@arm.com>
Change-Id: I64e7b036f404da110339d9013aa5c17ed8bf100f

22 months agoMerge "fix(plat/tc): increase TC_TZC_DRAM1_SIZE" into integration
Manish V Badarkhe [Mon, 9 Jan 2023 13:15:49 +0000 (14:15 +0100)]
Merge "fix(plat/tc): increase TC_TZC_DRAM1_SIZE" into integration

22 months agodocs(changelog): add console scope
Yann Gautier [Fri, 6 Jan 2023 16:05:48 +0000 (17:05 +0100)]
docs(changelog): add console scope

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

22 months agoMerge "fix(fconf): make struct fconf_populator static" into integration
Madhukar Pappireddy [Fri, 6 Jan 2023 15:44:20 +0000 (16:44 +0100)]
Merge "fix(fconf): make struct fconf_populator static" into integration

22 months agofix(libc): properly define SCHAR_MIN
Yann Gautier [Fri, 6 Jan 2023 13:18:25 +0000 (14:18 +0100)]
fix(libc): properly define SCHAR_MIN

SCHAR_MIN definition should use SCHAR_MAX, and not itself.

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

22 months agofix(fconf): make struct fconf_populator static
Yann Gautier [Fri, 18 Nov 2022 13:04:03 +0000 (14:04 +0100)]
fix(fconf): make struct fconf_populator static

In FCONF_REGISTER_POPULATOR macro, add static for the fconf_populator
struct. This avoids this kind of sparse warning:
plat/st/common/stm32mp_fconf_io.c:181:1: warning:
 symbol 'stm32mp_io__populator' was not declared. Should it be static?

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

22 months agoMerge "feat(mt8188): update INFRA IOMMU enable flow" into integration
Olivier Deprez [Fri, 6 Jan 2023 08:38:25 +0000 (09:38 +0100)]
Merge "feat(mt8188): update INFRA IOMMU enable flow" into integration

22 months agofeat(mt8188): update INFRA IOMMU enable flow
Chengci.Xu [Fri, 30 Dec 2022 05:33:04 +0000 (13:33 +0800)]
feat(mt8188): update INFRA IOMMU enable flow

IOMMU kernel driver has changed the function parameters, so update
IOMMU TF-A driver to be consistent with it.

Change-Id: I2adda69bdbdc31833781fac5e6c1f4b10da161be
Signed-off-by: Chengci.Xu <chengci.xu@mediatek.com>
22 months agoMerge changes from topic "fvp_trap_rng" into integration
Manish Pandey [Wed, 4 Jan 2023 17:51:40 +0000 (18:51 +0100)]
Merge changes from topic "fvp_trap_rng" into integration

* changes:
  feat(fvp): emulate trapped RNDR
  feat(el3-runtime): introduce system register trap handler

22 months agorefactor(stm32mp15-fdts): remove unused PMIC nodes
Yann Gautier [Fri, 21 Oct 2022 13:11:25 +0000 (15:11 +0200)]
refactor(stm32mp15-fdts): remove unused PMIC nodes

The onkey and watchdog features of the PMIC are not used in TF-A for
STM32MP15 boards. Remove the nodes from DT.

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

22 months agofix(stm32mp15-fdts): use interrupts-extended for i2c2
Yann Gautier [Fri, 21 Oct 2022 13:31:36 +0000 (15:31 +0200)]
fix(stm32mp15-fdts): use interrupts-extended for i2c2

Update SoC DT file STM32MP151 to use interrupts-extended instead of
interrupts for i2c2. This correct a compilation warning:
build/stm32mp1/debug/fdts/stm32mp157c-ev1-bl2.pre.dts:23.3-26:
 Warning (interrupts_property): /soc/i2c@40013000:#interrupt-cells:
  size is (28), expected multiple of 12

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

22 months agostyle(stm32mp15-fdts): remove extra spaces on vbus
Yann Gautier [Fri, 21 Oct 2022 09:25:49 +0000 (11:25 +0200)]
style(stm32mp15-fdts): remove extra spaces on vbus

Remove extra spaces before the closing brace of vbus_otg node in
stm32mp157c-ed1 DT file, before the vbus_sw label, and before the
closing brace of vbus_sw node.

Signed-off-by: Amelie Delaunay <amelie.delaunay@foss.st.com>
Signed-off-by: Yann Gautier <yann.gautier@st.com>
Change-Id: I2e77e0a043594876551ed8d77ed3d13f6a098c81

22 months agorefactor(st): move board info in common code
Yann Gautier [Wed, 4 Jan 2023 15:46:07 +0000 (16:46 +0100)]
refactor(st): move board info in common code

Create a function stm32_display_board_info() that will display ST
board information, from a parameter taken from OTP fuse. The code
is just moved from STM32MP1 part to common directory.

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

22 months agorefactor(st): move GIC code to common directory
Yann Gautier [Tue, 6 Aug 2019 15:28:23 +0000 (17:28 +0200)]
refactor(st): move GIC code to common directory

The GIC v2 initialization code could be shared to other ST platforms.
The stm32mp1_gic.c file is then moved to common directory, and renamed
stm32mp_gic.c.
The functions are also prefixed with stm32mp_gic.

Change-Id: I60820823b470217d3a95cc569f941c2cb923dfa9
Signed-off-by: Yann Gautier <yann.gautier@st.com>
22 months agorefactor(st): move boot backup register management
Yann Gautier [Wed, 29 Jun 2022 15:03:36 +0000 (17:03 +0200)]
refactor(st): move boot backup register management

This backup register used to pass boot information to BL33, has the
same mapping for ST platforms. Its management can then be moved to
common directory.

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

22 months agoMerge "refactor(trng): discarding the used entropy bits" into integration
Manish Pandey [Wed, 4 Jan 2023 10:41:46 +0000 (11:41 +0100)]
Merge "refactor(trng): discarding the used entropy bits" into integration

22 months agofix(plat/tc): increase TC_TZC_DRAM1_SIZE
Arunachalam Ganapathy [Mon, 11 Apr 2022 16:38:17 +0000 (17:38 +0100)]
fix(plat/tc): increase TC_TZC_DRAM1_SIZE

Increase TC_TZC_DRAM1_SIZE for Trusty image and its memory size.
Update OP-TEE reserved memory range in DTS

Change-Id: Iad433c3c155f28860b15bde2398df653487189dd
Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Signed-off-by: Davidson K <davidson.kumaresan@arm.com>
22 months agoMerge "refactor(auth): avoid parsing signature algorithm twice" into integration
Sandrine Bailleux [Wed, 4 Jan 2023 09:16:10 +0000 (10:16 +0100)]
Merge "refactor(auth): avoid parsing signature algorithm twice" into integration

22 months agoMerge changes I794d2927,Ie33205fb,Ifdbe3b4c into integration
Sandrine Bailleux [Tue, 3 Jan 2023 16:55:02 +0000 (17:55 +0100)]
Merge changes I794d2927,Ie33205fb,Ifdbe3b4c into integration

* changes:
  refactor(auth): do not include SEQUENCE tag in saved extensions
  fix(auth): reject junk after certificates
  fix(auth): require bit strings to have no unused bits

22 months agorefactor(auth): do not include SEQUENCE tag in saved extensions
Demi Marie Obenour [Thu, 8 Dec 2022 20:24:36 +0000 (15:24 -0500)]
refactor(auth): do not include SEQUENCE tag in saved extensions

This makes the code a little bit smaller.  No functional change
intended.

Change-Id: I794d2927fcd034a79e29c9bba1f8e4410203f547
Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
22 months agofix(auth): reject junk after certificates
Demi Marie Obenour [Thu, 8 Dec 2022 20:24:31 +0000 (15:24 -0500)]
fix(auth): reject junk after certificates

Certificates must not allow trailing junk after them.

Change-Id: Ie33205fb051fc63af5b72c326822da7f62eec1d1
Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
22 months agofix(auth): require bit strings to have no unused bits
Demi Marie Obenour [Thu, 8 Dec 2022 20:24:27 +0000 (15:24 -0500)]
fix(auth): require bit strings to have no unused bits

This is already checked by the crypto module or by mbedTLS, but checking
it in the X.509 parser is harmless.

Change-Id: Ifdbe3b4c6d04481bb8e93106ee04b49a70f50d5d
Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
22 months agoMerge changes Ia748b6ae,Id8a48e14,Id25ab231,Ie26eed8a,Idf48f716, ... into integration
Sandrine Bailleux [Tue, 3 Jan 2023 16:48:09 +0000 (17:48 +0100)]
Merge changes Ia748b6ae,Id8a48e14,Id25ab231,Ie26eed8a,Idf48f716, ... into integration

* changes:
  refactor(auth): partially validate SubjectPublicKeyInfo early
  fix(auth): reject padding after BIT STRING in signatures
  fix(auth): reject invalid padding in digests
  fix(auth): require at least one extension to be present
  fix(auth): forbid junk after extensions
  fix(auth): only accept v3 X.509 certificates

22 months agoMerge changes from topic "st_fix_sparse_warnings" into integration
Manish Pandey [Tue, 3 Jan 2023 13:27:07 +0000 (14:27 +0100)]
Merge changes from topic "st_fix_sparse_warnings" into integration

* changes:
  fix(st-crypto): remove platdata functions
  fix(st-crypto): set get_plain_pk_from_asn1() static
  fix(stm32mp1): add missing platform.h include
  fix(st): make metadata_block_spec static

22 months agorefactor(auth): avoid parsing signature algorithm twice
Demi Marie Obenour [Thu, 8 Dec 2022 20:24:23 +0000 (15:24 -0500)]
refactor(auth): avoid parsing signature algorithm twice

Since the two instances of the signature algorithm in a certificate must
be bitwise identical, it is not necessary to parse both of them.
Instead, it suffices to parse one of them, and then check that the other
fits in the remaining buffer space and is equal to the first.

Change-Id: Id0a0663165f147879ac83b6a540378fd4873b0dd
Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
22 months agorefactor(auth): partially validate SubjectPublicKeyInfo early
Demi Marie Obenour [Thu, 8 Dec 2022 20:24:18 +0000 (15:24 -0500)]
refactor(auth): partially validate SubjectPublicKeyInfo early

This reduces the likelihood of future problems later.

Change-Id: Ia748b6ae31a7a48f17ec7f0fc08310a50cd1b135
Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
22 months agofix(auth): reject padding after BIT STRING in signatures
Demi Marie Obenour [Thu, 8 Dec 2022 20:24:10 +0000 (15:24 -0500)]
fix(auth): reject padding after BIT STRING in signatures

It is forbidden by ASN.1 DER.

Change-Id: Id8a48e14bb8a1a17a6481ea3fde0803723c05e31
Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
22 months agofix(auth): reject invalid padding in digests
Demi Marie Obenour [Thu, 8 Dec 2022 20:24:01 +0000 (15:24 -0500)]
fix(auth): reject invalid padding in digests

Digests must not have padding after the SEQUENCE or OCTET STRING.

Change-Id: Id25ab23111781f8c8a97c2c3c8edf1cc4a4384c0
Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
22 months agofix(auth): require at least one extension to be present
Demi Marie Obenour [Thu, 8 Dec 2022 20:23:58 +0000 (15:23 -0500)]
fix(auth): require at least one extension to be present

X.509 and RFC5280 allow omitting the extensions entirely, but require
that if the extensions field is present at all, it must contain at least
one certificate.  TF-A already requires the extensions to be present,
but allows them to be empty.  However, a certificate with an empty
extensions field will always fail later on, as the extensions contain
the information needed to validate the next stage in the boot chain.
Therefore, it is simpler to require the extension field to be present
and contain at least one extension.  Also add a comment explaining why
the extensions field is required, even though it is OPTIONAL in the
ASN.1 syntax.

Change-Id: Ie26eed8a7924bf50937a6b27ccdf7cc9a390588d
Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
22 months agofix(auth): forbid junk after extensions
Demi Marie Obenour [Thu, 8 Dec 2022 20:23:56 +0000 (15:23 -0500)]
fix(auth): forbid junk after extensions

The extensions must use all remaining bytes in the TBSCertificate.

Change-Id: Idf48f7168e146d050ba62dbc732638946fcd6c92
Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
22 months agofix(auth): only accept v3 X.509 certificates
Demi Marie Obenour [Thu, 8 Dec 2022 20:23:50 +0000 (15:23 -0500)]
fix(auth): only accept v3 X.509 certificates

v1 and v2 are forbidden as at least one extension is required.  Instead
of actually parsing the version number, just compare it with a
hard-coded string.

Change-Id: Ib8fd34304a0049787db77ec8c2359d0930cd4ba1
Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com>
23 months agoMerge "fix(qemu-sbsa): enable SVE and SME" into integration
Bipin Ravi [Thu, 22 Dec 2022 22:38:58 +0000 (23:38 +0100)]
Merge "fix(qemu-sbsa): enable SVE and SME" into integration

23 months agoMerge changes Ia14738de,I6f4cffdc into integration
Manish V Badarkhe [Thu, 22 Dec 2022 11:53:04 +0000 (12:53 +0100)]
Merge changes Ia14738de,I6f4cffdc into integration

* changes:
  fix(tc): change the properties of optee reserved memory
  feat(tc): use smmu 700

23 months agoMerge "fix(cpus): workaround for Neoverse N2 erratum 2743089" into integration
Madhukar Pappireddy [Wed, 21 Dec 2022 16:27:21 +0000 (17:27 +0100)]
Merge "fix(cpus): workaround for Neoverse N2 erratum 2743089" into integration

23 months agofix(cpus): workaround for Neoverse N2 erratum 2743089
Bipin Ravi [Wed, 7 Dec 2022 23:01:26 +0000 (17:01 -0600)]
fix(cpus): workaround for Neoverse N2 erratum 2743089

Neoverse N2 erratum 2743089 is a Cat B erratum that applies to
all revisions <=r0p2 and is fixed in r0p3. The workaround is to
insert a dsb before the isb in the power down sequence.

SDEN documentation:
https://developer.arm.com/documentation/SDEN1982442/latest

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

23 months agoMerge changes I0362da46,I8ee7c16c into integration
Madhukar Pappireddy [Wed, 21 Dec 2022 15:01:16 +0000 (16:01 +0100)]
Merge changes I0362da46,I8ee7c16c into integration

* changes:
  fix(cpus): workaround for Cortex-A78 erratum 2772019
  fix(cpus): workaround for Neoverse V1 erratum 2743093

23 months agofeat(fvp): emulate trapped RNDR
Andre Przywara [Mon, 21 Nov 2022 17:07:25 +0000 (17:07 +0000)]
feat(fvp): emulate trapped RNDR

When a platform decides to use FEAT_RNG_TRAP, every RNDR or RNDRSS read
will trap into EL3. The platform can then emulate those instructions, by
either executing the real CPU instructions, potentially conditioning the
results, or use rate-limiting or filtering to protect the hardware
entropy pool. Another possiblitiy would be to use some platform specific
TRNG device to get entropy and returning this.

To demonstrate platform specific usage, add a demo implementation for the
FVP: It will execute the actual CPU instruction and just return the
result. This should serve as reference code to implement platform specific
policies.

We change the definition of read_rndr() and read_rndrrs() to use the
alternative sysreg encoding, so that all assemblers can handle that.

Add documentation about the new platform specific RNG handler function.

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

23 months agofeat(el3-runtime): introduce system register trap handler
Andre Przywara [Mon, 21 Nov 2022 17:04:10 +0000 (17:04 +0000)]
feat(el3-runtime): introduce system register trap handler

At the moment we only handle SMC traps from lower ELs, but ignore any
other synchronous traps and just panic.
To cope with system register traps, which we might need to emulate,
introduce a C function to handle those traps, and wire that up in the
exception handler to be called.

We provide a dispatcher function (in C), that will call platform
specific implementation for certain (classes of) system registers.
For now this is empty.

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

23 months agofix(cpus): workaround for Cortex-A78 erratum 2772019
Bipin Ravi [Thu, 15 Dec 2022 20:48:21 +0000 (14:48 -0600)]
fix(cpus): workaround for Cortex-A78 erratum 2772019

Cortex-A78 erratum 2772019 is a Cat B erratum that applies to
all revisions <=r1p2 and is still open. The workaround is to
insert a dsb before the isb in the power down sequence.

SDEN documentation:
https://developer.arm.com/documentation/SDEN1401784/latest

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

23 months agofix(cpus): workaround for Neoverse V1 erratum 2743093
Bipin Ravi [Thu, 15 Dec 2022 17:57:53 +0000 (11:57 -0600)]
fix(cpus): workaround for Neoverse V1 erratum 2743093

Neoverse V1 erratum 2743093 is a Cat B erratum that applies to
all revisions <=r1p2 and is still open. The workaround is to
insert a dsb before the isb in the power down sequence.

SDEN documentation:
https://developer.arm.com/documentation/SDEN1401781/latest

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

23 months agoMerge "fix(el3-spmc): report execution state in partition info get" into integration
Olivier Deprez [Tue, 20 Dec 2022 16:30:16 +0000 (17:30 +0100)]
Merge "fix(el3-spmc): report execution state in partition info get" into integration

23 months agoMerge "feat(tc): add delegated attest and measurement tests" into integration
Sandrine Bailleux [Tue, 20 Dec 2022 14:58:06 +0000 (15:58 +0100)]
Merge "feat(tc): add delegated attest and measurement tests" into integration

23 months agofix(tc): change the properties of optee reserved memory
Davidson K [Wed, 14 Dec 2022 12:08:14 +0000 (17:38 +0530)]
fix(tc): change the properties of optee reserved memory

make it part of the restricted dma pool to ensure it is not used for
general dma operations.

Change-Id: Ia14738de70b4d7719d7460ed8d16e727aea8d8c4
Signed-off-by: Davidson K <davidson.kumaresan@arm.com>
23 months agofeat(tc): use smmu 700
Davidson K [Mon, 21 Nov 2022 12:19:51 +0000 (17:49 +0530)]
feat(tc): use smmu 700

Enable smmu for gpu and dpu

Signed-off-by: Davidson K <davidson.kumaresan@arm.com>
Change-Id: I6f4cffdc835dc542904b0a15b1db9a3382b78c08

23 months agoMerge "fix(gic): wrap cache enabled assert under plat_can_cmo" into integration
Manish Pandey [Mon, 19 Dec 2022 10:44:45 +0000 (11:44 +0100)]
Merge "fix(gic): wrap cache enabled assert under plat_can_cmo" into integration

23 months agorefactor(st): remove unused io_mmc driver
Yann Gautier [Tue, 22 Nov 2022 10:44:20 +0000 (11:44 +0100)]
refactor(st): remove unused io_mmc driver

This driver was used when STM32MP_USE_STM32IMAGE was enabled. This flag
is now removed, so the ST io_mmc driver can now be removed.

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

23 months agodocs: deprecate io_dummy driver
Yann Gautier [Tue, 22 Nov 2022 14:15:11 +0000 (15:15 +0100)]
docs: deprecate io_dummy driver

This drivers was only used by one upstream platform: STM32MP1 but only
when enabling the flag STM32MP_USE_STM32IMAGE. This flag and the
corresponding code is now removed from TF-A. The driver can then be
set to deprecated. It will be removed after v2.9 tag.

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

23 months agoMerge "fix(intel): add mailbox error return status for FCS_DECRYPTION" into integration
Sandrine Bailleux [Mon, 19 Dec 2022 07:37:23 +0000 (08:37 +0100)]
Merge "fix(intel): add mailbox error return status for FCS_DECRYPTION" into integration

23 months agoMerge "fix(arm): arm_rotpk_header undefined reference" into integration
Manish V Badarkhe [Sat, 17 Dec 2022 10:44:21 +0000 (11:44 +0100)]
Merge "fix(arm): arm_rotpk_header undefined reference" into integration

23 months agofix(arm): arm_rotpk_header undefined reference
laurenw-arm [Tue, 13 Dec 2022 15:42:40 +0000 (09:42 -0600)]
fix(arm): arm_rotpk_header undefined reference

Moving ARM_ROTPK_S to default to arm_dev_rotpk.S as it was not being
set for Juno cryptocell and this should be the value in most cases.

Change-Id: I56a5a4e61f1ca728b87322b0b09a0d73ed1d5ee0
Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com>
23 months agofeat(tc): add delegated attest and measurement tests
Mate Toth-Pal [Fri, 21 Oct 2022 12:24:49 +0000 (14:24 +0200)]
feat(tc): add delegated attest and measurement tests

This patch adds Delegated Attestation and Measured Boot tests to the
plat/arm/board/tc platform.
The test suite can be activated by adding the build time option
`PLATFORM_TEST=1` to the make command. In this case the boot sequence is
not finished, plat_error_handler is called after the tests are run
(regardless of the test result.)

The actual test code is coming from the Trusted-Firmware-M project. Some
of the files of the tf-m-tests and tf-m-extras repo are linked to the
BL31 image.

Versions used for testing:
https://git.trustedfirmware.org/TF-M/tf-m-tests
    614e8c358377e4146e8ee13d1246e59d01b4bf1b

https: //git.trustedfirmware.org/TF-M/tf-m-extras
    3be9fdd557e6df449de93c2101973fb011699b3d

Change-Id: I98f0f5f760a39d2d7e0dd11d33663ddb75f0b6fc
Signed-off-by: Mate Toth-Pal <mate.toth-pal@arm.com>
23 months agoMerge "fix(xilinx): resolve integer handling issue" into integration
Joanna Farley [Fri, 16 Dec 2022 15:59:44 +0000 (16:59 +0100)]
Merge "fix(xilinx): resolve integer handling issue" into integration

23 months agoMerge "fix(intel): missing NCORE CCU snoop filter fix in BL2" into integration
Sandrine Bailleux [Fri, 16 Dec 2022 14:37:07 +0000 (15:37 +0100)]
Merge "fix(intel): missing NCORE CCU snoop filter fix in BL2" into integration