12179 Commits

Author SHA1 Message Date
Lauren Wehrmeister
486ebd681d Merge "fix(errata): workaround for Cortex A78C erratum 2242638" into integration 2022-07-21 20:31:34 +02:00
Manish V Badarkhe
f590094161 Merge "fix(tc): tc2 bl1 start address shifted by one page" into integration 2022-07-21 18:39:28 +02:00
Javier Almansa Sobrino
e50fedbc86 fix(doc): document missing RMM-EL3 runtime services
This patch adds documentation for the missing RMM-EL3
runtime services:

* RMM_RMI_REQ_COMPLETE
* RMM_GTSI_DELEGATE
* RMM_GTSI_UNDELEGATE

This patch also fixes a couple of minor bugs on return codes
for delegate/undelegate internal APIs.

Signed-off-by: Javier Almansa Sobrino <javier.almansasobrino@arm.com>
Change-Id: Ic721005e7851e838eebaee7865ba78fadc3309e4
2022-07-21 12:36:45 +01:00
Manish Pandey
0051ff8714 Merge "feat(psci): add a helper function to ensure that non-boot PEs are offline" into integration 2022-07-21 12:27:55 +02:00
Olivier Deprez
8597a8cbc2 fix(tc): tc2 bl1 start address shifted by one page
Change [1] is specific to TC2 model and breaks former TC0/TC1 test
configs.
BL1 start address is 0x0 on TC0/TC1 and 0x1000 from TC2 onwards.
Fix by adding conditional defines depending on TARGET_PLATFORM build
flag.

[1] https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/15917

Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
Change-Id: I51f77e6a61ca8eaa6871c19cabe9deb1288f5a9d
2022-07-21 11:01:32 +02:00
Lucian Paul-Trifu
ce14a12f8b feat(psci): add a helper function to ensure that non-boot PEs are offline
Introduce a helper function that ensures that non-boot PEs are offline.
This function will be used by DRTM implementation to ensure that system
is running with only single PE.

Signed-off-by: Manish V Badarkhe <manish.badarkhe@arm.com>
Signed-off-by: Lucian Paul-Trifu <lucian.paultrifu@gmail.com>
Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Change-Id: I521ebefa49297026b02554629b1710a232148e01
2022-07-20 19:52:42 +01:00
Madhukar Pappireddy
6be1aa7e9d Merge "fix(errata): workaround for Cortex-A710 erratum 2371105" into integration 2022-07-20 14:38:01 +02:00
Joanna Farley
365fec44d6 Merge "feat(versal): resolve the misra 10.1 warnings" into integration 2022-07-20 12:09:20 +02:00
Venkatesh Yadav Abbarapu
b86e1aade1 feat(versal): resolve the misra 10.1 warnings
MISRA Violation: MISRA-C:2012 R.10.1
-The operand to the operator does not have an essentially unsigned type.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@xilinx.com>
Change-Id: I9cde2f1ebceaad8a41c69489ef1d2e6f21f04ed1
2022-07-20 09:03:22 +05:30
Bipin Ravi
3220f05ef9 fix(errata): workaround for Cortex-A710 erratum 2371105
Cortex-A710 erratum 2371105 is a cat B erratum that applies to
revisions r0p0 - r2p0 and is fixed in r2p1. The workaround is to
set bit[40] of CPUACTLR2_EL1 to disable folding of demand requests
into older prefetches with L2 miss requests outstanding.

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

Signed-off-by: Bipin Ravi <bipin.ravi@arm.com>
Change-Id: I342b095b66f808bd6c066c20c581df5341bb7c2c
2022-07-19 12:52:18 -05:00
Bipin Ravi
6979f47fec fix(errata): workaround for Cortex A78C erratum 2242638
Cortex A78C erratum 2242638 is a Cat B erratum which applies to
revisions r0p1, r0p2 and is still open. The workaround is to apply
a CPU implementation specific specific patch sequence.

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

