]> git.baikalelectronics.ru Git - arm-tf.git/log
arm-tf.git
5 years agoAdd myself and Andre Przywara as code owners for the Arm FPGA platform port
Javier Almansa Sobrino [Fri, 10 Jul 2020 09:34:04 +0000 (10:34 +0100)]
Add myself and Andre Przywara as code owners for the Arm FPGA platform port

Signed-off-by: Javier Almansa Sobrino <javier.almansasobrino@arm.com>
Change-Id: I6d3949a971fada5a086b788dbe274f8451fcfc0d

5 years agoMerge "drivers: arm: gicv3: auto-detect presence of GIC600-AE" into integration
André Przywara [Tue, 7 Jul 2020 22:06:31 +0000 (22:06 +0000)]
Merge "drivers: arm: gicv3: auto-detect presence of GIC600-AE" into integration

5 years agodrivers: arm: gicv3: auto-detect presence of GIC600-AE
Varun Wadekar [Sun, 5 Jul 2020 20:12:28 +0000 (13:12 -0700)]
drivers: arm: gicv3: auto-detect presence of GIC600-AE

This patch adds the IIDR value for GIC600-AE to the gicv3_is_gic600()
helper function. This helps platforms supporting this version of the
GIC600 interrupt controller to function with the generic GIC driver.

Verified with tftf-validation test suite

******************************* Summary *******************************
> Test suite 'Framework Validation'
                                                                Passed
> Test suite 'Timer framework Validation'
                                                                Passed
=================================
Tests Skipped : 0
Tests Passed  : 6
Tests Failed  : 0
Tests Crashed : 0
Total tests   : 6
=================================
NOTICE:  Exiting tests.

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

5 years agoMerge "corstone700: splitting the platform support into FVP and FPGA" into integration
Manish Pandey [Tue, 7 Jul 2020 15:49:14 +0000 (15:49 +0000)]
Merge "corstone700: splitting the platform support into FVP and FPGA" into integration

5 years agocorstone700: splitting the platform support into FVP and FPGA
Abdellatif El Khlifi [Mon, 6 Jul 2020 15:15:23 +0000 (16:15 +0100)]
corstone700: splitting the platform support into FVP and FPGA

This patch performs the following:

- Creating two corstone700 platforms under corstone700 board:

  fvp and fpga

- Since the FVP and FPGA have IP differences, this commit provides a specific DTS for each platform
- The platform can be specified using the TARGET_PLATFORM Makefile variable
(possible values are: fvp or fpga)
- Allowing to use u-boot by:
  - Enabling NEED_BL33 option
  - Fixing non-secure image base: For no preloaded bl33 we want to
    have the NS base set on shared ram. Setup a memory map region
    for NS in shared map and set the bl33 address in the area.
- Setting the SYS_COUNTER_FREQ_IN_TICKS based on the selected
platform
- Setting ARM_MAP_SHARED_RAM and ARM_MAP_NS_SHARED_RAM to use MT_MEMORY

Change-Id: I4c8ac3387acb1693ab617bcccab00d80e340c163
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
5 years agoMerge "arm_fpga: Fix MPIDR topology checks" into integration
Madhukar Pappireddy [Thu, 2 Jul 2020 23:47:50 +0000 (23:47 +0000)]
Merge "arm_fpga: Fix MPIDR topology checks" into integration

5 years agoMerge changes from topic "stm32-shres" into integration
Mark Dykes [Thu, 2 Jul 2020 16:11:10 +0000 (16:11 +0000)]
Merge changes from topic "stm32-shres" into integration

* changes:
  stm32mp1: shared resources: apply registered configuration
  stm32mp1: shared resources: count GPIOZ bank pins
  stm32mp1: shared resources: define resource identifiers

5 years agoMerge "stm32mp1: introduce shared resources support" into integration
Mark Dykes [Thu, 2 Jul 2020 16:10:12 +0000 (16:10 +0000)]
Merge "stm32mp1: introduce shared resources support" into integration

5 years agoMerge "doc: Fix some broken links" into integration
Manish Pandey [Thu, 2 Jul 2020 14:50:02 +0000 (14:50 +0000)]
Merge "doc: Fix some broken links" into integration

5 years agoMerge "Workaround for Neoverse N1 erratum 1800710" into integration
Lauren Wehrmeister [Wed, 1 Jul 2020 16:57:11 +0000 (16:57 +0000)]
Merge "Workaround for Neoverse N1 erratum 1800710" into integration

5 years agoMerge "doc: RAS: fixing broken links" into integration
Lauren Wehrmeister [Wed, 1 Jul 2020 15:56:19 +0000 (15:56 +0000)]
Merge "doc: RAS: fixing broken links" into integration

5 years agodoc: Fix some broken links
Sandrine Bailleux [Wed, 1 Jul 2020 11:53:07 +0000 (13:53 +0200)]
doc: Fix some broken links

Fix all external broken links reported by Sphinx linkcheck tool.

This does not take care of broken cross-references between internal
TF-A documentation files. These will be fixed in a future patch.

Change-Id: I2a740a3ec0b688c14aad575a6c2ac71e72ce051e
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
5 years agodoc: RAS: fixing broken links
Manish Pandey [Mon, 29 Jun 2020 23:46:08 +0000 (00:46 +0100)]
doc: RAS: fixing broken links

There were some links in the file "ras.rst" which were broken, this
patch fixes all the broken links in this file.

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

5 years agoMerge "linker_script: move .rela.dyn section to bl_common.ld.h" into integration
Sandrine Bailleux [Tue, 30 Jun 2020 13:42:09 +0000 (13:42 +0000)]
Merge "linker_script: move .rela.dyn section to bl_common.ld.h" into integration

5 years agoMerge "plat/arm: Add assert for the valid address of dtb information" into integration
Sandrine Bailleux [Tue, 30 Jun 2020 12:12:32 +0000 (12:12 +0000)]
Merge "plat/arm: Add assert for the valid address of dtb information" into integration

5 years agoMerge "Fix makefile to build on a Windows host PC" into integration
Manish Pandey [Mon, 29 Jun 2020 23:49:20 +0000 (23:49 +0000)]
Merge "Fix makefile to build on a Windows host PC" into integration

5 years agoFix makefile to build on a Windows host PC
Sami Mujawar [Thu, 23 Apr 2020 08:28:37 +0000 (09:28 +0100)]
Fix makefile to build on a Windows host PC

