project/bcm63xx/atf.git
5 years agoMerge "SMMUv3: refactor the driver code" into integration
Soby Mathew [Fri, 3 May 2019 11:09:02 +0000 (11:09 +0000)]
Merge "SMMUv3: refactor the driver code" into integration

5 years agoSMMUv3: refactor the driver code
Alexei Fedorov [Fri, 26 Apr 2019 11:07:07 +0000 (12:07 +0100)]
SMMUv3: refactor the driver code

This patch is a preparation for the subsequent changes in
SMMUv3 driver. It introduces a new "smmuv3_poll" function
and replaces inline functions for accessing SMMU registers
with mmio read/write operations. Also the infinite loop
for the poll has been replaced with a counter based timeout.

Change-Id: I7a0547beb1509601f253e126b1a7a6ab3b0307e7
Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
5 years agoMerge changes from topic "rk3399q7" into integration
Soby Mathew [Thu, 2 May 2019 11:25:26 +0000 (11:25 +0000)]
Merge changes from topic "rk3399q7" into integration

* changes:
  rockchip: Disable binary generation for all SoCs.
  build_macros: Add mechanism to prevent bin generation.

5 years agorockchip: Disable binary generation for all SoCs.
Christoph Müllner [Wed, 24 Apr 2019 07:52:54 +0000 (09:52 +0200)]
rockchip: Disable binary generation for all SoCs.

All supported Rockchip SoCs (RK3288, RK3328, RK3368 and RK3399)
have non-continuous memory areas in the linker script with a huge
gap between them. This results in extremely padded binary images
with a size of about 4 GiB.

E.g. on the RK3399 we have the following memory areas (and base addresses):
RAM (0x1000), SRAM (0xFF8C0000), and PMUSRAM (0xFF3B0000).

Consumers of the TF-A project (e.g. coreboot or U-Boot) therefore
use the ELF image instead, which has a size of a few hundred kBs.

In order to prevent the generation of a huge and useless file,
this patch disables the binary generation for all affected Rockchip
SoCs.

Signed-off-by: Christoph Müllner <christophm30@gmail.com>
Change-Id: I4ac65bdf1e598c3e1a59507897d183aee9a36916

5 years agobuild_macros: Add mechanism to prevent bin generation.
Christoph Müllner [Wed, 24 Apr 2019 07:45:30 +0000 (09:45 +0200)]
build_macros: Add mechanism to prevent bin generation.

On certain platforms it does not make sense to generate
TF-A binary images. For example a platform could make use of serveral
memory areas, which are non-continuous and the resulting binary
therefore would suffer from the padding-bytes.
Typically these platforms use the ELF image.

This patch introduces a variable DISABLE_BIN_GENERATION, which
can be set to '1' in the platform makefile to prevent the binary
generation.

Signed-off-by: Christoph Müllner <christophm30@gmail.com>
Change-Id: I62948e88bab685bb055fe6167d9660d14e604462

5 years agoMerge changes from topic "rk3399q7" into integration
Antonio Niño Díaz [Thu, 2 May 2019 10:13:08 +0000 (10:13 +0000)]
Merge changes from topic "rk3399q7" into integration

* changes:
  rockchip: Allow console device to be set by DTB.
  rockchip: Add params_setup to RK3328.
  rockchip: Streamline and complete UARTn_BASE macros.

5 years agorockchip: Allow console device to be set by DTB.
Christoph Müllner [Fri, 19 Apr 2019 12:16:27 +0000 (14:16 +0200)]
rockchip: Allow console device to be set by DTB.

Currently the compile-time constant PLAT_RK_UART_BASE defines
which UART is used as console device. E.g. on RK3399 it is set
to UART2. That means, that a single bl31 image can not be used
for two boards, which just differ on the UART console.

This patch addresses this limitation by parsing the "stdout-path"
property from the "chosen" node in the DTB. The expected property
string is expected to have the form "serialN:XXX", with
N being either 0, 1, 2, 3 or 4. When the property is found, it will
be used to override PLAT_RK_UART_BASE.

Tested on RK3399-Q7, with a stdout-path of "serial0:115200n8".

Signed-off-by: Christoph Müllner <christophm30@gmail.com>
Change-Id: Iafe1320e77ab006c121f8d52745d54cef68a48c7

5 years agorockchip: Add params_setup to RK3328.
Christoph Müllner [Wed, 1 May 2019 15:45:10 +0000 (17:45 +0200)]
rockchip: Add params_setup to RK3328.

params_setup.c provides the function params_early_setup, which
takes care of parsing ATF parameters (bl31_plat_param array,
fdt or coreboot table). As params_early_setup is defined as weak
symbol in bl31_plat_setup.c, providing a platform-specific
bl31_plat_setup implementation is optional.

This patch adds the rockchip-common params_setup.c to the sources
for RK3328. This streamlines the parameter handling for all supported
rockchip SoCs.

Signed-off-by: Christoph Müllner <christophm30@gmail.com>
Change-Id: I071c03106114364ad2fc408e49cc791fe5b35925

5 years agorockchip: Streamline and complete UARTn_BASE macros.
Christoph Müllner [Tue, 30 Apr 2019 23:37:58 +0000 (01:37 +0200)]
rockchip: Streamline and complete UARTn_BASE macros.

In order to set the UART base during bootup in common code of
plat/rockchip, we need to streamline the way the UART base addresses
are defined and add the missing definitions and mappings.

This patch does so by following the pattern UARTn_BASE, which is
already in use on RK3399 and RK3328. The numbering itself is derived
from the upstream Linux DTS files of the individual SoCs.

Signed-off-by: Christoph Müllner <christophm30@gmail.com>
Change-Id: I341a1996f4ceed5f82a2f6687d4dead9d7cc5c1f

5 years agoMerge "ti: k3: common: Remove MSMC port definitions" into integration
Soby Mathew [Tue, 30 Apr 2019 16:17:09 +0000 (16:17 +0000)]
Merge "ti: k3: common: Remove MSMC port definitions" into integration

5 years agoMerge changes from topic "lm/stack_protector" into integration
Soby Mathew [Tue, 30 Apr 2019 15:43:21 +0000 (15:43 +0000)]
Merge changes from topic "lm/stack_protector" into integration