Signed-off-by: Bipin Ravi <bipin.ravi@arm.com>
Change-Id: I35d385245a04a39b87be71c1a42312f75e1152e5
2022-07-19 09:12:07 -05:00
Joanna Farley
41bdb475db Merge "feat(versal): get the handoff params using IPI" into integration 2022-07-19 15:20:46 +02:00
Joanna Farley
e5daf0a512 Merge "refactor(xilinx): move the atf handoff structure" into integration 2022-07-19 15:20:41 +02:00
Joanna Farley
e82d990bf1 Merge "refactor(versal): move payload and module ID macros" into integration 2022-07-19 15:20:33 +02:00
Andre Przywara
f33e113c7a fix(morello): dts: remove #a-c and #s-c from memory node
The #address-cells and #size-cells properties affect the size of reg
properties in *child* nodes only, they have no effect on the current
node.

The /memory node has no children, hence there is no need to specify
those properties. dt-validate complains about this:
==========
morello-soc.dtb: /: memory@80000000: '#address-cells', '#size-cells' do
                 not match any of the regexes: 'pinctrl-[0-9]+'
From schema: dt-schema.git/dtschema/schemas/memory.yaml
==========

Remove the unneeded properties.

Change-Id: I35058a00fa9bfa1007f31a4c21898dd45c586aa8
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2022-07-19 12:11:40 +01:00
Andre Przywara
982f2585bb fix(morello): dts: fix GICv3 compatible string
The official GICv3 DT bindings require only a limited number of
compatible string, and disavowes the naming of an implementation.
Linux' "make dtbs_check" reports:
============
.../morello-soc.dt.yaml: interrupt-controller@2c010000: compatible: 'oneOf' conditional failed, one must be fixed:
        ['arm,gic-600', 'arm,gic-v3'] is too long
        'arm,gic-600' is not one of ['qcom,msm8996-gic-v3']
        'arm,gic-v3' was expected
        From schema: Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml
============

Drop the redundant (because runtime detectable) and undocumented
implementation version, and just use the standard compatible string.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Change-Id: I05b207df271d6aa5bf3f2163f99ac0c594204c75
2022-07-19 11:45:31 +01:00
Andre Przywara
41c310b4f6 fix(morello): dts: fix DT node naming
The various official DT bindings only allow certain node name patterns.
Linux' "make dtbs_check" reports:
===========
.../morello-soc.dt.yaml: sram@45200000: 'scp-shmem@0', 'scp-shmem@80' do not match any of the regexes: '^([a-z0-9]*-)?sram(-section)?@[a-f0-9]+$', 'pinctrl-[0-9]+'
   From schema: Documentation/devicetree/bindings/sram/sram.yaml
.../morello-soc.dt.yaml: uart@2a400000: $nodename:0: 'uart@2a400000' does not match '^serial(@.*)?$'
   From schema: Documentation/devicetree/bindings/serial/pl011.yaml
.../morello-soc.dt.yaml: interrupt-controller@2c010000: 'its@30040000', 'its@30060000', 'its@30080000', 'its@300a0000' do not match any of the regexes: '^(msi-controller|gic-its|interrupt-controller)@[0-9a-f]+$', '^gic-its@', '^interrupt-controller@[0-9a-f]+$', 'pinctrl-[0-9]+'
   From schema: Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.yaml
===========

Rename the node names to improve bindings compliance.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Change-Id: Ieff576512853eb2bf932c7a2b338c91e0c116b87
2022-07-19 11:45:29 +01:00
Andre Przywara
8aeb1fcf83 fix(morello): dts: fix SCMI shmem/mboxes grouping
The official Arm MHU DT binding suggests to group the shmem (and mboxes)
values to signify the number of mailboxes supported.
Linux' "make dtbs_check" reports:
============
.../morello-soc.dt.yaml: scmi: shmem:0: [17, 18] is too long
        From schema: dt-schema.git/dtschema/schemas/mbox/mbox-consumer.yaml
============