The TF-A firmware build system is capable of building on both Unix like
and Windows host PCs. The commit ID 7ff088 "Enable MTE support" updated
the Makefile to conditionally enable the MTE support if the AArch64
architecture revision was greater than 8.5. However, the Makefile changes
were dependent on shell commands that are only available on unix shells,
resulting in build failures on a Windows host PC.

This patch fixes the Makefile by using a more portable approach for
comparing the architecture revision.

Change-Id: Icb56cbecd8af5b0b9056d105970ff4a6edd1755a
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
5 years agoMerge "stm32mp1: disable neon in sp_min" into integration
Mark Dykes [Mon, 29 Jun 2020 15:59:45 +0000 (15:59 +0000)]
Merge "stm32mp1: disable neon in sp_min" into integration

5 years agoMerge "stm32mp1: check stronger the secondary CPU entry point" into integration
Mark Dykes [Mon, 29 Jun 2020 15:58:23 +0000 (15:58 +0000)]
Merge "stm32mp1: check stronger the secondary CPU entry point" into integration

5 years agoplat/arm: Add assert for the valid address of dtb information
Manish V Badarkhe [Mon, 29 Jun 2020 06:17:24 +0000 (07:17 +0100)]
plat/arm: Add assert for the valid address of dtb information

Added assert in the code to check valid address of dtb information
structure retrieved from fw_config device tree.
This patch fixes coverity defect:360213.

Also, removed conditional calling of "fconf_populate" as "fconf_populate"
function already checks the validity of the device tree address received
and go to panic in case of address is NULL.

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

5 years agoMerge "allwinner: Disable NS access to PRCM power control registers" into integration
André Przywara [Mon, 29 Jun 2020 11:50:47 +0000 (11:50 +0000)]
Merge "allwinner: Disable NS access to PRCM power control registers" into integration

5 years agoallwinner: Disable NS access to PRCM power control registers
Samuel Holland [Sun, 29 Dec 2019 22:12:12 +0000 (16:12 -0600)]
allwinner: Disable NS access to PRCM power control registers

The non-secure world has no business accessing the CPU power switches in
the PRCM; those are handled by TF-A or the SCP. Only allow access to the
clock control part of the PRCM.

Signed-off-by: Samuel Holland <samuel@sholland.org>
Change-Id: I657b97f4ea8a0073448ad3343fbc66ba168ed89e

5 years agolinker_script: move .rela.dyn section to bl_common.ld.h
Masahiro Yamada [Wed, 22 Apr 2020 02:27:55 +0000 (11:27 +0900)]
linker_script: move .rela.dyn section to bl_common.ld.h

The .rela.dyn section is the same for BL2-AT-EL3, BL31, TSP.

Move it to the common header file.

I slightly changed the definition so that we can do "RELA_SECTION >RAM".
It still produced equivalent elf images.

Please note I got rid of '.' from the VMA field. Otherwise, if the end
of previous .data section is not 8-byte aligned, it fails to link.

aarch64-linux-gnu-ld.bfd: warning: changing start of section .rela.dyn by 4 bytes
aarch64-linux-gnu-ld.bfd: warning: changing start of section .rela.dyn by 4 bytes
aarch64-linux-gnu-ld.bfd: warning: changing start of section .rela.dyn by 4 bytes
make: *** [Makefile:1071: build/qemu/release/bl31/bl31.elf] Error 1

Change-Id: Iba7422d99c0374d4d9e97e6fd47bae129dba5cc9
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
5 years agoMerge changes Ib9c82b85,Ib348e097,I4dc315e4,I58a8ce44,Iebc03361, ... into integration
Manish Pandey [Fri, 26 Jun 2020 13:59:38 +0000 (13:59 +0000)]
Merge changes Ib9c82b85,Ib348e097,I4dc315e4,I58a8ce44,Iebc03361, ... into integration

* changes:
  plat: marvell: armada: a8k: add OP-TEE OS MMU tables
  drivers: marvell: add support for mapping the entire LLC to SRAM
  plat: marvell: armada: add LLC SRAM CCU setup for AP806/AP807 platforms
  plat: marvell: armada: reduce memory size reserved for FIP image
  plat: marvell: armada: platform definitions cleanup
  plat: marvell: armada: a8k: check CCU window state before loading MSS BL2
  drivers: marvell: add CCU driver API for window state checking
  drivers: marvell: align and extend llc macros
  plat: marvell: a8k: move address config of cp1/2 to BL2
  plat: marvell: armada: re-enable BL32_BASE definition
  plat: marvell: a8k: extend includes to take advantage of the phy_porting_layer
  marvell: comphy: initialize common phy selector for AP mode
  marvell: comphy: update rx_training procedure
  plat: marvell: armada: configure amb for all CPs
  plat: marvell: armada: modify PLAT_FAMILY name for 37xx SoCs

5 years agoarm_fpga: Fix MPIDR topology checks
Andre Przywara [Thu, 25 Jun 2020 12:10:13 +0000 (13:10 +0100)]
arm_fpga: Fix MPIDR topology checks

The plat_core_pos_by_mpidr() implementation for the Arm FPGA port has
some issues, which leads to problems when matching GICv3 redistributors
with cores:
- The power domain tree was not taking multithreading into account, so
  we ended up with the wrong mapping between MPIDRs and core IDs.
- Before even considering an MPIDR, we try to make sure Aff2 is 0.
  Unfortunately this is the cluster ID when the MT bit is set.
- We mask off the MT bit in MPIDR, before basing decisions on it.
- When detecting the MT bit, we are properly calculating the thread ID,
  but don't account for the shift in the core and cluster ID checks.

Those problems lead to early rejections of MPIDRs values, in particular
when called from the GIC code. As a result, CPU_ON for secondary cores
was failing for most of the cores.

Fix this by properly handling the MT bit in plat_core_pos_by_mpidr(),
also pulling in FPGA_MAX_PE_PER_CPU when populating the power domain
tree.

Change-Id: I71b2255fc0d27bfe5806511df479ab38e4e33fc4
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
5 years agoMerge changes from topic "fw_config_handoff" into integration
Sandrine Bailleux [Fri, 26 Jun 2020 07:31:59 +0000 (07:31 +0000)]
Merge changes from topic "fw_config_handoff" into integration

* changes:
  doc: Update arg usage for BL2 and BL31 setup functions
  doc: Update BL1 and BL2 boot flow
  plat/arm: Use only fw_config between bl2 and bl31

5 years agodoc: Update arg usage for BL2 and BL31 setup functions
Manish V Badarkhe [Wed, 24 Jun 2020 14:58:38 +0000 (15:58 +0100)]
doc: Update arg usage for BL2 and BL31 setup functions