* changes:
  juno: Add security sources for tsp-juno
  Add support for default stack-protector flag

5 years agojuno: Add security sources for tsp-juno
Louis Mayencourt [Wed, 17 Apr 2019 15:35:24 +0000 (16:35 +0100)]
juno: Add security sources for tsp-juno

Security sources are required if stack-protector is enabled.

Change-Id: Ia0071f60cf03d48b200fd1facbe50bd9e2f8f282
Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
5 years agoAdd support for default stack-protector flag
Louis Mayencourt [Tue, 26 Mar 2019 16:59:26 +0000 (16:59 +0000)]
Add support for default stack-protector flag

The current stack-protector support is for none, "strong" or "all".
The default use of the flag enables the stack-protection to all
functions that declare a character array of eight bytes or more in
length on their stack.
This option can be tuned with the --param=ssp-buffer-size=N option.

Change-Id: I11ad9568187d58de1b962b8ae04edd1dc8578fb0
Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
5 years agoti: k3: common: Remove MSMC port definitions
Andrew F. Davis [Wed, 27 Mar 2019 14:37:10 +0000 (09:37 -0500)]
ti: k3: common: Remove MSMC port definitions

The MSMC port defines were added to help in the case when some ports
are not connected and have no cores attached. We can get the same
functionality by defined the number of cores on that port to zero.
This simplifies several code paths, do this here.

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

5 years agoMerge "rockchip: only include libfdt in non-coreboot cases" into integration
Soby Mathew [Mon, 29 Apr 2019 15:38:40 +0000 (15:38 +0000)]
Merge "rockchip: only include libfdt in non-coreboot cases" into integration

5 years agoMerge "hikey: Add define for UART2" into integration
Soby Mathew [Mon, 29 Apr 2019 11:29:52 +0000 (11:29 +0000)]
Merge "hikey: Add define for UART2" into integration

5 years agoMerge changes from topic "avenger96" into integration
Soby Mathew [Mon, 29 Apr 2019 11:29:27 +0000 (11:29 +0000)]
Merge changes from topic "avenger96" into integration

* changes:
  fdts: Fix DTC warnings for STM32MP1 platform
  docs: plat: stm32mp1: Document the usage of DTB_FILE_NAME variable
  stm32mp1: Add Avenger96 board support

5 years agoMerge changes from topic "k3-coherency" into integration
Soby Mathew [Mon, 29 Apr 2019 11:28:39 +0000 (11:28 +0000)]
Merge changes from topic "k3-coherency" into integration

* changes:
  ti: k3: common: Mark sections for AM65x coherency workaround
  ti: k3: common: Allow USE_COHERENT_MEM for K3
  ti: k3: common: Fix RO data area size calculation
  ti: k3: common: Remove unused STUB macro

5 years agoMerge "plat: allwinner: common: use r_wdog instead of wdog" into integration
Antonio Niño Díaz [Mon, 29 Apr 2019 09:03:18 +0000 (09:03 +0000)]
Merge "plat: allwinner: common: use r_wdog instead of wdog" into integration

5 years agoMerge changes Ie7766e80,Ia74dbc36 into integration
Antonio Niño Díaz [Mon, 29 Apr 2019 08:51:10 +0000 (08:51 +0000)]
Merge changes Ie7766e80,Ia74dbc36 into integration

* changes:
  plat: marvell: do not rely on argument passed via smc
  plat: marvell: sip: make sure that comphy init will use correct address

5 years agorockchip: only include libfdt in non-coreboot cases
Heiko Stuebner [Wed, 24 Apr 2019 18:26:51 +0000 (20:26 +0200)]
rockchip: only include libfdt in non-coreboot cases

While mainline u-boot always expects to submit the devicetree
as platform param, coreboot always uses the existing parameter
structure. As libfdt is somewhat big, it makes sense to limit
its inclusion to where necessary and thus only to non-coreboot
builds.

libfdt itself will get build in all cases, but only the non-
coreboot build will actually reference and thus include it.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Change-Id: I4c5bc28405a14e6070917e48a526bfe77bab2fb7

5 years agoti: k3: common: Mark sections for AM65x coherency workaround
Andrew F. Davis [Thu, 25 Apr 2019 17:57:02 +0000 (13:57 -0400)]
ti: k3: common: Mark sections for AM65x coherency workaround

These sections of code are only needed for the coherency workaround
used for AM65x, if this workaround is not needed then this code
is not either. Mark it off to keep it separated from the rest of
the PSCI implementation.

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

5 years agoti: k3: common: Allow USE_COHERENT_MEM for K3
Andrew F. Davis [Thu, 25 Apr 2019 17:54:09 +0000 (13:54 -0400)]
ti: k3: common: Allow USE_COHERENT_MEM for K3

To make the USE_COHERENT_MEM option work we need to add an entry for the
area to our memory map table. Also fixup the alignment here.

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

5 years agoti: k3: common: Fix RO data area size calculation
Andrew F. Davis [Thu, 25 Apr 2019 17:52:54 +0000 (13:52 -0400)]
ti: k3: common: Fix RO data area size calculation

The size of the RO data area was calculated by subtracting the area end
address from itself and not the base address due to a typo. Fix this
here.

Note, this was noticed at a glance thanks to the new aligned formating
of this table.

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

5 years agoti: k3: common: Remove unused STUB macro
Andrew F. Davis [Thu, 25 Apr 2019 17:51:12 +0000 (13:51 -0400)]
ti: k3: common: Remove unused STUB macro

This macro was used when many of these functions were stubbed out,
the macro is not used anymore, remove it.

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

5 years agohikey: Add define for UART2
Michalis Pappas [Tue, 23 Apr 2019 11:56:49 +0000 (13:56 +0200)]
hikey: Add define for UART2

Change-Id: I54869151bfc434df66933bd418c70cca9c3d0861
Signed-off-by: Michalis Pappas <mpappas@fastmail.fm>
5 years agofdts: Fix DTC warnings for STM32MP1 platform
Manivannan Sadhasivam [Fri, 26 Apr 2019 13:25:59 +0000 (18:55 +0530)]
fdts: Fix DTC warnings for STM32MP1 platform

