]> git.baikalelectronics.ru Git - arm-tf.git/log
arm-tf.git
5 years agoMerge "rockchip: rk3368: fix PLAT_RK_CLST_TO_CPUID_SHIFT" into integration
Madhukar Pappireddy [Thu, 11 Jun 2020 17:51:07 +0000 (17:51 +0000)]
Merge "rockchip: rk3368: fix PLAT_RK_CLST_TO_CPUID_SHIFT" into integration

5 years agoMerge "GICv3: GIC-600: Detect GIC-600 at runtime" into integration
Madhukar Pappireddy [Tue, 9 Jun 2020 20:17:39 +0000 (20:17 +0000)]
Merge "GICv3: GIC-600: Detect GIC-600 at runtime" into integration

5 years agoMerge "cpus: denver: disable cycle counter when event counting is prohibited" into...
Madhukar Pappireddy [Tue, 9 Jun 2020 20:11:08 +0000 (20:11 +0000)]
Merge "cpus: denver: disable cycle counter when event counting is prohibited" into integration

5 years agorockchip: rk3368: fix PLAT_RK_CLST_TO_CPUID_SHIFT
Philipp Tomsich [Wed, 5 Jul 2017 10:20:44 +0000 (12:20 +0200)]
rockchip: rk3368: fix PLAT_RK_CLST_TO_CPUID_SHIFT

The RK3368 has two clusters of 4 cores and it's cluster id starts at
bit 8 of the MPIDR.  To convert from the cluster id (0 or 1) to the
lowest CPU-ID in the respective cluster, we thus need to shift by 6
(i.e. shift by 8 to extract the cluster-id and multiply by 4).

This change is required to ensure the PSCI support can index the
per-cpu entry-address array correctly.

Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Signed-off-by: Heiko Stuebner <heiko.stuebner@theobroma-systems.com>
Change-Id: I64a76038f090a85a47067f09f750e96e3946e756

5 years agocpus: denver: disable cycle counter when event counting is prohibited
Varun Wadekar [Sun, 24 May 2020 23:26:22 +0000 (16:26 -0700)]
cpus: denver: disable cycle counter when event counting is prohibited

The Denver CPUs implement support for PMUv3 for ARMv8.1 and expect the
PMCR_EL0 to be saved in non-secure context.

This patch disables cycle counter when event counting is prohibited
immediately on entering the secure world to avoid leaking useful
information about the PMU counters. The context saving code later
saves the value of PMCR_EL0 to the non-secure world context.

Verified with 'PMU Leakage' test suite.

 ******************************* Summary *******************************
 > Test suite 'PMU Leakage'
                                                                 Passed
 =================================
 Tests Skipped : 2
 Tests Passed  : 2
 Tests Failed  : 0
 Tests Crashed : 0
 Total tests   : 4
 =================================

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

5 years agoMerge changes from topic "sp_secure_boot" into integration
Manish Pandey [Tue, 9 Jun 2020 19:47:04 +0000 (19:47 +0000)]
Merge changes from topic "sp_secure_boot" into integration

* changes:
  dualroot: add chain of trust for secure partitions
  sptool: append cert_tool arguments.
  cert_create: add SiP owned secure partitions support

5 years agoMerge "plat/fvp: Add support for dynamic description of secure interrupts" into integ...
Mark Dykes [Tue, 9 Jun 2020 19:10:04 +0000 (19:10 +0000)]
Merge "plat/fvp: Add support for dynamic description of secure interrupts" into integration

5 years agoplat/fvp: Add support for dynamic description of secure interrupts
Madhukar Pappireddy [Tue, 2 Jun 2020 14:26:30 +0000 (09:26 -0500)]
plat/fvp: Add support for dynamic description of secure interrupts

Using the fconf framework, the Group 0 and Group 1 secure interrupt
descriptors are moved to device tree and retrieved in runtime. This
feature is enabled by the build flag SEC_INT_DESC_IN_FCONF.

Change-Id: I360c63a83286c7ecc2426cd1ff1b4746d61e633c
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
5 years agoGICv3: GIC-600: Detect GIC-600 at runtime
Andre Przywara [Wed, 25 Mar 2020 15:50:38 +0000 (15:50 +0000)]
GICv3: GIC-600: Detect GIC-600 at runtime

The only difference between GIC-500 and GIC-600 relevant to TF-A is the
differing power management sequence.
A certain GIC implementation is detectable at runtime, for instance by
checking the IIDR register. Let's add that test before initiating the
GIC-600 specific sequence, so the code can be used on both GIC-600 and
GIC-500 chips alike, without deciding on a GIC chip at compile time.

This means that the GIC-500 "driver" is now redundant. To allow minimal
platform support, add a switch to disable GIC-600 support.

Change-Id: I17ea97d9fb05874772ebaa13e6678b4ba3415557
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
5 years agodualroot: add chain of trust for secure partitions
Manish Pandey [Wed, 27 May 2020 21:40:10 +0000 (22:40 +0100)]
dualroot: add chain of trust for secure partitions

A new certificate "sip-sp-cert" has been added for Silicon Provider(SiP)
owned Secure Partitions(SP). A similar support for Platform owned SP can
be added in future. The certificate is also protected against anti-
rollback using the trusted Non-Volatile counter.

To avoid deviating from TBBR spec, support for SP CoT is only provided
in dualroot.
Secure Partition content certificate is assigned image ID 31 and SP
images follows after it.

The CoT for secure partition look like below.
+------------------+       +-------------------+
| ROTPK/ROTPK Hash |------>| Trusted Key       |
+------------------+       | Certificate       |
                           | (Auth Image)      |
                          /+-------------------+
                         /                   |
                        /                    |
                       /                     |
                      /                      |
                     L                       v