Updated the porting guide for the usage of received arguments
in BL2 and BL32 setup functions in case of Arm platform.

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

5 years agodoc: Update BL1 and BL2 boot flow
Manish V Badarkhe [Sun, 21 Jun 2020 04:41:11 +0000 (05:41 +0100)]
doc: Update BL1 and BL2 boot flow

Updated the document for BL1 and BL2 boot flow to capture
below changes made in FCONF

1. Loading of fw_config and tb_fw_config images by BL1.
2. Population of fw_config and tb_fw_config by BL2.

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

5 years agoplat/arm: Use only fw_config between bl2 and bl31
Manish V Badarkhe [Sat, 30 May 2020 16:40:44 +0000 (17:40 +0100)]
plat/arm: Use only fw_config between bl2 and bl31

Passed the address of fw_config instead of soc_fw_config
as arg1 to BL31 from BL2 for ARM fvp platform.

BL31 then retrieve load-address of other device trees
from fw_config device tree.

Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
Change-Id: Ib7e9581cd765d76111dcc3b7e0dafc12503c83c1

5 years agoMerge changes from topic "fw_config_handoff" into integration
Sandrine Bailleux [Fri, 26 Jun 2020 07:06:52 +0000 (07:06 +0000)]
Merge changes from topic "fw_config_handoff" into integration

* changes:
  doc: Update memory layout for firmware configuration area
  plat/arm: Increase size of firmware configuration area
  plat/arm: Load and populate fw_config and tb_fw_config
  fconf: Handle error from fconf_load_config
  plat/arm: Update the fw_config load call and populate it's information
  fconf: Allow fconf to load additional firmware configuration
  fconf: Clean confused naming between TB_FW and FW_CONFIG
  tbbr/dualroot: Add fw_config image in chain of trust
  cert_tool: Update cert_tool for fw_config image support
  fiptool: Add fw_config in FIP
  plat/arm: Rentroduce tb_fw_config device tree

5 years agoWorkaround for Neoverse N1 erratum 1800710
johpow01 [Tue, 2 Jun 2020 18:14:11 +0000 (13:14 -0500)]
Workaround for Neoverse N1 erratum 1800710

Neoverse N1 erratum 1800710 is a Cat B erratum, present in older
revisions of the Neoverse N1 processor core.  The workaround is to
set a bit in the ECTLR_EL1 system register, which disables allocation
of splintered pages in the L2 TLB.

This errata is explained in this SDEN:
https://static.docs.arm.com/sden885747/f/Arm_Neoverse_N1_MP050_Software_Developer_Errata_Notice_v21.pdf

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

5 years agoMerge "stm32mp1: use last page of SYSRAM as SCMI shared memory" into integration
Mark Dykes [Thu, 25 Jun 2020 18:37:51 +0000 (18:37 +0000)]
Merge "stm32mp1: use last page of SYSRAM as SCMI shared memory" into integration

5 years agoMerge "stm32mp1: SP_MIN embeds Arm Architecture services" into integration
Mark Dykes [Thu, 25 Jun 2020 18:33:27 +0000 (18:33 +0000)]
Merge "stm32mp1: SP_MIN embeds Arm Architecture services" into integration

5 years agoMerge "Redirect security incident report to TrustedFirmware.org" into integration
Mark Dykes [Thu, 25 Jun 2020 18:27:16 +0000 (18:27 +0000)]
Merge "Redirect security incident report to TrustedFirmware.org" into integration

5 years agoMerge "doc: Add a binding document for COT descriptors" into integration
Mark Dykes [Thu, 25 Jun 2020 18:23:50 +0000 (18:23 +0000)]
Merge "doc: Add a binding document for COT descriptors" into integration

5 years agoMerge "plat/fvp: Dynamic description of clock freq" into integration
Mark Dykes [Thu, 25 Jun 2020 18:20:21 +0000 (18:20 +0000)]
Merge "plat/fvp: Dynamic description of clock freq" into integration

5 years agoMerge "fconf: Extract Timer clock freq from HW_CONFIG dtb" into integration
Mark Dykes [Thu, 25 Jun 2020 18:18:57 +0000 (18:18 +0000)]
Merge "fconf: Extract Timer clock freq from HW_CONFIG dtb" into integration

5 years agoMerge "Workaround for Cortex A77 erratum 1800714" into integration
Lauren Wehrmeister [Thu, 25 Jun 2020 18:15:33 +0000 (18:15 +0000)]
Merge "Workaround for Cortex A77 erratum 1800714" into integration

5 years agoWorkaround for Cortex A77 erratum 1800714
johpow01 [Wed, 3 Jun 2020 20:23:31 +0000 (15:23 -0500)]
Workaround for Cortex A77 erratum 1800714

Cortex A77 erratum 1800714 is a Cat B erratum, present in older
revisions of the Cortex A77 processor core.  The workaround is to
set a bit in the ECTLR_EL1 system register, which disables allocation
of splintered pages in the L2 TLB.

Since this is the first errata workaround implemented for Cortex A77,
this patch also adds the required cortex_a77_reset_func in the file
lib/cpus/aarch64/cortex_a77.S.

This errata is explained in this SDEN:
https://static.docs.arm.com/101992/0010/Arm_Cortex_A77_MP074_Software_Developer_Errata_Notice_v10.pdf

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

5 years agodoc: Update memory layout for firmware configuration area
Manish V Badarkhe [Sat, 13 Jun 2020 08:42:28 +0000 (09:42 +0100)]
doc: Update memory layout for firmware configuration area

Captured the increase in firmware configuration area from
4KB to 8kB in memory layout document. Updated the documentation
to provide details about fw_config separately.

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

5 years agoplat/arm: Increase size of firmware configuration area
Manish V Badarkhe [Tue, 9 Jun 2020 10:31:17 +0000 (11:31 +0100)]
plat/arm: Increase size of firmware configuration area

Increased the size of firmware configuration area to accommodate
all configs.

Updated maximum size of following bootloaders due to increase
in firmware configs size and addition of the code in the BL2.

1. Increased maximum size of BL2 for Juno platform in no
   optimisation case.
2. Reduced maximum size of BL31 for fvp and Juno platform.
3. Reduced maximum size of BL32 for Juno platform.

Change-Id: Ifba0564df0d1fe86175bed9fae87fdcf013b1831
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
5 years agoplat/arm: Load and populate fw_config and tb_fw_config
Manish V Badarkhe [Thu, 11 Jun 2020 21:32:11 +0000 (22:32 +0100)]
plat/arm: Load and populate fw_config and tb_fw_config

Modified the code to do below changes:

1. Load tb_fw_config along with fw_config by BL1.
2. Populate fw_config device tree information in the
   BL1 to load tb_fw_config.
3. In BL2, populate fw_config information to retrieve
   the address of tb_fw_config and then tb_fw_config
   gets populated using retrieved address.
4. Avoid processing of configuration file in case of error
   value returned from "fw_config_load" function.
5. Updated entrypoint information for BL2 image so
   that it's arg0 should point to fw_config address.

Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
Change-Id: Ife6f7b673a074e7f544ee3d1bda7645fd5b2886c

5 years agoMerge "Fix usage of incorrect function name" into integration
Sandrine Bailleux [Thu, 25 Jun 2020 07:14:41 +0000 (07:14 +0000)]
Merge "Fix usage of incorrect function name" into integration

5 years agoplat/fvp: Dynamic description of clock freq
laurenw-arm [Wed, 10 Jun 2020 21:33:18 +0000 (16:33 -0500)]
plat/fvp: Dynamic description of clock freq

Query clock frequency in runtime using FCONF getter API

Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com>
Change-Id: Ie6a8a62d8d190b9994feffb167a1d48829913e9b

5 years agofconf: Extract Timer clock freq from HW_CONFIG dtb
laurenw-arm [Thu, 6 Feb 2020 17:42:18 +0000 (11:42 -0600)]
fconf: Extract Timer clock freq from HW_CONFIG dtb

Extract Timer clock frequency from the timer node in
HW_CONFIG dtb. The first timer is a per-core architected timer attached
to a GIC to deliver its per-processor interrupts via PPIs.

Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com>
Change-Id: I2f4b27c48e4c79208dab9f03c768d9221ba6ca86

5 years agoRedirect security incident report to TrustedFirmware.org
Sandrine Bailleux [Mon, 22 Jun 2020 10:11:47 +0000 (12:11 +0200)]
Redirect security incident report to TrustedFirmware.org

All projects under the TrustedFirmware.org project now use the same
security incident process, therefore update the disclosure/vulnerability
reporting information in the TF-A documentation.

------------------------------------------------------------------------
/!\ IMPORTANT /!\

Please note that the email address to send these reports to has changed.
Please do *not* use trusted-firmware-security@arm.com anymore.

Similarly, the PGP key provided to encrypt emails to the security email
alias has changed as well. Please do *not* use the former one provided
in the TF-A source tree. It is recommended to remove it from your
keyring to avoid any mistake. Please use the new key provided on
TrustedFirmware.org from now on.
------------------------------------------------------------------------

Change-Id: I14eb61017ab99182f1c45d1e156b96d5764934c1
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
5 years agofconf: Handle error from fconf_load_config
Manish V Badarkhe [Thu, 11 Jun 2020 21:25:53 +0000 (22:25 +0100)]
fconf: Handle error from fconf_load_config

Updated 'fconf_load_config' function to return
the error.
Error from 'fconf_load_config" gets handled
by BL1 in subsequent patches.

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

5 years agoplat/arm: Update the fw_config load call and populate it's information
Manish V Badarkhe [Thu, 11 Jun 2020 21:09:10 +0000 (22:09 +0100)]
plat/arm: Update the fw_config load call and populate it's information

Modified the code to do below changes:

1. Migrates the Arm platforms to the API changes introduced in the
   previous patches by fixing the fconf_load_config() call.
2. Retrieve dynamically the address of tb_fw_config using fconf
   getter api which is subsequently used to write mbedTLS heap
   address and BL2 hash data in the tb_fw_config DTB.

Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
Change-Id: I3c9d9345dcbfb99127c61d5589b4aa1532fbf4be

5 years agofconf: Allow fconf to load additional firmware configuration
Manish V Badarkhe [Thu, 11 Jun 2020 21:17:30 +0000 (22:17 +0100)]
fconf: Allow fconf to load additional firmware configuration

Modified the `fconf_load_config` function so that it can
additionally support loading of tb_fw_config along with
fw_config.

Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
Change-Id: Ie060121d367ba12e3fcac5b8ff169d415a5c2bcd

5 years agofconf: Clean confused naming between TB_FW and FW_CONFIG
Manish V Badarkhe [Sun, 31 May 2020 09:17:59 +0000 (10:17 +0100)]
fconf: Clean confused naming between TB_FW and FW_CONFIG

Cleaned up confused naming between TB_FW and FW_CONFIG.

Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
Change-Id: I9e9f6e6ca076d38fee0388f97d370431ae067f08

5 years agotbbr/dualroot: Add fw_config image in chain of trust
Louis Mayencourt [Thu, 11 Jun 2020 20:15:15 +0000 (21:15 +0100)]
tbbr/dualroot: Add fw_config image in chain of trust

fw_config image is authenticated using secure boot framework by
adding it into the single root and dual root chain of trust.

The COT for fw_config image looks as below:

+------------------+       +-------------------+
| ROTPK/ROTPK Hash |------>| Trusted Boot fw   |
+------------------+       | Certificate       |
                           | (Auth Image)      |
                          /+-------------------+
                         /                   |
                        /                    |
                       /                     |
                      /                      |
                     L                       v
+------------------+       +-------------------+
| fw_config hash   |------>| fw_config         |
|                  |       | (Data Image)      |
+------------------+       +-------------------+

Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
Change-Id: I08fc8ee95c29a95bb140c807dd06e772474c7367

5 years agocert_tool: Update cert_tool for fw_config image support
Manish V Badarkhe [Thu, 11 Jun 2020 20:08:45 +0000 (21:08 +0100)]
cert_tool: Update cert_tool for fw_config image support

Updated cert_tool to add hash information of fw_config image into
the existing "trusted boot fw" certificate.

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

5 years agofiptool: Add fw_config in FIP
Manish V Badarkhe [Thu, 11 Jun 2020 20:02:03 +0000 (21:02 +0100)]
fiptool: Add fw_config in FIP

Added support in fiptool to include fw_config image
in FIP.

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

5 years agoplat/arm: Rentroduce tb_fw_config device tree
Manish V Badarkhe [Sun, 31 May 2020 07:53:40 +0000 (08:53 +0100)]
plat/arm: Rentroduce tb_fw_config device tree

Moved BL2 configuration nodes from fw_config to newly
created tb_fw_config device tree.

fw_config device tree's main usage is to hold properties shared
across all BLx images.
An example is the "dtb-registry" node, which contains the
information about the other device tree configurations
(load-address, size).

Also, Updated load-address of tb_fw_config which is now located
after fw_config in SRAM.

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