DTC issues below warnings for STM32MP1 platform for using upper case
in unit address:

fdts/stm32mp15-ddr.dtsi:8.20-151.5: Warning (simple_bus_reg): /soc/ddr@5A003000: simple-bus unit address format error, expected "5a003000"
fdts/stm32mp157c-security.dtsi:9.25-13.5: Warning (simple_bus_reg): /soc/stgen@5C008000: simple-bus unit address format error, expected "5c008000"

Fix this by using the lower case unit address for concerned nodes.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Change-Id: Id3d19ac3b47ec6bcea2bd3382225e2e923dc4a70

5 years agodocs: plat: stm32mp1: Document the usage of DTB_FILE_NAME variable
Manivannan Sadhasivam [Fri, 26 Apr 2019 13:16:29 +0000 (18:46 +0530)]
docs: plat: stm32mp1: Document the usage of DTB_FILE_NAME variable

Since STM32MP1 platform supports different boards, it is necessary
to build for a particular board. With the current instructions, the
user has to modify the DTB_FILE_NAME variable in platform.mk for
building for a particular board, but this can be avoided by passing
the appropriate board DTB name via DTB_FILE_NAME make variable.
Hence document the same in platform doc.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Change-Id: I16797e7256c7eb699a7b8846356fe430d0fe0aa1

5 years agostm32mp1: Add Avenger96 board support
Manivannan Sadhasivam [Fri, 26 Apr 2019 13:13:50 +0000 (18:43 +0530)]
stm32mp1: Add Avenger96 board support

Add board support for Avenger96 board from Arrow Electronics. This
board is based on STM32MP157A SoC and is one of the 96Boards Consumer
Edition platform.

More information about this board can be found in 96Boards website:
https://www.96boards.org/product/avenger96/

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Change-Id: Ic905f26c38d03883c6e4ea221b4b275a4b534857

5 years agoMerge "rk3399: m0: Fix compiler warnings." into integration
Soby Mathew [Fri, 26 Apr 2019 12:55:49 +0000 (12:55 +0000)]
Merge "rk3399: m0: Fix compiler warnings." into integration

5 years agoMerge "Cortex-A53: Fix reporting of missing errata when not needed" into integration
Antonio Niño Díaz [Fri, 26 Apr 2019 12:47:08 +0000 (12:47 +0000)]
Merge "Cortex-A53: Fix reporting of missing errata when not needed" into integration

5 years agoMerge changes from topic "rk3288" into integration
Soby Mathew [Fri, 26 Apr 2019 12:42:44 +0000 (12:42 +0000)]
Merge changes from topic "rk3288" into integration

* changes:
  rockchip: document platform
  rockchip: add support for rk3288
  rockchip: add common aarch32 support
  rockchip: rk3328: drop double declaration of entry_point storage
  rockchip: Allow socs with undefined wfe check bits
  rockchip: move pmusram assembler code to a aarch64 subdir
  sp_min: allow inclusion of a platform-specific linker script
  sp_min: make sp_min_warm_entrypoint public
  drivers: ti: uart: add a aarch32 variant

5 years agoMerge "Doc: Update link to TBBR-CLIENT specification" into integration
Soby Mathew [Fri, 26 Apr 2019 12:40:04 +0000 (12:40 +0000)]
Merge "Doc: Update link to TBBR-CLIENT specification" into integration

5 years agoCortex-A53: Fix reporting of missing errata when not needed
Andrew F. Davis [Wed, 24 Apr 2019 20:11:03 +0000 (16:11 -0400)]
Cortex-A53: Fix reporting of missing errata when not needed

Errata 819472, 824069, and 827319 are currently reported in a warning as
missing during boot for platforms that do not need them. Only warn when
the errata is needed for a given revision but not compiled in like other
errata workarounds.

Fixes: bd393704d2b1 ("Cortex-A53: Workarounds for 819472, 824069 and 827319")
Signed-off-by: Andrew F. Davis <afd@ti.com>
Change-Id: Ifd757b3d0e73a9bd465b98dc20648b6c13397d8d

5 years agorockchip: document platform
Heiko Stuebner [Fri, 19 Apr 2019 10:35:47 +0000 (12:35 +0200)]
rockchip: document platform

This adds a rockchip.rst to docs/plat documenting the general
approach to using the Rockchip ATF platforms together with the
supported bootloaders and also adds myself as maintainer after
making sure Tony Xie is ok with that.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Change-Id: Idce53d15eff4ac6de05bbb35d86e57ed50d0cbb9

5 years agorockchip: add support for rk3288
Heiko Stuebner [Thu, 14 Mar 2019 21:12:04 +0000 (22:12 +0100)]
rockchip: add support for rk3288

The rk3288 is a 4-core Cortex-A12 SoC and shares a lot of features
with later SoCs.

Working features are general non-secure mode (the gic needs special
love for that), psci-based smp bringing cpu cores online and also
taking them offline again, psci-based suspend (the simpler variant
also included in the linux kernel, deeper suspend following later)
and I was also already able to test HYP-mode and was able to boot
a virtual kernel using kvm.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Change-Id: Ibaaa583b2e78197591a91d254339706fe732476a

5 years agorockchip: add common aarch32 support
Heiko Stuebner [Thu, 14 Mar 2019 21:11:34 +0000 (22:11 +0100)]
rockchip: add common aarch32 support

There are a number or ARMv7 Rockchip SoCs that are very similar in their
bringup routines to the existing arm64 SoCs, so there is quite a high
commonality possible here.

Things like virtualization also need psci and hyp-mode and instead of
trying to cram this into bootloaders like u-boot, barebox or coreboot
(all used in the field), re-use the existing infrastructure in TF-A
for this (both Rockchip plat support and armv7 support in general).

So add core support for aarch32 Rockchip SoCs, with actual soc support
following in a separate patch.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Change-Id: I298453985b5d8434934fc0c742fda719e994ba0b

5 years agorockchip: rk3328: drop double declaration of entry_point storage
Heiko Stuebner [Thu, 25 Apr 2019 10:40:41 +0000 (12:40 +0200)]
rockchip: rk3328: drop double declaration of entry_point storage