+------------------+       +-------------------+
| Trusted World    |------>| SiP owned SPs     |
| Public Key       |       | Content Cert      |
+------------------+       | (Auth Image)      |
                        /   +-------------------+
                       /                      |
                      /                      v|
+------------------+ L     +-------------------+
| SP_PKG1 Hash     |------>| SP_PKG1           |
|                  |       | (Data Image)      |
+------------------+       +-------------------+
        .                           .
        .                           .
        .                           .
+------------------+       +-------------------+
| SP_PKG8 Hash     |------>| SP_PKG8           |
|                  |       | (Data Image)      |
+------------------+       +-------------------+

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

5 years agoMerge "plat/arm: do not include export header directly" into integration
Sandrine Bailleux [Tue, 9 Jun 2020 15:10:37 +0000 (15:10 +0000)]
Merge "plat/arm: do not include export header directly" into integration

5 years agoMerge "rockchip: increase FDT buffer size" into integration
Madhukar Pappireddy [Tue, 9 Jun 2020 13:56:40 +0000 (13:56 +0000)]
Merge "rockchip: increase FDT buffer size" into integration

5 years agoMerge changes from topic "fix-agilex-initialization" into integration
Manish Pandey [Mon, 8 Jun 2020 23:16:08 +0000 (23:16 +0000)]
Merge changes from topic "fix-agilex-initialization" into integration

* changes:
  plat: intel: Additional instruction required to enable global timer
  plat: intel: Fix CCU initialization for Agilex
  plat: intel: Add FPGAINTF configuration to when configuring pinmux
  plat: intel: set DRVSEL and SMPLSEL for DWMMC
  plat: intel: Fix clock configuration bugs

5 years agoplat: intel: Additional instruction required to enable global timer
Tien Hock Loh [Mon, 11 May 2020 08:12:03 +0000 (01:12 -0700)]
plat: intel: Additional instruction required to enable global timer

There are additional instruction needed to enable the global timer.
This fixes the global timer initialization

Signed-off-by: Tien Hock Loh <tien.hock.loh@intel.com>
Change-Id: Idaf2d23359aacc417e2b7d8cdf1688b5cd17ca98

5 years agoplat: intel: Fix CCU initialization for Agilex
Tien Hock Loh [Mon, 11 May 2020 08:11:55 +0000 (01:11 -0700)]
plat: intel: Fix CCU initialization for Agilex

The CCU initialization loop uses the wrong units, this fixes that. This
also fixes snoop filter register set bits should be used instead of
overwriting the register

Signed-off-by: Tien Hock Loh <tien.hock.loh@intel.com>
Change-Id: Ia15eeeae5569b00ad84120182170d353ee221b31

5 years agorockchip: increase FDT buffer size
Hugh Cole-Baker [Mon, 8 Jun 2020 21:24:36 +0000 (22:24 +0100)]
rockchip: increase FDT buffer size

The size of buffer currently used to store the FDT passed from U-Boot as
a platform parameter is not large enough to store some RK3399 device
trees. The largest RK3399 device tree currently in U-Boot (for the
Pinebook Pro) is about 70KB in size when passed to TF-A, so increase the
buffer size to 128K which gives some headroom for possibly larger FDTs
in future.

Signed-off-by: Hugh Cole-Baker <sigmaris@gmail.com>
Change-Id: I414caf20683cd47c02ee470dfa988544f3809919

5 years agoplat: intel: Add FPGAINTF configuration to when configuring pinmux
Tien Hock Loh [Mon, 11 May 2020 08:11:48 +0000 (01:11 -0700)]
plat: intel: Add FPGAINTF configuration to when configuring pinmux

FPGAINTF wasn't enabled when configuring pinmux. This fixes the issue.

Signed-off-by: Tien Hock Loh <tien.hock.loh@intel.com>
Change-Id: I5a6aacd504901b8f7327b2f4854b8a77d0c37019

5 years agoplat: intel: set DRVSEL and SMPLSEL for DWMMC
Tien Hock Loh [Mon, 11 May 2020 08:11:39 +0000 (01:11 -0700)]
plat: intel: set DRVSEL and SMPLSEL for DWMMC

DRVSEL and SMPLSEL needs to be set so that it can properly go into full
speed mode. This needs to be done in EL3 as the registers are secured.

Signed-off-by: Tien Hock Loh <tien.hock.loh@intel.com>
Change-Id: Ia2f348e7742ff7b76da74d392ef1ce71e2f41677

5 years agoplat: intel: Fix clock configuration bugs
Tien Hock Loh [Mon, 11 May 2020 08:11:23 +0000 (01:11 -0700)]
plat: intel: Fix clock configuration bugs

This fixes a few issues on the Agilex clock configuration:
- Set clock manager into boot mode before configuring clock
- Fix wrong divisor used when calculating vcocalib
- PLL sync configuration should be read and then written
- Wait PLL lock after PLL sync configuration is done
- Clear interrupt bits instead of set interrupt bits after configuration

Signed-off-by: Tien Hock Loh <tien.hock.loh@intel.com>
Change-Id: I54c1dc5fe9b102e3bbc1237a92d8471173b8af70

5 years agosptool: append cert_tool arguments.
Manish Pandey [Tue, 26 May 2020 22:59:36 +0000 (23:59 +0100)]
sptool: append cert_tool arguments.

To support secure boot of SP's update cert tool arguments while
generating sp_gen.mk which in turn is consumed by build system.

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

5 years agocert_create: add SiP owned secure partitions support
Manish Pandey [Fri, 22 May 2020 11:27:28 +0000 (12:27 +0100)]
cert_create: add SiP owned secure partitions support