5 years agoMerge changes Ifc34f2e9,Iefd58159 into integration
Lauren Wehrmeister [Tue, 23 Jun 2020 20:17:24 +0000 (20:17 +0000)]
Merge changes Ifc34f2e9,Iefd58159 into integration

* changes:
  Workaround for Cortex A76 erratum 1800710
  Workaround for Cortex A76 erratum 1791580

5 years agoFix usage of incorrect function name
Sheetal Tigadoli [Tue, 23 Jun 2020 15:42:28 +0000 (21:12 +0530)]
Fix usage of incorrect function name

Signed-off-by: Sheetal Tigadoli <sheetal.tigadoli@broadcom.com>
Change-Id: Ic387630c096361ea9a963cde0018a0efb63e3bd2

5 years agoMerge "FFA Version interface update" into integration
Manish Pandey [Tue, 23 Jun 2020 15:12:03 +0000 (15:12 +0000)]
Merge "FFA Version interface update" into integration

5 years agodoc: Add a binding document for COT descriptors
Manish V Badarkhe [Tue, 23 Jun 2020 09:30:42 +0000 (10:30 +0100)]
doc: Add a binding document for COT descriptors

Added a binding document for COT descriptors which is going
to be used in order to create COT desciptors at run-time.

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

5 years agoFFA Version interface update
J-Alves [Tue, 26 May 2020 13:03:05 +0000 (14:03 +0100)]
FFA Version interface update

Change handler of FFA version interface:
- Return SPMD's version if the origin of the call is secure;
- Return SPMC's version if origin is non-secure.

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

5 years agostm32mp1: SP_MIN embeds Arm Architecture services
Etienne Carriere [Tue, 23 Jun 2020 07:26:15 +0000 (09:26 +0200)]
stm32mp1: SP_MIN embeds Arm Architecture services

Embed Arch Architecture SMCCC services in stm32mp1 SP_MIN. This
service is needed by Linux kernel to setup the SMCCC conduit
used by its SCMI SMC transport driver.

Change-Id: I454a7ef3048a77ab73fff945e8115b60445d5841
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
5 years agostm32mp1: use last page of SYSRAM as SCMI shared memory
Etienne Carriere [Sun, 8 Dec 2019 07:17:56 +0000 (08:17 +0100)]
stm32mp1: use last page of SYSRAM as SCMI shared memory

SCMI shared memory is used to exchange message payloads between
secure SCMI services and non-secure SCMI agents. It is mapped
uncached (device) mainly to conform to existing support in
the Linux kernel. Note that executive messages are mostly short
(few 32bit words) hence not using cache will not penalize much
performances.

Platform stm32mp1 shall configure ETZPC to harden properly the
secure and non-secure areas of the SYSRAM address space, that before
CPU accesses the shared memory when mapped non-secure.

This change defines STM32MP_SEC_SYSRAM_BASE/STM32MP_SEC_SYSRAM_SIZE and
STM32MP_NS_SYSRAM_BASE/STM32MP_NS_SYSRAM_SIZE.

Change-Id: I71ff02a359b9668ae1c5a71b5f102cf3d310f289
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
5 years agostm32mp1: check stronger the secondary CPU entry point
Etienne Carriere [Mon, 8 Jun 2020 18:25:08 +0000 (20:25 +0200)]
stm32mp1: check stronger the secondary CPU entry point

When using SP_min as monitor, only sp_min_warm_entrypoint() is a valid
secure entry point.

Change-Id: I440cec798e901b11a34dd482c33b2e378a8328ab
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
Signed-off-by: Nicolas Toromanoff <nicolas.toromanoff@st.com>
5 years agostm32mp1: disable neon in sp_min
Etienne Carriere [Fri, 10 Apr 2020 16:51:54 +0000 (18:51 +0200)]
stm32mp1: disable neon in sp_min

Disable use of Neon VFP support for platform stm32mp1 when
building with SP_MIN runtime services as these can conflict with
non-secure world use of NEON support. This is preferred over a
systematic backup/restore of NEON context when switching
between non-secure and secure worlds.

When NEON support is disabled, this is done for both BL2 and BL32 as
build process uses common libraries built once for both binaries.

Change-Id: I4e8808dcb6ef58fc839e6f85fd6e45cfbaa34be0
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
5 years agostm32mp1: shared resources: apply registered configuration
Etienne Carriere [Wed, 13 May 2020 08:07:45 +0000 (10:07 +0200)]
stm32mp1: shared resources: apply registered configuration

BL32/SP_MIN configures platform security hardening from the shared
resources driver.  At the end of SP_MIN initialization, all shared
resources shall be assigned to secure or non-secure world by
drivers. A lock prevent from further change on the resource
assignation. By definition, resources not registered are assign
to non-secure world since not claimed by any component on the BL.

No functional change as all resources are currently in state
SHRES_UNREGISTERED hence assigned to non-secure world as prior
this change in stm32mp1_etzpc_early_setup() and
sp_min_platform_setup().

Change-Id: Ic41fab47216c3b8b7a6a75b8358cfcec411ed941
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
5 years agostm32mp1: shared resources: count GPIOZ bank pins
Etienne Carriere [Wed, 13 May 2020 08:13:54 +0000 (10:13 +0200)]
stm32mp1: shared resources: count GPIOZ bank pins

Get number of pins in the GPIOZ bank with helper function
fdt_get_gpio_bank_pin_count(). Save the value in RAM to prevent
parsing the FDT several time for the same information.

Change-Id: Ie68e300804461ffce09914100a7d2962116023b5
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
5 years agostm32mp1: shared resources: define resource identifiers
Etienne Carriere [Mon, 2 Dec 2019 09:08:48 +0000 (10:08 +0100)]
stm32mp1: shared resources: define resource identifiers

Define enum stm32mp_shres for platform stm32mp1. The enumerated
type defines all resources that can be assigned to secure or
non-secure worlds at run time for the platform.

Change-Id: I5de20d72735856645f1efd0993643278e8d35bcb
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
5 years agostm32mp1: introduce shared resources support
Etienne Carriere [Sun, 8 Dec 2019 07:14:03 +0000 (08:14 +0100)]
stm32mp1: introduce shared resources support

STM32MP1 SoC includes peripheral interfaces that can be assigned to
the secure world, or that can be opened to the non-secure world.

This change introduces the basics of a driver that manages such
resources which assignation is done at run time. It currently offers
API functions that state whether a service exposed to non-secure
world has permission to access a targeted clock or reset controller.

Change-Id: Iff20028f41586bc501085488c03546ffe31046d8
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
5 years agoWorkaround for Cortex A76 erratum 1800710
johpow01 [Tue, 2 Jun 2020 20:02:28 +0000 (15:02 -0500)]
Workaround for Cortex A76 erratum 1800710