The cpuson_entry_point and cpuson_flags are already declared in
plat_private.h so there is no need to have it again declared in
the local pmu.h, especially as it may cause conflicts when the
other type changes.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Change-Id: I80ae0e23d22f67109ed96f8ac059973b6de2ce87

5 years agorockchip: Allow socs with undefined wfe check bits
Heiko Stuebner [Thu, 7 Mar 2019 07:01:37 +0000 (08:01 +0100)]
rockchip: Allow socs with undefined wfe check bits

Some older socs like the rk3288 do not have the necessary registers
to check the wfi/wfe state of the cpu cores. Allow this case an "just"
do an additional delay similar to how the Linux kernel handles smp
right now.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Change-Id: I0f67af388b06b8bfb4a9bac411b4900ac266a77a

5 years agorockchip: move pmusram assembler code to a aarch64 subdir
Heiko Stuebner [Tue, 5 Mar 2019 12:46:41 +0000 (13:46 +0100)]
rockchip: move pmusram assembler code to a aarch64 subdir

The current code doing power-management from sram is highly
arm64-specific so should live in a corresponding subdirectory
and not in the common area.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Change-Id: I3b79ac26f70fd189d4d930faa6251439a644c5d9

5 years agosp_min: allow inclusion of a platform-specific linker script
Heiko Stuebner [Thu, 11 Apr 2019 13:26:07 +0000 (15:26 +0200)]
sp_min: allow inclusion of a platform-specific linker script

Similar to bl31 allow sp_min to also include a platform-specific
linker script. This allows for example to place specific code in
other memories of the system, like resume code in sram, while the
main tf-a lives in ddr.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Change-Id: I67642f7bfca036b5d51eb0fa092b479a647a9cc1

5 years agosp_min: make sp_min_warm_entrypoint public
Heiko Stuebner [Sat, 2 Mar 2019 10:59:04 +0000 (11:59 +0100)]
sp_min: make sp_min_warm_entrypoint public

Similar to bl31_warm_entrypoint, sp_min-based platforms may need
that for special resume handling.

Therefore move it from the private header to the sp_min platform header.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Change-Id: I40d9eb3ff77cff88d47c1ff51d53d9b2512cbd3e

5 years agodrivers: ti: uart: add a aarch32 variant
Heiko Stuebner [Thu, 7 Mar 2019 09:26:19 +0000 (10:26 +0100)]
drivers: ti: uart: add a aarch32 variant

Rockchip re-uses the ti uart console driver and for aarch32 needs a
specific variant, so add it.
There are also aarch32 ti socs, so it may be useful for them as well
at some point.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Change-Id: I31ede7cc7b10347b3691cff051db2b985fd59e17

5 years agoDoc: Update link to TBBR-CLIENT specification
Sandrine Bailleux [Wed, 24 Apr 2019 08:41:24 +0000 (10:41 +0200)]
Doc: Update link to TBBR-CLIENT specification

Change-Id: Iafa79b6f7891d3eebec9908a8f7725131202beb3
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
5 years agork3399: m0: Fix compiler warnings.
Christoph Müllner [Mon, 15 Apr 2019 19:42:29 +0000 (21:42 +0200)]
rk3399: m0: Fix compiler warnings.

GCC complains for quite some versions, when compiling the M0 firmware
for Rockchip's rk3399 platform, about an invalid type of function 'main':

  warning: return type of 'main' is not 'int' [-Wmain]

This patch addresses this, by renaming the function to 'm0_main'.

Signed-off-by: Christoph Müllner <christophm30@gmail.com>
Change-Id: I10887f2bda6bdb48c5017044c264139004f7c785

5 years agoMerge changes from topic "av/console-register" into integration
Antonio Niño Díaz [Wed, 24 Apr 2019 10:48:10 +0000 (10:48 +0000)]
Merge changes from topic "av/console-register" into integration

* changes:
  Console: Remove Arm console unregister on suspend
  Console: Allow to register multiple times

5 years agoMerge changes from topic "k3-sequence-fix" into integration
Antonio Niño Díaz [Wed, 24 Apr 2019 10:04:52 +0000 (10:04 +0000)]
Merge changes from topic "k3-sequence-fix" into integration

* changes:
  ti: k3: drivers: ti_sci: Retry message receive on bad sequence ID
  ti: k3: drivers: ti_sci: Cleanup sequence ID usage
  ti: k3: drivers: sec_proxy: Use direction definitions
  ti: k3: drivers: sec_proxy: Fix printf format specifiers

5 years agoMerge changes from topic "k3-cleanups" into integration
Antonio Niño Díaz [Wed, 24 Apr 2019 10:03:59 +0000 (10:03 +0000)]
Merge changes from topic "k3-cleanups" into integration

* changes:
  ti: k3: common: Align elements of map region table
  ti: k3: common: Enable SEPARATE_CODE_AND_RODATA by default
  ti: k3: common: Remove shared RAM space
  ti: k3: common: Drop _ADDRESS from K3_USART_BASE to match other defines

5 years agoConsole: Remove Arm console unregister on suspend
Ambroise Vincent [Wed, 24 Apr 2019 09:34:17 +0000 (10:34 +0100)]
Console: Remove Arm console unregister on suspend

Change-Id: Ie649b3c367a93db057eeaee7e83fa3e43f8c2607
Signed-off-by: Ambroise Vincent <ambroise.vincent@arm.com>
5 years agoConsole: Allow to register multiple times
Ambroise Vincent [Thu, 18 Apr 2019 10:36:42 +0000 (11:36 +0100)]
Console: Allow to register multiple times

It removes the need to unregister the console on system suspend.

Change-Id: Ic9311a242a4a9a778651f7e6380bd2fc0964b2ce
Signed-off-by: Ambroise Vincent <ambroise.vincent@arm.com>
5 years agoti: k3: drivers: ti_sci: Retry message receive on bad sequence ID
Andrew F. Davis [Wed, 10 Apr 2019 16:40:12 +0000 (12:40 -0400)]
ti: k3: drivers: ti_sci: Retry message receive on bad sequence ID

When we get a sequence ID that does not match what we expect then the we
are looking at is not the one we are expecting and so we error out. We
can also assume this message is a stale message left in the queue, in
this case we can read in the next message and check again for our
message. Switch to doing that here. We only retry a set number of times
so we don't lock the system if our message is actually lost and will
never show up.

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