Add support to generate certificate "sip-sp-cert" for Secure
Partitions(SP) owned by Silicon provider(SiP).
To avoid deviation from TBBR specification the support is only added for
dualroot CoT and not for TBBR CoT.

A single certificate file is generated containing hash of individual
packages. Maximum 8 secure partitions are supported.

Following new options added to cert_tool:
 --sip-sp-cert --> SiP owned Secure Partition Content Certificate
 --sp-pkg1 --> Secure Partition Package1 file
 --sp-pkg2
 .....
 --sp-pkg8

Trusted world key pair is used for signing.

Going forward, this feature can be extended for Platfrom owned
Partitions, if required.

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

5 years agoplat/arm: do not include export header directly
Manish Pandey [Mon, 8 Jun 2020 13:48:09 +0000 (14:48 +0100)]
plat/arm: do not include export header directly

As per "include/export/README", TF-A code should never include export
headers directly. Instead, it should include a wrapper header that
ensures the export header is included in the right manner.

"tbbr_img_def_exp.h" is directly included in TF-A code, this patch
replaces it with its  wrapper header "tbbr_img_def.h".

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

5 years agoMerge "ti: k3: common: Make UART number configurable" into integration
Madhukar Pappireddy [Fri, 5 Jun 2020 22:32:13 +0000 (22:32 +0000)]
Merge "ti: k3: common: Make UART number configurable" into integration

5 years agoMerge "rockchip: rk3368: increase MAX_MMAP_REGIONS" into integration
Madhukar Pappireddy [Fri, 5 Jun 2020 22:30:18 +0000 (22:30 +0000)]
Merge "rockchip: rk3368: increase MAX_MMAP_REGIONS" into integration

5 years agorockchip: rk3368: increase MAX_MMAP_REGIONS
Heiko Stuebner [Fri, 5 Jun 2020 15:51:19 +0000 (17:51 +0200)]
rockchip: rk3368: increase MAX_MMAP_REGIONS

Current value is 16, count the MAP_REGION calls gets us at least 17,
so increase the max value to 20 to have a bit of a margin.

Signed-off-by: Heiko Stuebner <heiko.stuebner@theobroma-systems.com>
Change-Id: I93d0324f3d483758366e758f8f663545d365e03f

5 years agoMerge "xlat_tables_v2: add base table section name parameter for spm_mm" into integration
Lauren Wehrmeister [Thu, 4 Jun 2020 18:35:30 +0000 (18:35 +0000)]
Merge "xlat_tables_v2: add base table section name parameter for spm_mm" into integration

5 years agoMerge "dts: stm32mp157c: fix etzpc node location in DTSI file" into integration
Manish Pandey [Thu, 4 Jun 2020 09:05:47 +0000 (09:05 +0000)]
Merge "dts: stm32mp157c: fix etzpc node location in DTSI file" into integration

5 years agoMerge "ti: k3: common: Implement stub system_off" into integration
Manish Pandey [Wed, 3 Jun 2020 22:12:38 +0000 (22:12 +0000)]
Merge "ti: k3: common: Implement stub system_off" into integration

5 years agoMerge "Rename Cortex-Hercules to Cortex-A78" into integration
Madhukar Pappireddy [Wed, 3 Jun 2020 19:26:34 +0000 (19:26 +0000)]
Merge "Rename Cortex-Hercules to Cortex-A78" into integration

5 years agoMerge "Rename Cortex Hercules Files to Cortex A78" into integration
Madhukar Pappireddy [Wed, 3 Jun 2020 19:26:08 +0000 (19:26 +0000)]
Merge "Rename Cortex Hercules Files to Cortex A78" into integration

5 years agodts: stm32mp157c: fix etzpc node location in DTSI file
Etienne Carriere [Wed, 3 Jun 2020 16:12:20 +0000 (18:12 +0200)]
dts: stm32mp157c: fix etzpc node location in DTSI file

Fix etzpc node location in stm32mp157c DTSI file as requested during the
patch review. The comment was addressed then fixup change discarded while
rebasing.

Change-Id: Ie53531fec7da224de0b86c968a66aec441bfc25d
Fixes: 627298d4b655 ("dts: stm32mp157c: add etzpc node")
Reported-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
5 years agoMerge "qemu/qemu_sbsa: increase size to handle fdt" into integration
Manish Pandey [Wed, 3 Jun 2020 15:49:14 +0000 (15:49 +0000)]
Merge "qemu/qemu_sbsa: increase size to handle fdt" into integration

5 years agoqemu/qemu_sbsa: increase size to handle fdt
Masahisa Kojima [Tue, 19 May 2020 10:49:36 +0000 (19:49 +0900)]
qemu/qemu_sbsa: increase size to handle fdt

64KB was not enouth to handle fdt, bl2 shows
following error message.

"ERROR:   Invalid Device Tree at 0x10000000000: error -3"

This patch increases the size to 1MB to address above error.

Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org>
Change-Id: I0726a0cea95087175451da0dba7410acd27df808

5 years agoMerge "marvell: drivers: mochi: specify stream ID for SD/MMC" into integration
Manish Pandey [Wed, 3 Jun 2020 15:18:33 +0000 (15:18 +0000)]
Merge "marvell: drivers: mochi: specify stream ID for SD/MMC" into integration

5 years agoMerge changes from topic "stm32-etzpc" into integration
Manish Pandey [Wed, 3 Jun 2020 15:11:43 +0000 (15:11 +0000)]
Merge changes from topic "stm32-etzpc" into integration

* changes:
  plat/stm32mp1: sp_min relies on etzpc driver
  dts: stm32mp157c: add etzpc node
  drivers: introduce ST ETZPC driver