Cortex A76 erratum 1800710 is a Cat B erratum, present in older
revisions of the Cortex A76 processor core.  The workaround is to
set a bit in the ECTLR_EL1 system register, which disables allocation
of splintered pages in the L2 TLB.

This errata is explained in this SDEN:
https://static.docs.arm.com/sden885749/g/Arm_Cortex_A76_MP052_Software_Developer_Errata_Notice_v20.pdf

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

5 years agoWorkaround for Cortex A76 erratum 1791580
johpow01 [Fri, 29 May 2020 19:17:38 +0000 (14:17 -0500)]
Workaround for Cortex A76 erratum 1791580

Cortex A76 erratum 1791580 is a Cat B erratum present in earlier
revisions of the Cortex A76. The workaround is to set a bit in the
implementation defined CPUACTLR2 register, which forces atomic store
operations to write-back memory to be performed in the L1 data cache.

This errata is explained in this SDEN:
https://static.docs.arm.com/sden885749/g/Arm_Cortex_A76_MP052_Software_Developer_Errata_Notice_v20.pdf

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

5 years agoMerge changes from topic "tegra-memctrlv2-vpr-resize-bugfix" into integration
Manish Pandey [Mon, 22 Jun 2020 21:45:12 +0000 (21:45 +0000)]
Merge changes from topic "tegra-memctrlv2-vpr-resize-bugfix" into integration

* changes:
  Tegra: sanity check NS address and size before use
  Tegra: memctrl_v2: fixup sequence to resize video memory

5 years agoMerge "TF-A GIC driver: Add barrier before eoi" into integration
Madhukar Pappireddy [Mon, 22 Jun 2020 19:57:52 +0000 (19:57 +0000)]
Merge "TF-A GIC driver: Add barrier before eoi" into integration

5 years agoMerge "TF-A: Add ARMv8.5 'bti' build option" into integration
Mark Dykes [Mon, 22 Jun 2020 19:07:03 +0000 (19:07 +0000)]
Merge "TF-A: Add ARMv8.5 'bti' build option" into integration

5 years agoMerge changes from topic "scmi-msg" into integration
Manish Pandey [Mon, 22 Jun 2020 14:24:31 +0000 (14:24 +0000)]
Merge changes from topic "scmi-msg" into integration

* changes:
  drivers/scmi-msg: smt entry points for incoming messages
  drivers/scmi-msg: support for reset domain protocol
  drivers/scmi-msg: support for clock protocol
  drivers/scmi-msg: driver for processing scmi messages

5 years agoMerge "Fix typo in file Header guard" into integration
Sandrine Bailleux [Mon, 22 Jun 2020 12:20:40 +0000 (12:20 +0000)]
Merge "Fix typo in file Header guard" into integration

5 years agoTF-A GIC driver: Add barrier before eoi
Sandeep Tripathy [Fri, 5 Jun 2020 16:34:21 +0000 (22:04 +0530)]
TF-A GIC driver: Add barrier before eoi

It is desired to have the peripheral writes completed to clear the
interrupt condition and de-assert the interrupt request to GIC before
EOI write. Failing which spurious interrupt will occurred.

A barrier is needed to ensure peripheral register write transfers are
complete before EOI is done.

GICv2 memory mapped DEVICE nGnR(n)E writes are ordered from core point
of view. However these writes may pass over different interconnects,
bridges, buffers leaving some rare chances for the actual write to
complete out of order.

GICv3 ICC EOI system register writes have no ordering against nGnR(n)E
memory writes as they are over different interfaces.

Hence a dsb can ensure from core no writes are issued before the previous
writes are *complete*.

Signed-off-by: Sandeep Tripathy <sandeep.tripathy@broadcom.com>
Change-Id: Ie6362009e2f91955be99dca8ece14ade7b4811d6

5 years agoMerge "Tegra: introduce support for GICv3" into integration
Olivier Deprez [Mon, 22 Jun 2020 09:16:30 +0000 (09:16 +0000)]
Merge "Tegra: introduce support for GICv3" into integration

5 years agoFix typo in file Header guard
Sheetal Tigadoli [Tue, 2 Jun 2020 12:58:09 +0000 (18:28 +0530)]
Fix typo in file Header guard

Signed-off-by: Sheetal Tigadoli <sheetal.tigadoli@broadcom.com>
Change-Id: Iaf6deaeee2069720518221157edbb052bc42850a

5 years agoTegra: sanity check NS address and size before use
Varun Wadekar [Wed, 3 Jun 2020 04:16:00 +0000 (21:16 -0700)]
Tegra: sanity check NS address and size before use

This patch updates the 'bl31_check_ns_address()' helper function to
check that the memory address and size passed by the NS world are not
zero.

The helper fucntion also returns the error code as soon as it detects
inconsistencies, to avoid multiple error paths from kicking in for the
same input parameters.

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

5 years agoplat: marvell: armada: a8k: add OP-TEE OS MMU tables
Konstantin Porotchkin [Mon, 15 Apr 2019 13:29:08 +0000 (16:29 +0300)]
plat: marvell: armada: a8k: add OP-TEE OS MMU tables

Adjust the latest OP-TEE memory definitions to the
newest TF-A baseline.

Change-Id: Ib9c82b85f868adaf3c7285eb340486bda9c59c36
Signed-off-by: Konstantin Porotchkin <kostap@marvell.com>
5 years agodrivers: marvell: add support for mapping the entire LLC to SRAM
Konstantin Porotchkin [Sun, 31 Mar 2019 13:58:11 +0000 (16:58 +0300)]
drivers: marvell: add support for mapping the entire LLC to SRAM

Add llc_sram_enable() and llc_sram_disable() APIs to Marvell
cache_lls driver.
Add LLC_SRAM definition to Marvell common makefile - disabled
by the default.
Add description of LLC_SRAM flag to the build documentation.

Change-Id: Ib348e09752ce1206d29268ef96c9018b781db182
Signed-off-by: Konstantin Porotchkin <kostap@marvell.com>
5 years agoplat: marvell: armada: add LLC SRAM CCU setup for AP806/AP807 platforms
Konstantin Porotchkin [Sun, 31 Mar 2019 14:16:35 +0000 (17:16 +0300)]
plat: marvell: armada: add LLC SRAM CCU setup for AP806/AP807 platforms

Extend the CCU tables with secure SRAM window in all board
setups that uses SoCs based on AP806/AP807 North Bridges