5 years agoti: k3: drivers: ti_sci: Cleanup sequence ID usage
Andrew F. Davis [Wed, 10 Apr 2019 15:49:40 +0000 (11:49 -0400)]
ti: k3: drivers: ti_sci: Cleanup sequence ID usage

The sequence ID can be set with a message to identify it when it is
responded to in the response queue. We assign each message a number and
check for this same number to detect response mismatches.

Start this at 0 and increase it by one for each message sent, even ones
that do not request or wait for a response as one may still be delivered
in some cases and we want to detect this.

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

5 years agoti: k3: drivers: sec_proxy: Use direction definitions
Andrew F. Davis [Wed, 10 Apr 2019 15:45:19 +0000 (11:45 -0400)]
ti: k3: drivers: sec_proxy: Use direction definitions

The direction of a thread should be explicitly compared to avoid
confusion. Also fixup message wording based on this direction.

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

5 years agoti: k3: drivers: sec_proxy: Fix printf format specifiers
Andrew F. Davis [Wed, 10 Apr 2019 15:38:56 +0000 (11:38 -0400)]
ti: k3: drivers: sec_proxy: Fix printf format specifiers

The ID of a thread is not used outside for printing it out when
something goes wrong. The specifier used is also not consistent.
Instead of storing the thread ID, store its name and print that.

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

5 years agoMerge "Cortex A9: Fix typo in errata 794073 workaround" into integration
Antonio Niño Díaz [Tue, 23 Apr 2019 13:01:20 +0000 (13:01 +0000)]
Merge "Cortex A9: Fix typo in errata 794073 workaround" into integration

5 years agoMerge "Neoverse N1: Forces cacheable atomic to near" into integration
Antonio Niño Díaz [Tue, 23 Apr 2019 12:32:06 +0000 (12:32 +0000)]
Merge "Neoverse N1: Forces cacheable atomic to near" into integration

5 years agoMerge changes from topic "yg/optee" into integration
Antonio Niño Díaz [Tue, 23 Apr 2019 12:31:53 +0000 (12:31 +0000)]
Merge changes from topic "yg/optee" into integration

* changes:
  stm32mp1: add OP-TEE support
  stm32mp1: fix TZC400 configuration against non-secure DDR
  stm32mp1: remove useless define
  stm32mp: split stm32mp_io_setup function

5 years agostm32mp1: add OP-TEE support
Yann Gautier [Fri, 19 Apr 2019 07:41:01 +0000 (09:41 +0200)]
stm32mp1: add OP-TEE support

Support booting OP-TEE as BL32 boot stage and secure runtime
service.

OP-TEE executes in internal RAM and uses a secure DDR area to store
the pager pagestore. Memory mapping and TZC are configured accordingly
prior OP-TEE boot. OP-TEE image is expected in OP-TEE v2 format where
a header file describes the effective boot images. This change
post processes header file content to get OP-TEE load addresses
and set OP-TEE boot arguments.

Change-Id: I02ef8b915e4be3e95b27029357d799d70e01cd44
Signed-off-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
5 years agostm32mp1: fix TZC400 configuration against non-secure DDR
Yann Gautier [Thu, 18 Apr 2019 13:32:10 +0000 (15:32 +0200)]
stm32mp1: fix TZC400 configuration against non-secure DDR

This change disables secure accesses to non-secure DDR which are useless.
TF-A already maps non-secure memory with non-secure permissions thanks
to the MMU.

This change also corrects some inline comments.

Change-Id: Id4c20c9ee5c95a666dae6b7446ed80baf2d53fb0
Signed-off-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Nicolas Le Bayon <nicolas.le.bayon@st.com>
5 years agostm32mp1: remove useless define
Yann Gautier [Mon, 15 Apr 2019 15:44:35 +0000 (17:44 +0200)]
stm32mp1: remove useless define

Remove STM32MP_DDR_SPEED_DFLT that is not used in STM32MP1 TF-A code.

Change-Id: I780cdc4e93a8a9d997d50f67cfc582acd4a353d6
Signed-off-by: Yann Gautier <yann.gautier@st.com>
5 years agostm32mp: split stm32mp_io_setup function
Yann Gautier [Tue, 23 Apr 2019 11:34:03 +0000 (13:34 +0200)]
stm32mp: split stm32mp_io_setup function

A new static function boot_mmc is created to simplify code maintenance
of stm32mp_io_setup.

Change-Id: I5c416e567e7e174fb1c2b435925a983c9c55fc40
Signed-off-by: Yann Gautier <yann.gautier@st.com>
5 years agoMerge changes from topic "aa-sbsa-watchdog" into integration
Antonio Niño Díaz [Tue, 23 Apr 2019 09:24:55 +0000 (09:24 +0000)]
Merge changes from topic "aa-sbsa-watchdog" into integration

* changes:
  plat/arm: introduce wrapper functions to setup secure watchdog
  drivers/sbsa: add sbsa watchdog driver

5 years agoti: k3: common: Align elements of map region table
Andrew F. Davis [Tue, 22 Jan 2019 20:25:08 +0000 (14:25 -0600)]
ti: k3: common: Align elements of map region table

This is only a formatting change but makes it instantly clear how each
region is set. This is over 80 chars and the MT_RO are not strictly
needed but this section very important to get right so make readability
the priority here.

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

5 years agoti: k3: common: Enable SEPARATE_CODE_AND_RODATA by default
Andrew F. Davis [Tue, 22 Jan 2019 20:16:03 +0000 (14:16 -0600)]
ti: k3: common: Enable SEPARATE_CODE_AND_RODATA by default

This should be more secure and looks a bit cleaner.

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

5 years agoti: k3: common: Remove shared RAM space
Andrew F. Davis [Tue, 22 Jan 2019 20:00:16 +0000 (14:00 -0600)]
ti: k3: common: Remove shared RAM space

We don't use this for anything right now, remove it.

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

5 years agoti: k3: common: Drop _ADDRESS from K3_USART_BASE to match other defines
Andrew F. Davis [Tue, 22 Jan 2019 19:36:48 +0000 (13:36 -0600)]
ti: k3: common: Drop _ADDRESS from K3_USART_BASE to match other defines