5 years agoMerge changes from topic "jb/8.6-features" into integration
Manish Pandey [Wed, 3 Jun 2020 14:23:29 +0000 (14:23 +0000)]
Merge changes from topic "jb/8.6-features" into integration

* changes:
  Enable ARMv8.6-ECV Self-Synch when booting to EL2
  Enable ARMv8.6-FGT when booting to EL2

5 years agoplat/stm32mp1: sp_min relies on etzpc driver
Etienne Carriere [Fri, 10 Apr 2020 09:32:54 +0000 (11:32 +0200)]
plat/stm32mp1: sp_min relies on etzpc driver

Use ETZPC driver to configure secure aware interfaces to assign
them to non-secure world. Sp_min also configures BootROM resources
and SYSRAM to assign both to secure world only.

Define stm32mp15 SoC identifiers for the platform specific DECPROT
instances.

Change-Id: I3bec9f47b04bcba3929e4df886ddb1d5ff843089
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
5 years agodts: stm32mp157c: add etzpc node
Etienne Carriere [Sun, 8 Dec 2019 07:16:43 +0000 (08:16 +0100)]
dts: stm32mp157c: add etzpc node

Add a node for the ETZPC device so that driver initializes during
stm32mp15* boot sequence.

Change-Id: I84bf10572e5df7b8f450163c79bcfe6956fc838f
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
5 years agodrivers: introduce ST ETZPC driver
Etienne Carriere [Sun, 8 Dec 2019 07:15:15 +0000 (08:15 +0100)]
drivers: introduce ST ETZPC driver

ETZPC stands for Extended TrustZone Protection Controller. It is a
resource conditional access device. It is mainly based on Arm TZPC.

ST ETZPC exposes memory mapped DECPROT cells to set access permissions
to SoC peripheral interfaces as I2C, SPI, DDR controllers, and some
of the SoC internal memories.

ST ETZPC exposes memory mapped TZMA cells to set access permissions
to some SoC internal memories.

Change-Id: I47ce20ffcfb55306dab923153b71e1bcbe2a5570
Co-developed-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
5 years agomarvell: drivers: mochi: specify stream ID for SD/MMC
Marcin Wojtas [Tue, 12 May 2020 16:19:33 +0000 (18:19 +0200)]
marvell: drivers: mochi: specify stream ID for SD/MMC

This patch enables the stream ID for the SD/MMC
controllers via dedicated unit register. Thanks to this
change it is possible to configure properly the
IOMMU in OS and use the SD/MMC interface in a guest
Virtual Machine.

Change-Id: I99cbd2c9882eb558ba01405d3d8a3e969f06e082
Signed-off-by: Marcin Wojtas <mw@semihalf.com>
Signed-off-by: Tomasz Nowicki <tn@semihalf.com>
5 years agoMerge "marvell: a8k: enable BL31 cache by default" into integration
Manish Pandey [Wed, 3 Jun 2020 12:13:41 +0000 (12:13 +0000)]
Merge "marvell: a8k: enable BL31 cache by default" into integration

5 years agomarvell: a8k: enable BL31 cache by default
Marcin Wojtas [Tue, 2 Jun 2020 13:12:06 +0000 (15:12 +0200)]
marvell: a8k: enable BL31 cache by default

BL31_CACHE_DISABLE flag was introduced as a work-around
for the older SoC revisions. Since it is not relevant in the
newest versions, toggle it to be disabled by default.
One can still specify it by adding 'BL31_CACHE_DISABLE=1'
string to the build command.

Change-Id: I11b52dade3ff7f8ee643b8078c6e447c45946570
Signed-off-by: Marcin Wojtas <mw@semihalf.com>
5 years agoEnable ARMv8.6-ECV Self-Synch when booting to EL2
Jimmy Brisson [Thu, 16 Apr 2020 15:48:02 +0000 (10:48 -0500)]
Enable ARMv8.6-ECV Self-Synch when booting to EL2

Enhanced Counter Virtualization, ECV, is an architecture extension introduced
in ARMv8.6. This extension allows the hypervisor, at EL2, to setup
self-synchronizing views of the timers for it's EL1 Guests. This patch pokes the
control register to enable this extension when booting a hypervisor at EL2.

Change-Id: I4e929ecdf400cea17eff1de5cf8704aa7e40973d
Signed-off-by: Jimmy Brisson <jimmy.brisson@arm.com>
5 years agoEnable ARMv8.6-FGT when booting to EL2
Jimmy Brisson [Thu, 16 Apr 2020 15:47:56 +0000 (10:47 -0500)]
Enable ARMv8.6-FGT when booting to EL2

The Fine Grained Traps (FGT) architecture extension was added to aarch64 in
ARMv8.6. This extension primarily allows hypervisors, at EL2, to trap specific
instructions in a more fine grained manner, with an enable bit for each
instruction. This patch adds support for this extension by enabling the
extension when booting an hypervisor at EL2.

Change-Id: Idb9013ed118b6a1b7b76287237096de992ca4da3
Signed-off-by: Jimmy Brisson <jimmy.brisson@arm.com>
5 years agoxlat_tables_v2: add base table section name parameter for spm_mm
Masahisa Kojima [Mon, 1 Jun 2020 20:54:13 +0000 (05:54 +0900)]
xlat_tables_v2: add base table section name parameter for spm_mm

Core spm_mm code expects the translation tables are located in the
inner & outer WBWA & shareable memory.
REGISTER_XLAT_CONTEXT2 macro is used to specify the translation
table section in spm_mm.

In the commit 363830df1c28e (xlat_tables_v2: merge
REGISTER_XLAT_CONTEXT_{FULL_SPEC,RO_BASE_TABLE}), REGISTER_XLAT_CONTEXT2
macro explicitly specifies the base xlat table goes into .bss by default.
This change affects the existing SynQuacer spm_mm implementation.
plat/socionext/synquacer/include/plat.ld.S linker script intends to
locate ".bss.sp_base_xlat_table" into "sp_xlat_table" section,
but this implementation is no longer available.