Add angle brackets at the right location to mark the boundaries between
the two mailbox instances used.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Change-Id: If585c98b5e8e55cd5c0b1261e03ce4b91a4c0413
2022-07-19 11:45:10 +01:00
Andre Przywara
3169572ed1 fix(morello): dts: use documented DPU compatible string
The official Arm Komeda DPU DT binding only mentions the "arm,mali-d71"
string as a possible compatible string. The D32 version is just a
variant of the D71, and the revision can and will be auto-detected at
runtime.
Add the usual fallback compatible string scheme to contain a documented
compatible string.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Change-Id: Ic1eade122b030dc983944b161eec175facf75357
2022-07-19 11:45:10 +01:00
Andre Przywara
fba729b0ca fix(morello): dts: fix DP SMMU IRQ ordering
The official SMMUv3 DT bindings require a certain order of the
interrupts, Linux' "make dtbs_check" reports:
============
.../morello-soc.dt.yaml: iommu@2ce00000: interrupt-names: 'oneOf' conditional failed, one must be fixed:
        ['eventq', 'cmdq-sync', 'gerror'] is too long
        'combined' was expected
        'gerror' was expected
        'priq' was expected
        'cmdq-sync' was expected
        From schema: Documentation/devicetree/bindings/iommu/arm,smmu-v3.yaml
============

Swap the order of the interrupts to improve bindings compliance.

Actually in this case the binding needs to be extended, since PRI is not
implemented in the SMMU in this case, so the PRI IRQ should be optional,
but we still want to describe the CMDQ sync IRQ. A patch for the binding
is pending.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Change-Id: I3978f1c087136cd4c2e8f7fd4d1bba5b95f72726
2022-07-19 11:45:10 +01:00
Andre Przywara
5016ee44a7 fix(morello): dts: fix SMMU IRQ ordering
The official SMMUv3 DT bindings require a certain order of the
interrupts, Linux' "make dtbs_check" reports:
============
.../morello-soc.dt.yaml: iommu@4f400000: interrupt-names: 'oneOf' conditional failed, one must be fixed:
        ['eventq', 'priq', 'cmdq-sync', 'gerror'] is too long
        'combined' was expected
        'gerror' was expected
        'priq' was expected
        'cmdq-sync' was expected
        From schema: Documentation/devicetree/bindings/iommu/arm,smmu-v3.yaml
============

Swap the order of the interrupt-names and their corresponding interrupts
values to improve bindings compliance.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Change-Id: I2110b8509593a4f1aadff11bd518ec4a0f3f5d3c
2022-07-19 11:45:10 +01:00
Andre Przywara
30df8904d0 fix(morello): dts: add model names
The core root node DT bindings require every DT to have a "model"
property. Linux' "make dtbs_check" reports:
============
.../morello-soc.dt.yaml: /: 'model' is a required property
     From schema: dt-schema.git/dtschema/schemas/root-node.yaml
============

Add a model name to both the SoC and FVP files to improve bindings
compliance.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Change-Id: I64923edb947f8939dfa24c13a37996b1ba34ea54
2022-07-19 11:45:05 +01:00
Olivier Deprez
a20256034e Merge "fix(mt8186): move SSPM base register definition to platform_def.h" into integration 2022-07-19 10:30:30 +02:00
Yidi Lin
2a2b51d8f7 fix(mt8186): move SSPM base register definition to platform_def.h
- move base register definition to platform_def.h for maintenance.
- SSPM_MBOX_3_BASE is redefined, use SSPM_MBOX_BASE instead.

Signed-off-by: Yidi Lin <yidilin@chromium.org>
Change-Id: Ibb0291ce7b7426068392e90bd70f29d1a90d5297
2022-07-19 15:56:19 +08:00
Manish V Badarkhe
37d87416aa Merge "refactor(fvp): add missing header guard in fvp_critical_data.h" into integration 2022-07-18 19:57:09 +02:00
Sandrine Bailleux
8dc7645c56 refactor(fvp): add missing header guard in fvp_critical_data.h
Change-Id: If7d1a9dd756164c8e31e29d9e36973f1a21fc8b6
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
2022-07-18 12:59:05 +02:00
Manish V Badarkhe
645557cde7 Merge "docs(security): update info on use of OpenSSL 3.0" into integration 2022-07-18 10:22:45 +02:00
Juan Pablo Conde
8caf10acab docs(security): update info on use of OpenSSL 3.0
OpenSSL 3.0 is a pre-requisite since v2.7 and can be installed
on the operating system by updating the previous version.
However, this may not be convenient for everyone, as some may
want to keep their previous versions of OpenSSL.