Change-Id: I4dc315e4ea847562ac8648d8a8739244b548c70e
Signed-off-by: Konstantin Porotchkin <kostap@marvell.com>
5 years agoplat: marvell: armada: reduce memory size reserved for FIP image
Marcin Wojtas [Fri, 19 Jun 2020 15:51:08 +0000 (17:51 +0200)]
plat: marvell: armada: reduce memory size reserved for FIP image

It is not needed to reserve 64MB for FIP. Limit this to 4MB
for both supported Armada SoC families.

Change-Id: I58a8ce4408a646fe1afd3c1ea1ed54007c8d205d
Signed-off-by: Konstantin Porotchkin <kostap@marvell.com>
[Extract from bigger commit]
Signed-off-by: Marcin Wojtas <mw@semihalf.com>
5 years agoplat: marvell: armada: platform definitions cleanup
Konstantin Porotchkin [Fri, 19 Jun 2020 15:48:48 +0000 (17:48 +0200)]
plat: marvell: armada: platform definitions cleanup

- Remove
    TRUSTED_DRAM_BASE
    TRUSTED_DRAM_SIZE
    MARVELL_TRUSTED_SRAM_BASE
- Rename
    PLAT_MARVELL_TRUSTED_DRAM_* -> PLAT_MARVELL_TRUSTED_RAM_*
    PLAT_MARVELL_TRUSTED_SRAM_* -> MARVELL_TRUSTED_DRAM_*
    MARVELL_MAP_SHARED_RAM -> MARVELL_MAP_SECURE_RAM
- Move
    MARVELL_TRUSTED_DRAM_SIZE to marvell_def.h
- Enable MARVELL_MAP_SECURE_RAM region in BL2U memory map
- Add dependency of MARVELL_MAP_SHARED_RAM on LLC_SRAM
- Add minor style improvents

Change-Id: Iebc03361e4f88489af1597f54e137b27c241814c
Signed-off-by: Konstantin Porotchkin <kostap@marvell.com>
[Improve patch after rebase]
Signed-off-by: Marcin Wojtas <mw@semihalf.com>
5 years agoplat: marvell: armada: a8k: check CCU window state before loading MSS BL2
Konstantin Porotchkin [Sun, 31 Mar 2019 14:22:53 +0000 (17:22 +0300)]
plat: marvell: armada: a8k: check CCU window state before loading MSS BL2

Make sure the current CCU window is not in use before adding
a new address map during MSS BL2 image load preparations.
At BL2 stage the CCU Win-2 points to DRAM. If additional mapping is
added to MSS BL2 stage initialization, the DDR entry will be destroyed
and lead to the system hang.

Change-Id: I215e83508acc37d54dab6954d791b9a74cc883ca
Signed-off-by: Konstantin Porotchkin <kostap@marvell.com>
5 years agodrivers: marvell: add CCU driver API for window state checking
Konstantin Porotchkin [Sun, 31 Mar 2019 14:20:19 +0000 (17:20 +0300)]
drivers: marvell: add CCU driver API for window state checking

Add ccu_is_win_enabled() API for checking the CCU window
state using AP and window indexes.

Change-Id: Ib955a2cac28b2729b0a763f3bbbea28b476a2fe4
Signed-off-by: Konstantin Porotchkin <kostap@marvell.com>
5 years agodrivers: marvell: align and extend llc macros
Konstantin Porotchkin [Mon, 25 Mar 2019 13:35:41 +0000 (15:35 +0200)]
drivers: marvell: align and extend llc macros

Make all LLC-related macros to start with the same prefix
Add more LLC control registers definitions
This patch is a preparation step for LLC SRAM support

Change-Id: I0a4f0fc83e8ef35be93dd239a85f2a9f88d1ab19
Signed-off-by: Konstantin Porotchkin <kostap@marvell.com>
5 years agoplat: marvell: a8k: move address config of cp1/2 to BL2
Ben Peled [Tue, 26 Mar 2019 17:06:24 +0000 (19:06 +0200)]
plat: marvell: a8k: move address config of cp1/2 to BL2

The configuration space of each standalone CP was updated in BL31.
Loading FW procedure take places earlier in SCP_BL2.
It needs to be done after access to each CP is provided.
Moving the proper configuration from BL31 to BL2 solves it.

Change-Id: I44cf88dfd4ebf09130544332bfdd3d16ef2674ea
Signed-off-by: Ben Peled <bpeled@marvell.com>
5 years agoplat: marvell: armada: re-enable BL32_BASE definition
Konstantin Porotchkin [Thu, 14 Mar 2019 15:24:40 +0000 (17:24 +0200)]
plat: marvell: armada: re-enable BL32_BASE definition

As a preparation to support proper loading the OPTEE OS image,
enable the BL32 specific defines in case the SPD is used.

On the occasion move two BL32-related macros to marvell_def.h
and fix BL32_LIMIT definition.

Change-Id: Id4e2d81833bc1895650cca8b0fc0bfc341cf77f3
Signed-off-by: Konstantin Porotchkin <kostap@marvell.com>
Signed-off-by: Marcin Wojtas <mw@semihalf.com>
5 years agoplat: marvell: a8k: extend includes to take advantage of the phy_porting_layer
Grzegorz Jaszczyk [Thu, 28 Mar 2019 15:09:38 +0000 (16:09 +0100)]
plat: marvell: a8k: extend includes to take advantage of the phy_porting_layer

The phy porting layer uses defaults defined in
"phy-default-porting-layer.h" when board specific file
"phy-porting-layer.h" is not found. Because of the regression the board
specific directory was not included, therefore all boards used default
parameters.

Change-Id: I66e5e6eb8a39cca5aeeb4de6dab2ceddc39c1e31
Signed-off-by: Grzegorz Jaszczyk <jaz@semihalf.com>
5 years agomarvell: comphy: initialize common phy selector for AP mode
Grzegorz Jaszczyk [Thu, 28 Mar 2019 12:02:42 +0000 (13:02 +0100)]
marvell: comphy: initialize common phy selector for AP mode

Configuring common phy selector which was missing for AP mode.

Change-Id: I15be1ba50b8aafe9094734abec139d72c18bb224
Signed-off-by: Grzegorz Jaszczyk <jaz@semihalf.com>
5 years agomarvell: comphy: update rx_training procedure
Grzegorz Jaszczyk [Fri, 8 Mar 2019 18:51:21 +0000 (19:51 +0100)]
marvell: comphy: update rx_training procedure

1) Relay only on rx training, remove parts responsible for tx training
(trx training).
2) Add extra steps e.g. preconfigure FFE before starting training.
3) Remove some unnecessary steps like RRBS31 loopback setting which
shouldn't be relevant for tx_training.