This patch adds the base table section name parameter for
REGISTER_XLAT_CONTEXT2 so that platform can specify the
inner & outer WBWA & shareable memory for spm_mm base xlat table.
If PLAT_SP_IMAGE_BASE_XLAT_SECTION_NAME is not defined, base xlat table
goes into .bss by default, the result is same as before.

Change-Id: Ie0e1a235e5bd4288dc376f582d6c44c5df6d31b2
Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org>
5 years agoRename Cortex-Hercules to Cortex-A78
Jimmy Brisson [Mon, 1 Jun 2020 15:18:22 +0000 (10:18 -0500)]
Rename Cortex-Hercules to Cortex-A78

Change-Id: I89b90cbdfc8f2aa898b4f3676a4764f060f8e138
Signed-off-by: Jimmy Brisson <jimmy.brisson@arm.com>
5 years agoRename Cortex Hercules Files to Cortex A78
Jimmy Brisson [Mon, 1 Jun 2020 21:49:34 +0000 (16:49 -0500)]
Rename Cortex Hercules Files to Cortex A78

This should allow git to easily track file moves

Signed-off-by: Jimmy Brisson <jimmy.brisson@arm.com>
Change-Id: I1592cf39a4f94209c560dc6d1a8bc1bfb21d8327

5 years agoti: k3: common: Make UART number configurable
Jan Kiszka [Wed, 20 May 2020 05:35:48 +0000 (07:35 +0200)]
ti: k3: common: Make UART number configurable

This allows to build for k3-based boards that use a different UART as
console, such as the IOT2050 which requires K3_USART=1.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Change-Id: I7171f86c3cabae2c575b8fbeecef839b48bd109b

5 years agoMerge "drivers: stm32_reset adapt interface to timeout argument" into integration
Mark Dykes [Mon, 1 Jun 2020 18:07:10 +0000 (18:07 +0000)]
Merge "drivers: stm32_reset adapt interface to timeout argument" into integration

5 years agoMerge "TF-A: Fix BL31 linker script error" into integration
Mark Dykes [Mon, 1 Jun 2020 15:45:03 +0000 (15:45 +0000)]
Merge "TF-A: Fix BL31 linker script error" into integration

5 years agodrivers: stm32_reset adapt interface to timeout argument
Etienne Carriere [Sun, 8 Dec 2019 07:14:40 +0000 (08:14 +0100)]
drivers: stm32_reset adapt interface to timeout argument

Changes stm32mp1 reset driver to API to add a timeout argument
to stm32mp_reset_assert() and stm32mp_reset_deassert() and
a return value.

With a supplied timeout, the functions wait the target reset state
is reached before returning. With a timeout of zero, the functions
simply load target reset state in SoC interface and return without
waiting.

Helper functions stm32mp_reset_set() and stm32mp_reset_release()
use a zero timeout and return without a return code.

This change updates few stm32 drivers and plat/stm32mp1 blé_plat_setup.c
accordingly without any functional change.
functional change.

Change-Id: Ia1a73a15125d3055fd8739c125b70bcb9562c27f
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
5 years agoTF-A: Fix BL31 linker script error
Alexei Fedorov [Sat, 30 May 2020 16:33:26 +0000 (17:33 +0100)]
TF-A: Fix BL31 linker script error

The patch fixes BL31 linker script error
"Init code ends past the end of the stacks"
for platforms with number of CPUs less than 4,
which is caused by __STACKS_END__ address being
lower than __INIT_CODE_END__.
The modified BL31 linker script detects such cases
and increases the total amount of stack memory,
setting __STACKS_END__ = __INIT_CODE_END__, and
CPUs' stacks are calculated by BL31 'plat_get_my_stack'
function accordingly. For platforms with more than 4 CPUs
and __INIT_CODE_END__ < __STACKS_END__ stack memory does not
increase and allocated CPUs' stacks match the existing
implementation.
The patch removes exclusion of PSCI initialization
functions from the reclaimed .init section in
'arm_reclaim_init.ld.S' script, which increases the
size of reclaimed memory region.

Change-Id: I927773e00dd84e1ffe72f9ee534f4f2fc7b6153c
Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
5 years agoMerge "Add new maintainers for the project" into integration
joanna.farley [Sat, 30 May 2020 16:16:48 +0000 (16:16 +0000)]
Merge "Add new maintainers for the project" into integration

5 years agoAdd new maintainers for the project
Sandrine Bailleux [Thu, 28 May 2020 08:38:54 +0000 (10:38 +0200)]
Add new maintainers for the project

As per the trustedfirmware.org Project Maintenance Process [1], the
current maintainers of the TF-A project have nominated some contributors
to become maintainers themselves. List them in the maintainers.rst file
to make this official.

[1] https://developer.trustedfirmware.org/w/collaboration/project-maintenance-process/

Change-Id: Id4e3cfd12a9074f4e255087fa5dd6fa5f902845f
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
5 years agoMerge "drivers: stm32mp1 clocks: fix debug trace on clock enable/disable" into integr...
Mark Dykes [Thu, 28 May 2020 18:15:36 +0000 (18:15 +0000)]
Merge "drivers: stm32mp1 clocks: fix debug trace on clock enable/disable" into integration

5 years agoMerge "drivers: stm32mp1 clocks: enable system clocks during initialization" into...
Mark Dykes [Thu, 28 May 2020 18:14:33 +0000 (18:14 +0000)]
Merge "drivers: stm32mp1 clocks: enable system clocks during initialization" into integration