This makes definitions more consistent, plus helps alignment.

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

5 years agoNeoverse N1: Forces cacheable atomic to near
Louis Mayencourt [Thu, 18 Apr 2019 13:34:11 +0000 (14:34 +0100)]
Neoverse N1: Forces cacheable atomic to near

This patch forces all cacheable atomic instructions to be near, which
improves performance in highly contended parallelized use-cases.

Change-Id: I93fac62847f4af8d5eaaf3b52318c30893e947d3
Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
5 years agoCortex A9: Fix typo in errata 794073 workaround
Louis Mayencourt [Thu, 18 Apr 2019 11:11:25 +0000 (12:11 +0100)]
Cortex A9: Fix typo in errata 794073 workaround

Change-Id: I22568caf83b9846cd7b59241fcec34a395825399
Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
5 years agoplat/arm: introduce wrapper functions to setup secure watchdog
Aditya Angadi [Tue, 16 Apr 2019 05:59:14 +0000 (11:29 +0530)]
plat/arm: introduce wrapper functions to setup secure watchdog

The BL1 stage setup code for ARM platforms sets up the SP805 watchdog
controller as the secure watchdog. But not all ARM platforms use SP805
as the secure watchdog controller.

So introduce two new ARM platform code specific wrapper functions to
start and stop the secure watchdog. These functions then replace the
calls to SP805 driver in common BL1 setup code. All the ARM platforms
implement these wrapper functions by either calling into SP805 driver
or the SBSA watchdog driver.

Change-Id: I1a9a11b124cf3fac2a84f22ca40acd440a441257
Signed-off-by: Aditya Angadi <aditya.angadi@arm.com>
5 years agodrivers/sbsa: add sbsa watchdog driver
Aditya Angadi [Tue, 16 Apr 2019 06:00:25 +0000 (11:30 +0530)]
drivers/sbsa: add sbsa watchdog driver

Add a driver for configuring the SBSA Generic Watchdog which aids in
the detection of errant system behaviour.

Change-Id: I5a1e7149c69fd8b85be7dfbcf511f431339946f4
Signed-off-by: Aditya Angadi <aditya.angadi@arm.com>
5 years agoDSU: Implement workaround for errata 798953
Louis Mayencourt [Tue, 9 Apr 2019 15:29:01 +0000 (16:29 +0100)]
DSU: Implement workaround for errata 798953

Under certain near idle conditions, DSU may miss response transfers on
the ACE master or Peripheral port, leading to deadlock. This workaround
disables high-level clock gating of the DSU to prevent this.

Change-Id: I820911d61570bacb38dd325b3519bc8d12caa14b
Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
5 years agoDSU: Small fix and reformat on errata framework
Louis Mayencourt [Tue, 9 Apr 2019 13:11:06 +0000 (14:11 +0100)]
DSU: Small fix and reformat on errata framework

Change-Id: I50708f6ccc33059fbfe6d36fd66351f0b894311f
Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
5 years agoCortex-A35: Implement workaround for errata 855472
Louis Mayencourt [Fri, 5 Apr 2019 15:25:25 +0000 (16:25 +0100)]
Cortex-A35: Implement workaround for errata 855472

Under specific conditions, the processor might issue an eviction and an
L2 cache clean operation to the interconnect in the wrong order. Set
the CPUACTLR.ENDCCASCI bit to 1 to avoid this.

Change-Id: Ide7393adeae04581fa70eb9173b742049fc3e050
Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
5 years agoTemporarily disable shared Mbed TLS heap for SGM
John Tsichritzis [Tue, 16 Apr 2019 11:05:29 +0000 (12:05 +0100)]
Temporarily disable shared Mbed TLS heap for SGM

There is a bug in the shared heap implementation for SGM. Until the bug
is solved, the default implementation is used.

Change-Id: I010911a3f00ed860f742b14daad1d99b9e7ce711
Signed-off-by: John Tsichritzis <john.tsichritzis@arm.com>
5 years agoMerge "Cortex A9:errata 794073 workaround" into integration
Antonio Niño Díaz [Fri, 12 Apr 2019 10:40:35 +0000 (10:40 +0000)]
Merge "Cortex A9:errata 794073 workaround" into integration

5 years agoMerge changes from topic "av/tls-heap" into integration
Antonio Niño Díaz [Fri, 12 Apr 2019 10:40:15 +0000 (10:40 +0000)]
Merge changes from topic "av/tls-heap" into integration

* changes:
  Mbed TLS: Remove weak heap implementation
  sgm: Fix bl2 sources

5 years agoMerge changes from topic "pb/tbbr-oid" into integration
Antonio Niño Díaz [Fri, 12 Apr 2019 10:40:11 +0000 (10:40 +0000)]
Merge changes from topic "pb/tbbr-oid" into integration

* changes:
  doc: Clarify cert_create build when USE_TBBR_DEFS=0
  plat/sgm: Remove redundant platform_oid.h

5 years agoCortex A9:errata 794073 workaround
Joel Hutton [Wed, 10 Apr 2019 11:52:52 +0000 (12:52 +0100)]
Cortex A9:errata 794073 workaround

On Cortex A9 an errata can cause the processor to violate the rules for
speculative fetches when the MMU is off but branch prediction has not
been disabled. The workaround for this is to execute an Invalidate
Entire Branch Prediction Array (BPIALL) followed by a DSB.

see:http://arminfo.emea.arm.com/help/topic/com.arm.doc.uan0009d/UAN0009_cortex_a9_errata_r4.pdf
for more details.

Change-Id: I9146c1fa7563a79f4e15b6251617b9620a587c93
Signed-off-by: Joel Hutton <Joel.Hutton@arm.com>
5 years agoMerge changes from topic "renesas-bsp203" into integration
Antonio Niño Díaz [Fri, 12 Apr 2019 09:38:03 +0000 (09:38 +0000)]
Merge changes from topic "renesas-bsp203" into integration