This update on the docs shows that there is an alternative to
install OpenSSL on the system by using a local build of
OpenSSL 3.0 and pointing both the build and run commands to
that build.

Signed-off-by: Juan Pablo Conde <juanpablo.conde@arm.com>
Change-Id: Ib9ad9ee5c333f7b04e2747ae02433aa66e6397f3
2022-07-15 18:09:18 -04:00
Manish V Badarkhe
58d64ea06a Merge "feat(tc): move start address for BL1 to 0x1000" into integration 2022-07-15 17:11:55 +02:00
Anders Dellien
9335c28a01 feat(tc): move start address for BL1 to 0x1000
Locate BL1 at 0x1000 to compensate for the MCUBoot
header size.

Signed-off-by: Anders Dellien <anders.dellien@arm.com>
Change-Id: I30a5ccf8212786479bff8286f3d0abb9dec4b7d0
2022-07-15 17:05:19 +02:00
Sandrine Bailleux
e905f23620 Merge "docs: re-parent BL2 platform hooks for measured boot" into integration 2022-07-15 07:26:10 +02:00
Madhukar Pappireddy
abe9b53871 Merge "fix(errata): workaround for Cortex-A78C 2132064" into integration 2022-07-15 00:09:24 +02:00
laurenw-arm
8008babd58 fix(errata): workaround for Cortex-A78C 2132064
Cortex-A78C erratum 2132064 is a cat B erratum that applies to revisions
r0p1 and r0p2 and is still open.

This patch implements workaround option 2 that places the data
prefetcher in the most conservative mode to greatly reduce prefetches
by writing the following bits to the value indicated:
ecltr[7:6], PF_MODE = 2'b11

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

Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com>
Change-Id: Ica2561c1e257643c2482085447ef852fa62a1eb2
2022-07-13 12:54:39 -05:00
Sandrine Bailleux
a0915ba436 docs: re-parent BL2 platform hooks for measured boot
bl2_plat_mboot_init/finish() functions documentation was incorrectly
hooked up to BL2U-specific section.

Change-Id: I758cb8142e992b0c85ee36d5671fc9ecd5bde29b
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
2022-07-13 10:07:54 +02:00
Manish Pandey
6367d196aa Merge "build(changelog): add stm32mp13 and stm32mp15 fdts scopes" into integration 2022-07-12 16:57:17 +02:00
Madhukar Pappireddy
af757e4017 Merge "fix(ufs): removes dp and run-stop polling loops" into integration 2022-07-12 15:03:44 +02:00
anans
660c208d9b fix(ufs): removes dp and run-stop polling loops
These polling loops are not required according to the spec

Signed-off-by: anans <anans@google.com>
Change-Id: I50d832ba495f30cc7a0553c84e58b747d51e0a4e
2022-07-12 08:59:18 +00:00
Venkatesh Yadav Abbarapu
205c7ad4cd feat(versal): get the handoff params using IPI
Use the IPI command GET_HANDOFF_PARAM to get the TF-A handoff
params, rather than using the PLM's PPU RAM area. With this
approach this resolves the issue when XPPU is enabled.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@xilinx.com>
Reviewed-by: Michal Simek <michal.simek@amd.com>
Change-Id: I6828c391ad696d2d36e994684aa21b023711ba2d
2022-07-12 09:22:50 +05:30
Venkatesh Yadav Abbarapu
237a7de149 refactor(xilinx): move the atf handoff structure
Move the ATF handoff structure from the plat_startup.c to the
header file plat_startup.h, as these can be used by the platform code.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@xilinx.com>
Reviewed-by: Michal Simek <michal.simek@amd.com>
Change-Id: Ifb425d444eb65fe8648952d2ff64d4e92c2b340a
2022-07-12 09:21:56 +05:30
Venkatesh Yadav Abbarapu
7e5f0abf9a refactor(versal): move payload and module ID macros
Move the payload and  module ID macros from the pm_api_sys.c file and
add it in the header file, as these macros can be used other than PM.

Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@xilinx.com>
Reviewed-by: Michal Simek <michal.simek@amd.com>
Change-Id: I678444b79ac3799a82bd93915e4639b3babf5fb9
2022-07-12 09:21:11 +05:30
Manish Pandey
f341c10e20 Merge changes Ie650728a,Ie2736ef4 into integration
* changes:
  refactor(stm32mp1-fdts): add missing spaces for consistent codestyle
  refactor(stm32mp1-fdts): drop unused DDR calibration result on DHCOM