5 years agoMerge "drivers: stm32mp1 clocks: prevent crash on always on clocks" into integration
Mark Dykes [Thu, 28 May 2020 18:12:57 +0000 (18:12 +0000)]
Merge "drivers: stm32mp1 clocks: prevent crash on always on clocks" into integration

5 years agoMerge "drivers: stm32mp1 clocks: add RTC as a gateable clock" into integration
Mark Dykes [Thu, 28 May 2020 16:29:16 +0000 (16:29 +0000)]
Merge "drivers: stm32mp1 clocks: add RTC as a gateable clock" into integration

5 years agoMerge "drivers: stm32mp1 clocks: support shifted clock selector bit masks" into integ...
Mark Dykes [Thu, 28 May 2020 16:26:28 +0000 (16:26 +0000)]
Merge "drivers: stm32mp1 clocks: support shifted clock selector bit masks" into integration

5 years agoMerge "doc: Update the list of code owners" into integration
joanna.farley [Thu, 28 May 2020 14:21:59 +0000 (14:21 +0000)]
Merge "doc: Update the list of code owners" into integration

5 years agoMerge "Fix the build error for dualroot chain of trust." into integration
Sandrine Bailleux [Thu, 28 May 2020 08:06:57 +0000 (08:06 +0000)]
Merge "Fix the build error for dualroot chain of trust." into integration

5 years agodoc: Update the list of code owners
Sandrine Bailleux [Wed, 27 May 2020 08:36:56 +0000 (10:36 +0200)]
doc: Update the list of code owners

Extend the list of modules and assign code owners to each of them.

Change-Id: I267b87d8e239c7eff143b4c7e6ce9712fcf7101e
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
5 years agoMerge "TF-A: Fix wrong register read for MPAM extension" into integration
Olivier Deprez [Thu, 28 May 2020 07:35:31 +0000 (07:35 +0000)]
Merge "TF-A: Fix wrong register read for MPAM extension" into integration

5 years agoMerge "drivers: stm32mp1 clocks: allow tree lookup for several system clocks" into...
Mark Dykes [Wed, 27 May 2020 19:35:59 +0000 (19:35 +0000)]
Merge "drivers: stm32mp1 clocks: allow tree lookup for several system clocks" into integration

5 years agoMerge "plat/stm32mp1: fdt helpers for secure aware gpio bank" into integration
Mark Dykes [Wed, 27 May 2020 19:34:09 +0000 (19:34 +0000)]
Merge "plat/stm32mp1: fdt helpers for secure aware gpio bank" into integration

5 years agoMerge "plat/st: move GPIO bank helper function to platform source files" into integration
Mark Dykes [Wed, 27 May 2020 19:27:41 +0000 (19:27 +0000)]
Merge "plat/st: move GPIO bank helper function to platform source files" into integration

5 years agoMerge "plat/arm: Introduce TC0 platform" into integration
Manish Pandey [Wed, 27 May 2020 16:26:37 +0000 (16:26 +0000)]
Merge "plat/arm: Introduce TC0 platform" into integration

5 years agoplat/arm: Introduce TC0 platform
Usama Arif [Fri, 17 Apr 2020 15:13:39 +0000 (16:13 +0100)]
plat/arm: Introduce TC0 platform

This patch adds support for Total Compute (TC0) platform. It is an
initial port and additional features are expected to be added later.

TC0 has a SCP which brings the primary Cortex-A out of reset
which starts executing BL1. TF-A optionally authenticates the SCP
ram-fw available in FIP and makes it available for SCP to copy.

Some of the major features included and tested in this platform
port include TBBR, PSCI, MHUv2 and DVFS.

Change-Id: I1675e9d200ca7687c215009eef483d9b3ee764ef
Signed-off-by: Usama Arif <usama.arif@arm.com>
5 years agoFix the build error for dualroot chain of trust.
Manish V Badarkhe [Wed, 27 May 2020 08:39:42 +0000 (09:39 +0100)]
Fix the build error for dualroot chain of trust.

Fixed build error for dualroot chain of trust.
Build error were thrown as below while compiling the code for
dualroot chain of trust:

aarch64-none-elf-ld.bfd: ./build/fvp/debug/bl1/tbbr_cot_bl1.o:
(.bss.auth_img_flags+0x0): multiple definition of `auth_img_flags';
./build/fvp/debug/bl1/cot.o:(.bss.auth_img_flags+0x0): first defined here

aarch64-none-elf-ld.bfd: ./build/fvp/debug/bl1/tbbr_cot_bl1.o:
(.rodata.cot_desc_size+0x0): multiple definition of `cot_desc_size';
./build/fvp/debug/bl1/cot.o:(.rodata.cot_desc_size+0x0): first defined here