* changes:
  rcar_gen3: plat: Update IPL and Secure Monitor Rev2.0.3
  rcar_gen3: drivers: Change to restore timer counter value at resume
  rcar_gen3: drivers: pwrc: Add DBSC4 setting before self-refresh mode
  rcar_gen3: plat: Update IPL and Secure Monitor Rev2.0.2
  rcar_gen3: drivers: ddr: Update DDR setting rev.0.35
  rcar_gen3: drivers: qos: change subslot cycle
  rcar_gen3: drivers: board: Add new board revision for H3ULCB
  rcar_gen3: plat: Change periodic write DQ training option.

5 years agoMerge "Improvements in Readme" into integration
Antonio Niño Díaz [Fri, 12 Apr 2019 09:32:22 +0000 (09:32 +0000)]
Merge "Improvements in Readme" into integration

5 years agoMerge "hikey960: Fix race condition between hotplug and idles" into integration
Antonio Niño Díaz [Fri, 12 Apr 2019 09:32:08 +0000 (09:32 +0000)]
Merge "hikey960: Fix race condition between hotplug and idles" into integration

5 years agoMbed TLS: Remove weak heap implementation
Ambroise Vincent [Wed, 10 Apr 2019 11:50:27 +0000 (12:50 +0100)]
Mbed TLS: Remove weak heap implementation

The implementation of the heap function plat_get_mbedtls_heap() becomes
mandatory for platforms supporting TRUSTED_BOARD_BOOT.

The shared Mbed TLS heap default weak function implementation is
converted to a helper function get_mbedtls_heap_helper() which can be
used by the platforms for their own function implementation.

Change-Id: Ic8f2994e25e3d9fcd371a21ac459fdcafe07433e
Signed-off-by: Ambroise Vincent <ambroise.vincent@arm.com>
5 years agoImprovements in Readme
John Tsichritzis [Thu, 11 Apr 2019 16:23:32 +0000 (17:23 +0100)]
Improvements in Readme

- Fix broken link to the issue tracker.
- Add contents section to make navigation easier throughout the page.
- Move the link to documentation contents near the top. Where it was
  before could be missed and documentation might seem inaccessible.

Change-Id: I502e4fc0fd312459cda351d30a8781c221625724
Signed-off-by: John Tsichritzis <john.tsichritzis@arm.com>
5 years agosgm: Fix bl2 sources
Ambroise Vincent [Thu, 11 Apr 2019 12:45:18 +0000 (13:45 +0100)]
sgm: Fix bl2 sources

The weak version of plat_get_mbedtls_heap() was being used.

Change-Id: I6da331a098dd1af5bb64729d5b914cfb74b8869e
Signed-off-by: Ambroise Vincent <ambroise.vincent@arm.com>
5 years agodoc: Clarify cert_create build when USE_TBBR_DEFS=0
Paul Beesley [Thu, 11 Apr 2019 12:35:26 +0000 (13:35 +0100)]
doc: Clarify cert_create build when USE_TBBR_DEFS=0

The user guide documentation for the cert_create tool needs to
mention that a platform must have a platform_oid.h header file
in order to successfully build the cert_create tool when
USE_TBBR_DEFS is 0.

Change-Id: I77f86a022d207e88a79c97741be3eafbfa0c86f1
Signed-off-by: Paul Beesley <paul.beesley@arm.com>
5 years agoplat/sgm: Remove redundant platform_oid.h
Paul Beesley [Thu, 11 Apr 2019 12:27:39 +0000 (13:27 +0100)]
plat/sgm: Remove redundant platform_oid.h

This file is used when building the cert_create tool without using
the 'standard' set of Arm OID values as defined in the TBBR
specification (see tbbr_oid.h). This configuration is enabled by
setting USE_TBBR_DEFS to 0 during build.