Change-Id: Ib1e8567714f9ce33578186a262c339aa4b1c51f2
Signed-off-by: Grzegorz Jaszczyk <jaz@semihalf.com>
5 years agoplat: marvell: armada: configure amb for all CPs
Grzegorz Jaszczyk [Fri, 12 Apr 2019 10:56:07 +0000 (12:56 +0200)]
plat: marvell: armada: configure amb for all CPs

Before this patch the configuration took place only for CP0 and CP1, but
since new platforms can contains up to 3 CPs update is required.

Change-Id: Iebd50bbe7b9772063e2c4efb3a7ecbfd593e950d
Signed-off-by: Grzegorz Jaszczyk <jaz@semihalf.com>
5 years agoTF-A: Add ARMv8.5 'bti' build option
Alexei Fedorov [Fri, 19 Jun 2020 13:33:49 +0000 (14:33 +0100)]
TF-A: Add ARMv8.5 'bti' build option

This patch adds BRANCH_PROTECTION = 4 'bti' build option
which turns on branch target identification mechanism.

Change-Id: I32464a6b51726a100519f449a95aea5331f0e82d
Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
5 years agoTegra: introduce support for GICv3
Varun Wadekar [Fri, 12 Jun 2020 04:53:09 +0000 (21:53 -0700)]
Tegra: introduce support for GICv3

This patch provides the platform level support to enable GICv3
drivers on future Tegra platforms.

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

5 years agoTegra: memctrl_v2: fixup sequence to resize video memory
Varun Wadekar [Wed, 3 Jun 2020 04:08:38 +0000 (21:08 -0700)]
Tegra: memctrl_v2: fixup sequence to resize video memory

The previous sequence used by the driver to program the new memory
aperture settings and clear the non-overlapping memory was faulty.
The sequence locked the non-overlapping regions twice, leading to
faults when trying to clear it.

This patch modifies the sequence to follow these steps:

* move the previous memory region to a new firewall register
* program the new memory aperture settings
* clean the non-overlapping memory

This patch also maps the non-overlapping memory as Device memory to
follow guidance from the arch. team.

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

5 years agoplat: marvell: armada: modify PLAT_FAMILY name for 37xx SoCs
Marcin Wojtas [Thu, 18 Jun 2020 17:50:47 +0000 (19:50 +0200)]
plat: marvell: armada: modify PLAT_FAMILY name for 37xx SoCs

The Marvell Armada 37xx SoCs-based platforms contain a bit
awkward directory structure because the currently only one
supported PLAT and PLAT_FAMILY are the same. Modify the latter
to 'a3k' in order to improve it and keep plat/marvell/armada
tree more consistent:

plat/marvell/
├── armada
│   ├── a3k
│   │   ├── a3700

[...]

│   ├── a8k
│   │   ├── a70x0

[...]

Change-Id: I693a6ef88e6ce49a326a3328875c90bbc186066a
Signed-off-by: Marcin Wojtas <mw@semihalf.com>
5 years agoMerge changes I80316689,I23cac4fb,If911e7de,I169ff358,I4e040cd5, ... into integration
Manish Pandey [Wed, 17 Jun 2020 19:44:51 +0000 (19:44 +0000)]
Merge changes I80316689,I23cac4fb,If911e7de,I169ff358,I4e040cd5, ... into integration

* changes:
  ddr: a80x0: add DDR 32-bit ECC mode support
  ble: ap807: improve PLL configuration sequence
  ble: ap807: clean-up PLL configuration sequence
  ddr: a80x0: add DDR 32-bit mode support
  plat: marvell: mci: perform mci link tuning for all mci interfaces
  plat: marvell: mci: use more meaningful name for mci link tuning
  plat: marvell: a8k: remove wrong or unnecessary comments
  plat: marvell: ap807: enable snoop filter for ap807
  plat: marvell: ap807: update configuration space of each CP
  plat: marvell: ap807: use correct address for MCIx4 register
  plat: marvell: add support for PLL 2.2GHz mode
  plat: marvell: armada: make a8k_common.mk and mss_common.mk more generic
  marvell: armada: add extra level in marvell platform hierarchy

5 years agodrivers/scmi-msg: smt entry points for incoming messages
Etienne Carriere [Fri, 1 May 2020 08:36:03 +0000 (10:36 +0200)]
drivers/scmi-msg: smt entry points for incoming messages

This change implements SCMI channels for reading a SCMI message from a
shared memory and call the SCMI message drivers to route the message
to the target platform services.

SMT refers to the shared memory management protocol which is used
to get/put message/response in shared memory. SMT is a 28byte header
stating shared memory state and exchanged protocol data.

The processing entry for a SCMI message can be a secure interrupt
or fastcall SMCCC invocation.

SMT description in this implementation is based on the OP-TEE
project [1] itself based in the SCP-firmware implementation [2].

Link: [1] https://github.com/OP-TEE/optee_os/commit/a58c4d706d2333d2b21a3eba7e2ec0cb257bca1d
Link: [2] https://github.com/ARM-software/SCP-firmware.git

Change-Id: I416c7dab5c67954c6fe80bae8d8cdfdcda66873e
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
5 years agoMerge "plat/arm: Fix load address of TB_FW_CONFIG" into integration
Sandrine Bailleux [Wed, 17 Jun 2020 13:56:44 +0000 (13:56 +0000)]
Merge "plat/arm: Fix load address of TB_FW_CONFIG" into integration

5 years agodrivers/scmi-msg: support for reset domain protocol
Etienne Carriere [Fri, 1 May 2020 08:33:22 +0000 (10:33 +0200)]
drivers/scmi-msg: support for reset domain protocol

Adds SCMI reset domain protocol support in the SCMI message drivers
as defined in SCMI specification v2.0 [1]. Not all the messages
defined in the specification are supported.

scmi_msg_get_rd_handler() sanitizes the message_id value
against any speculative use of reset domain ID as a index since by
SCMI specification, IDs are indices.

This implementation is based on the OP-TEE project implementation [2]
itself based on the SCP-firmware implementation [3] of the SCMI
protocol server side.

Link: [1] http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/DEN0056A_System_Control_and_Management_Interface.pdf
Link: [2] https://github.com/OP-TEE/optee_os/commit/56a1f10ed99d683ee3a8af29b6147a59a99ef3e0
Link: [3] https://github.com/ARM-software/SCP-firmware.git

Change-Id: If7cf13de40a815dedb40dcd5af8b6bb6725d9078
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>