aarch64-none-elf-ld.bfd: ./build/fvp/debug/bl1/tbbr_cot_bl1.o:
(.rodata.cot_desc_ptr+0x0): multiple definition of `cot_desc_ptr';
./build/fvp/debug/bl1/cot.o:(.rodata.cot_desc_ptr+0x0): first defined here

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

5 years agoMerge "plat: imx8mn: Add imx8mn basic support" into integration
Sandrine Bailleux [Wed, 27 May 2020 08:41:57 +0000 (08:41 +0000)]
Merge "plat: imx8mn: Add imx8mn basic support" into integration

5 years agoMerge "Cleanup the code for TBBR CoT descriptors" into integration
Mark Dykes [Tue, 26 May 2020 16:09:10 +0000 (16:09 +0000)]
Merge "Cleanup the code for TBBR CoT descriptors" into integration

5 years agoTF-A: Fix wrong register read for MPAM extension
Alexei Fedorov [Tue, 26 May 2020 12:16:41 +0000 (13:16 +0100)]
TF-A: Fix wrong register read for MPAM extension

This patch fixes wrong ID_AA64DFR0_EL1 register read instead of
ID_AA64PFR0_EL1 to detect support for MPAM extension.
It also implements get_mpam_version() function which returns
MPAM version as:
0x00: None Armv8.0 or later;
0x01: v0.1 Armv8.4 or later;
0x10: v1.0 Armv8.2 or later;
0x11: v1.1 Armv8.4 or later;

Change-Id: I31d776b1a1b60cb16e5e62296d70adb129d7b760
Reported-by: Matteo Zini <matteozini96@gmail.com>
Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
5 years agoMerge "doc: Fix plat_sdei_validate_entry_point() documentation" into integration
Mark Dykes [Tue, 26 May 2020 15:34:23 +0000 (15:34 +0000)]
Merge "doc: Fix plat_sdei_validate_entry_point() documentation" into integration

5 years agoMerge "doc: Fixes in PSA FF-A binding document" into integration
Olivier Deprez [Tue, 26 May 2020 09:12:32 +0000 (09:12 +0000)]
Merge "doc: Fixes in PSA FF-A binding document" into integration

5 years agoMerge "SPCI is now called PSA FF-A" into integration
Olivier Deprez [Tue, 26 May 2020 09:11:44 +0000 (09:11 +0000)]
Merge "SPCI is now called PSA FF-A" into integration

5 years agodoc: Fix plat_sdei_validate_entry_point() documentation
Sandrine Bailleux [Fri, 15 May 2020 10:05:51 +0000 (12:05 +0200)]
doc: Fix plat_sdei_validate_entry_point() documentation

Document the second argument of the function.
Minor rewording.

Change-Id: I190794b8cc74c99db4cfe6efc225217c32dd0774
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
5 years agoti: k3: common: Implement stub system_off
Jan Kiszka [Sun, 17 May 2020 08:21:09 +0000 (10:21 +0200)]
ti: k3: common: Implement stub system_off

PSCI demands that SYSTEM_OFF must not return. While it seems like a
generic ATF bug that this is possible when a platform does not Implement
a corresponding handler, let's do that here until it's addressed
differently.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Change-Id: I4c08948b18bbfdc3a24214f2ae0fbad9e017ada1

5 years agodoc: Fixes in PSA FF-A binding document
Louis Mayencourt [Wed, 8 Apr 2020 12:04:33 +0000 (13:04 +0100)]
doc: Fixes in PSA FF-A binding document

- Fix possible run-time ELs value and xlat-granule size.
- Remove mandatory field for stream-ids.
- Define interrupts attributes to <u32>.
- Remove mem-manage field.
- Add description for memory/device region attributes.

Co-authored-by: Manish Pandey <manish.pandey2@arm.com>
Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Change-Id: I71cf4406c78eaf894fa6532f83467a6f4110b344

5 years agoSPCI is now called PSA FF-A
J-Alves [Thu, 7 May 2020 17:42:25 +0000 (18:42 +0100)]
SPCI is now called PSA FF-A

SPCI is renamed as PSA FF-A which stands for Platform Security
Architecture Firmware Framework for A class processors.
This patch replaces the occurrence of SPCI with PSA FF-A(in documents)
or simply FFA(in code).

Change-Id: I4ab10adb9ffeef1ff784641dfafd99f515133760
Signed-off-by: J-Alves <joao.alves@arm.com>
5 years agoMerge "plat/arm/fvp: populate runtime console parameters dynamically" into integration
Mark Dykes [Fri, 22 May 2020 17:45:46 +0000 (17:45 +0000)]
Merge "plat/arm/fvp: populate runtime console parameters dynamically" into integration

5 years agoplat: imx8mn: Add imx8mn basic support
Jacky Bai [Thu, 28 Nov 2019 05:16:33 +0000 (13:16 +0800)]
plat: imx8mn: Add imx8mn basic support

Add imx8mn basic support

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Change-Id: Ibdfcc87700bfaf980e429f3a5fa08515218ae78d

5 years agoMerge "Tegra: enable SDEI handling" into integration
Mark Dykes [Thu, 21 May 2020 21:24:22 +0000 (21:24 +0000)]
Merge "Tegra: enable SDEI handling" into integration

5 years agoMerge "Tegra194: validate C6 power state type" into integration
Mark Dykes [Thu, 21 May 2020 21:17:25 +0000 (21:17 +0000)]
Merge "Tegra194: validate C6 power state type" into integration

5 years agoMerge "Tegra194: remove support for CPU suspend power down state" into integration
Mark Dykes [Thu, 21 May 2020 21:16:34 +0000 (21:16 +0000)]
Merge "Tegra194: remove support for CPU suspend power down state" into integration

5 years agoMerge "FVP: Add support for passing platform's topology to DTS" into integration
Manish Pandey [Thu, 21 May 2020 20:12:24 +0000 (20:12 +0000)]
Merge "FVP: Add support for passing platform's topology to DTS" into integration

5 years agoMerge "plat/fvp: Support for extracting UART serial node info from DT" into integration
Mark Dykes [Thu, 21 May 2020 19:23:03 +0000 (19:23 +0000)]
Merge "plat/fvp: Support for extracting UART serial node info from DT" into integration

5 years agoplat/arm/fvp: populate runtime console parameters dynamically
Madhukar Pappireddy [Thu, 16 Apr 2020 22:54:25 +0000 (17:54 -0500)]
plat/arm/fvp: populate runtime console parameters dynamically

We query the UART base address and clk frequency in runtime
using fconf getter APIs.

Change-Id: I5f4e84953be5f384472bf90720b706d45cb86260
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
5 years agoplat/fvp: Support for extracting UART serial node info from DT
Madhukar Pappireddy [Tue, 24 Mar 2020 15:03:34 +0000 (10:03 -0500)]
plat/fvp: Support for extracting UART serial node info from DT

This patch introduces the populate function which leverages
a new driver to extract base address and clk frequency properties
of the uart serial node from HW_CONFIG device tree.

This patch also introduces fdt helper API fdtw_translate_address()
which helps in performing address translation.

Change-Id: I053628065ebddbde0c9cb3aa93d838619f502ee3
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
5 years agoMerge "Enable v8.6 WFE trap delays" into integration
Mark Dykes [Wed, 20 May 2020 22:45:43 +0000 (22:45 +0000)]
Merge "Enable v8.6 WFE trap delays" into integration

5 years agoTegra: enable SDEI handling
Varun Wadekar [Sat, 18 Apr 2020 02:09:21 +0000 (19:09 -0700)]
Tegra: enable SDEI handling

This patch enables SDEI support for all Tegra platforms, with
the following configuration settings.

* SGI 8 as the source IRQ
* Special Private Event 0
* Three private, dynamic events
* Three shared, dynamic events
* Twelve general purpose explicit events

Verified using TFTF SDEI test suite.

******************************* Summary *******************************
 Test suite 'SDEI'                                               Passed
 =================================
 Tests Skipped : 0
 Tests Passed  : 5
 Tests Failed  : 0
 Tests Crashed : 0
 Total tests   : 5
 =================================

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

5 years agoMerge "plat/fvp: Populate GICv3 parameters dynamically" into integration
Mark Dykes [Wed, 20 May 2020 15:41:01 +0000 (15:41 +0000)]
Merge "plat/fvp: Populate GICv3 parameters dynamically" into integration

5 years agoMerge "Tegra: enable stack protection" into integration
Sandrine Bailleux [Wed, 20 May 2020 08:11:13 +0000 (08:11 +0000)]
Merge "Tegra: enable stack protection" into integration

5 years agoEnable v8.6 WFE trap delays
johpow01 [Wed, 22 Apr 2020 19:05:13 +0000 (14:05 -0500)]
Enable v8.6 WFE trap delays

This patch enables the v8.6 extension to add a delay before WFE traps
are taken. A weak hook plat_arm_set_twedel_scr_el3 has been added in
plat/common/aarch64/plat_common.c that disables this feature by default
but platform-specific code can override it when needed.

The only hook provided sets the TWED fields in SCR_EL3, there are similar
fields in HCR_EL2, SCTLR_EL2, and SCTLR_EL1 to control WFE trap delays in
lower ELs but these should be configured by code running at EL2 and/or EL1
depending on the platform configuration and is outside the scope of TF-A.

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

5 years agoplat/fvp: Populate GICv3 parameters dynamically
laurenw-arm [Tue, 12 May 2020 15:58:11 +0000 (10:58 -0500)]
plat/fvp: Populate GICv3 parameters dynamically

Query the GICD and GICR base addresses in runtime using fconf getter
APIs.

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

5 years agoMerge "Fix exception in save/restore of EL2 registers." into integration
Manish Pandey [Tue, 19 May 2020 15:56:37 +0000 (15:56 +0000)]
Merge "Fix exception in save/restore of EL2 registers." into integration

5 years agoFix exception in save/restore of EL2 registers.
Max Shvetsov [Wed, 13 May 2020 17:15:39 +0000 (18:15 +0100)]
Fix exception in save/restore of EL2 registers.

Removing FPEXC32_EL2 from the register save/restore routine for EL2
registers since it is already a part of save/restore routine for
fpregs.

Signed-off-by: Max Shvetsov <maksims.svecovs@arm.com>
Change-Id: I5ed45fdbf7c8efa8dcfcd96586328d4f6b256bc4

5 years agoFVP: Add support for passing platform's topology to DTS
Alexei Fedorov [Wed, 13 May 2020 20:13:57 +0000 (21:13 +0100)]
FVP: Add support for passing platform's topology to DTS

This patch adds support for passing FVP platform's topology
configuration to DTS files for compilation, which allows to
build DTBs with correct number of clusters and CPUs.
This removes non-existing clusters/CPUs from the compiled
device tree blob and fixes reported Linux errors when trying
to power on absent CPUs/PEs.
If DTS file is passed using FVP_HW_CONFIG_DTS build option from
the platform's makefile, FVP_CLUSTER_COUNT, FVP_MAX_CPUS_PER_CLUSTER
and FVP_MAX_PE_PER_CPU parameters are used, otherwise CI script will
use the default values from the corresponding DTS file.

Change-Id: Idcb45dc6ad5e3eaea18573aff1a01c9344404ab3
Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
5 years agoMerge "Fix compilation error when ENABLE_PIE=1" into integration
Sandrine Bailleux [Tue, 19 May 2020 11:27:13 +0000 (11:27 +0000)]
Merge "Fix compilation error when ENABLE_PIE=1" into integration

5 years agoCleanup the code for TBBR CoT descriptors
Manish V Badarkhe [Sat, 16 May 2020 15:36:39 +0000 (16:36 +0100)]
Cleanup the code for TBBR CoT descriptors

CoT used for BL1 and BL2 are moved to tbbr_cot_bl1.c
and tbbr_cot_bl2.c respectively.
Common CoT used across BL1 and BL2 are moved to
tbbr_cot_common.c.

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

5 years agoTegra: enable stack protection
Varun Wadekar [Sun, 17 May 2020 05:10:09 +0000 (22:10 -0700)]
Tegra: enable stack protection

This patch sets ENABLE_STACK_PROTECTOR=strong and implements
the platform support to generate a stack protection canary value.

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