2022-07-11 13:08:18 +02:00
Manish V Badarkhe
5726fb77b8 Merge "docs(prerequisites): fix "Build Host" title" into integration 2022-07-11 11:33:30 +02:00
Sandrine Bailleux
4a1bcd5071 docs(prerequisites): fix "Build Host" title
Add an empty line just before the "Build Host" title.

Without this, the title is not properly recognized, it does not get
added to the table of contents and the underlining characters appear
as dashes, as can be seen here:

https://trustedfirmware-a.readthedocs.io/en/v2.7/getting_started/prerequisites.html#prerequisites

Change-Id: Ia89cf3de0588495cbe64b0247dc860619f5ea6a8
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
2022-07-11 10:57:23 +02:00
Bipin Ravi
994e1cfd6d Merge "fix(cpus): workaround for Neoverse-N2 erratum 2388450" into integration 2022-07-08 19:25:50 +02:00
Bipin Ravi
fab7a17d42 Merge "feat(cpus): add a64fx cpu to tf-a" into integration 2022-07-08 19:21:11 +02:00
Mark Brown
bebcf27f1c feat(sve): support full SVE vector length
Currently the SVE code hard codes a maximum vector length of 512 bits
when configuring SVE rather than the architecture supported maximum.
While this is fine for current physical implementations the architecture
allows for vector lengths up to 2048 bits and emulated implementations
generally allow any length up to this maximum.

Since there may be system specific reasons to limit the maximum vector
length make the limit configurable, defaulting to the architecture
maximum. The default should be suitable for most implementations since
the hardware will limit the actual vector length selected to what is
physically supported in the system.

Signed-off-by: Mark Brown <broonie@kernel.org>
Change-Id: I22c32c98a81c0cf9562411189d8a610a5b61ca12
2022-07-08 17:17:11 +01:00
Yann Gautier
3e35da97fc build(changelog): add stm32mp13 and stm32mp15 fdts scopes
Some fdts changes in STM32MP1 family can be dedicated to one SoC,
STM32MP13 or STM32MP15. Add the dedicated scopes.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Change-Id: I2d64244054251c1f89dfe1ebbf6ce9dac21d47b6
2022-07-08 17:01:33 +02:00
Madhukar Pappireddy
0cb8dd7a61 Merge changes Iec22dcab,Ib88b4b5d,I50cd6b82,If1167785,I9b3a08ef, ... into integration
* changes:
  feat(imx8m): keep pu domains in default state during boot stage
  feat(imx8m): add the PU power domain support on imx8mm/mn
  feat(imx8m): add the anamix pll override setting
  feat(imx8m): add the ddr frequency change support for imx8m family
  feat(imx8mn): enable dram retention suuport on imx8mn
  feat(imx8mm): enable dram retention suuport on imx8mm
  feat(imx8m): add dram retention flow for imx8m family
2022-07-08 15:40:59 +02:00
Johann Neuhauser
119e1c42a1 refactor(stm32mp1-fdts): add missing spaces for consistent codestyle
Change-Id: Ie650728a0c671f553679b050afd969ce604ca111
Signed-off-by: Johann Neuhauser <jneuhauser@dh-electronics.com>
2022-07-08 15:26:47 +02:00
Johann Neuhauser
27997113fb refactor(stm32mp1-fdts): drop unused DDR calibration result on DHCOM
Change-Id: Ie2736ef4c463c51d109c13e59f541fe65039d7c6
Signed-off-by: Johann Neuhauser <jneuhauser@dh-electronics.com>
2022-07-08 15:26:41 +02:00