At the moment this will fail because the header file included by
this file was removed in commit bb41eb7a9dc3 ("cert: move
platform_oid.h to include/tools_share for all platforms"). For
the SGM platform this means that there is no current use for
this file.

Change-Id: I3c82983ada62330f1ab6be6d6c0cf489adabae7b
Signed-off-by: Paul Beesley <paul.beesley@arm.com>
5 years agorcar_gen3: plat: Update IPL and Secure Monitor Rev2.0.3
Toshiyuki Ogasahara [Fri, 22 Mar 2019 07:15:10 +0000 (16:15 +0900)]
rcar_gen3: plat: Update IPL and Secure Monitor Rev2.0.3

Update the revision number in the revision management file.

Signed-off-by: Toshiyuki Ogasahara <toshiyuki.ogasahara.bo@hitachi.com>
Signed-off-by: Yoshifumi Hosoya <yoshifumi.hosoya.wj@renesas.com>
Change-Id: If8918efad0fcbe6f91b66c0c7438406b1d4fb759

5 years agorcar_gen3: drivers: Change to restore timer counter value at resume
Toshiyuki Ogasahara [Fri, 22 Mar 2019 07:14:00 +0000 (16:14 +0900)]
rcar_gen3: drivers: Change to restore timer counter value at resume

Changed to save and restore cntpct_el0 using memory mapped
register for generic timer when System Suspend and Resume.

Reported by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Signed-off-by: Toshiyuki Ogasahara <toshiyuki.ogasahara.bo@hitachi.com>
Signed-off-by: Yoshifumi Hosoya <yoshifumi.hosoya.wj@renesas.com>
Change-Id: I40fd9f5434c4d52b320cd1d20322b9b8e4e67155

5 years agorcar_gen3: drivers: pwrc: Add DBSC4 setting before self-refresh mode
Yoshifumi Hosoya [Fri, 15 Mar 2019 14:19:28 +0000 (23:19 +0900)]
rcar_gen3: drivers: pwrc: Add DBSC4 setting before self-refresh mode

Very rarely, LPDDR4 power consumption may not decrease
In self-refresh mode.

This patch fixes the DBSC4 self-refresh mode sequence.

Signed-off-by: Yoshifumi Hosoya <yoshifumi.hosoya.wj@renesas.com>
Signed-off-by: Kenji Miyazawa <kenji.miyazawa.xt@renesas.com>
Signed-off-by: Chiaki Fujii <chiaki.fujii.wj@renesas.com>
Change-Id: I838fa0892b1caf1ecd3f04538b3427e7d971ef59

5 years agorcar_gen3: plat: Update IPL and Secure Monitor Rev2.0.2
Toshiyuki Ogasahara [Mon, 11 Mar 2019 06:18:32 +0000 (15:18 +0900)]
rcar_gen3: plat: Update IPL and Secure Monitor Rev2.0.2

Update the revision number in the revision management file.

Signed-off-by: Toshiyuki Ogasahara <toshiyuki.ogasahara.bo@hitachi.com>
Signed-off-by: Yoshifumi Hosoya <yoshifumi.hosoya.wj@renesas.com>
Change-Id: I239f4d9f58d38515a49fa1a22cece48b59710d15

5 years agorcar_gen3: drivers: ddr: Update DDR setting rev.0.35
Chiaki Fujii [Fri, 1 Mar 2019 11:28:55 +0000 (20:28 +0900)]
rcar_gen3: drivers: ddr: Update DDR setting rev.0.35

[IPL/DDR]
- Update DDR setting rev.0.35.

Signed-off-by: Chiaki Fujii <chiaki.fujii.wj@renesas.com>
Change-Id: I2b936ca8621ca320cc97353f99240da5f24781f7

5 years agorcar_gen3: drivers: qos: change subslot cycle
Yoshifumi Hosoya [Mon, 11 Mar 2019 06:15:25 +0000 (15:15 +0900)]
rcar_gen3: drivers: qos: change subslot cycle

Subslot cycle from 132 to 126 as default setting.
Subslot cycle from 264 to 252.

 [IPL/QoS]
 - Update H3 Ver.2.0 QoS setting rev.0.21.
 - Update H3 Ver.3.0 QoS setting rev.0.11.
 - Update M3 Ver.1.1 QoS setting rev.0.19.
 - Update M3 Ver.3.0 QoS setting rev.0.02.
 - Update M3N Ver.1.1 QoS setting rev.0.09.

Signed-off-by: Yoshifumi Hosoya <yoshifumi.hosoya.wj@renesas.com>
Change-Id: I52b1bf880163ce03065dc8933d7f193e45cfd9a5

5 years agorcar_gen3: drivers: board: Add new board revision for H3ULCB
Yusuke Goda [Mon, 11 Mar 2019 06:09:39 +0000 (15:09 +0900)]
rcar_gen3: drivers: board: Add new board revision for H3ULCB

Board Revision[2:0]
 3'b000 Rev1.0 OB
 3'b001 Rev1.0 CE
 3'b010 Rev2.0 [New]

Signed-off-by: Yusuke Goda <yusuke.goda.sx@renesas.com>
Change-Id: I0f109cddc95eca78aea34c7149e70f14e2f1620b

5 years agorcar_gen3: plat: Change periodic write DQ training option.
Toshiyuki Ogasahara [Mon, 11 Mar 2019 06:03:00 +0000 (15:03 +0900)]
rcar_gen3: plat: Change periodic write DQ training option.

Periodic write DQ training available as default.

Signed-off-by: Toshiyuki Ogasahara <toshiyuki.ogasahara.bo@hitachi.com>
Signed-off-by: Yoshifumi Hosoya <yoshifumi.hosoya.wj@renesas.com>
Change-Id: I649cfe538e4e2c7e19145ce7d1938ce4361b2529

5 years agoplat: allwinner: common: use r_wdog instead of wdog
Clément Péron [Mon, 8 Apr 2019 22:15:06 +0000 (00:15 +0200)]
plat: allwinner: common: use r_wdog instead of wdog

Some Allwinner H6 has a broken watchdog that doesn't
make the soc reboot.

Use the R_WATCHDOG instead.

Signed-off-by: Clément Péron <peron.clem@gmail.com>
Change-Id: Ie95cc30a80ed517b60b30d6bc2e655a1b53f18ba

5 years agohikey960: Fix race condition between hotplug and idles
Wei Yu [Sun, 7 Apr 2019 03:29:28 +0000 (11:29 +0800)]
hikey960: Fix race condition between hotplug and idles

From the hotplug testing on Hikey960, in some case cores fail to become
online in the system. When some cores are hotplugged off, if other
cores in the same cluster enter into CPU idle states at the meantime,
the cluster will be powered off. This introduces the state machine
malfunction in the power controller, thus when hotplug on the core
afterwards, it fails to boot up the core because the power controller
thinks the cluster is powered on.

This patch is to avoid race condition between hotplug and idles by
preventing cluster power off when some of cores in the cluster are
hotplugged off, if all cores in the same cluster are hotplugged off,
the cluster can be powered off.

Change-Id: Ib2feeb093357c70409a3536cb4f9da9b504fdcbe
Signed-off-by: Wei Yu <yuwei3@hisilicon.com>
Signed-off-by: Leo Yan <leo.yan@linaro.org>
5 years agocache_helpers.s:fix mixed tabs and spaces
Joel Hutton [Tue, 9 Apr 2019 13:52:59 +0000 (14:52 +0100)]
cache_helpers.s:fix mixed tabs and spaces

Change-Id: I8b7c7888d09200410e1a1c11a070c94dd8013ea7
Signed-off-by: Joel Hutton <Joel.Hutton@Arm.com>
5 years agoAdd note about erratum 814220 for A7
Joel Hutton [Tue, 9 Apr 2019 13:45:34 +0000 (14:45 +0100)]
Add note about erratum 814220 for A7

On Cortex-A7 an L2 set/way cache maintenance operation can overtake
an L1 set/way cache maintenance operation. The mitigation for this is
to use a `DSB` instruction before changing cache. The cache cleaning
code happens to already be doing this, so only a comment was added.

Change-Id: Ia1ffb8ca8b6bbbba422ed6f6818671ef9fe02d90
Signed-off-by: Joel Hutton <Joel.Hutton@Arm.com>
5 years agoMerge "aarch32: Allow compiling with soft-float toolchain" into integration
Antonio Niño Díaz [Tue, 9 Apr 2019 12:31:09 +0000 (12:31 +0000)]
Merge "aarch32: Allow compiling with soft-float toolchain" into integration

5 years agoMerge "services/spm: Fix service UUID lookup" into integration
Antonio Niño Díaz [Tue, 9 Apr 2019 10:50:59 +0000 (10:50 +0000)]
Merge "services/spm: Fix service UUID lookup" into integration