John Tsichritzis [Mon, 20 May 2019 12:09:34 +0000 (13:09 +0100)]
Update docs for FVP v11.6
Change-Id: I33c1bf49aa10867e1a2ca4c167112b99bf756dda
Signed-off-by: John Tsichritzis <john.tsichritzis@arm.com>
Soby Mathew [Wed, 15 May 2019 16:00:40 +0000 (16:00 +0000)]
Merge "plat: imx8mq: Remove duplicated linker symbols" into integration
Soby Mathew [Wed, 15 May 2019 15:58:17 +0000 (15:58 +0000)]
Merge "drivers: ufs: Extend the delay after reset to wait for some slower chips" into integration
Soby Mathew [Wed, 15 May 2019 15:54:32 +0000 (15:54 +0000)]
Merge "Remove .arch directives from spinlock.S" into integration
Soby Mathew [Wed, 15 May 2019 15:54:16 +0000 (15:54 +0000)]
Merge "SMMUv3: Abort DMA transactions" into integration
John Stultz [Mon, 13 May 2019 23:56:19 +0000 (16:56 -0700)]
drivers: ufs: Extend the delay after reset to wait for some slower chips
We've seen issues with some THG based UFS chips, where
after reset the LUNs don't always enumerate properly.
After some debugging, we found that extending the mdelay
here seems to resolve the issue by giving the chips enough
time to complete reset.
Change-Id: I848f810b2438ed6ad3d33db614c61d2cef9ac400
Signed-off-by: John Stultz <john.stultz@linaro.org>
Jacky Bai [Tue, 9 Apr 2019 02:55:24 +0000 (10:55 +0800)]
plat: imx8mq: Remove duplicated linker symbols
Remove duplicated linker symbols, resue the symbols
defined in bl_common.h
Change-Id: I10de450eccc78c09b61a8ae7126bf4f4029fa682
Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Alexei Fedorov [Fri, 10 May 2019 15:55:16 +0000 (16:55 +0100)]
Remove .arch directives from spinlock.S
This patch removes .arch "arm8.1-a" and "armv8-a"
directives which overwrite ASFLAGS_aarch64 option based
on ARM_ARCH_MINOR passed to Makefile and cause
translation errors like
"selected processor does not support `bti jc'"
for armv8.5-a targets when BTI support is enabled.
Change-Id: Idca5b66ed1e5d86e2188b0c0f16c3819990957c4
Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Alexei Fedorov [Thu, 9 May 2019 11:14:40 +0000 (12:14 +0100)]
SMMUv3: Abort DMA transactions
For security DMA should be blocked at the SMMU by default
unless explicitly enabled for a device. SMMU is disabled
after reset with all streams bypassing the SMMU, and
abortion of all incoming transactions implements a default
deny policy on reset.
This patch also moves "bl1_platform_setup()" function from
arm_bl1_setup.c to FVP platforms' fvp_bl1_setup.c and
fvp_ve_bl1_setup.c files.
Change-Id: Ie0ffedc10219b1b884eb8af625bd4b6753749b1a
Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Soby Mathew [Fri, 10 May 2019 10:42:18 +0000 (10:42 +0000)]
Merge "Initialize platform for MediaTek mt8183" into integration
Antonio Niño Díaz [Fri, 10 May 2019 08:57:32 +0000 (08:57 +0000)]
Merge "maintainers: Step down as sub-maintainer" into integration
Antonio Niño Díaz [Fri, 10 May 2019 08:51:29 +0000 (08:51 +0000)]
Merge "plat: imx8m: Implement IMX_SIP_BUILDINFO" into integration
kenny liang [Wed, 10 Apr 2019 13:09:26 +0000 (21:09 +0800)]
Initialize platform for MediaTek mt8183
- Add basic platform setup
- Add generic CPU helper functions
- Add delay timer platform implementation
- Use TI 16550 uart driver
Change-Id: I1c29569c68fe9fca5e10e88a22a29690bab7141f
Signed-off-by: kenny liang <kenny.liang@mediatek.com>
Leonard Crestez [Wed, 8 May 2019 19:29:21 +0000 (22:29 +0300)]
plat: imx8m: Implement IMX_SIP_BUILDINFO
The IMX_SIP_BUILDINFO call was implemented for imx8qm and imx8qx but
it's also applicable to imx8m.
This fixes U-Boot not printing commit hash on 8m with upstream TF-A.
Change-Id: Idcfd9729eaaccf329c24e241da325f1f6cd3c880
Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Antonio Nino Diaz [Thu, 9 May 2019 13:26:22 +0000 (14:26 +0100)]
maintainers: Step down as sub-maintainer
I'm giving full maintainership of the Raspberry Pi 3 platform port to
Paul. I'm also leaving the GXBB maintainership to Andre, who is also
happy to pass it on to someone else who is more interested in it.
Change-Id: Ieb2212f5fc11ebde9fc0c857e9e305d691d4ee3f
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
Antonio Niño Díaz [Thu, 9 May 2019 12:49:37 +0000 (12:49 +0000)]
Merge "Add Makefile check for PAuth and AArch64" into integration
John Tsichritzis [Tue, 7 May 2019 13:09:09 +0000 (14:09 +0100)]
Add Makefile check for PAuth and AArch64
Pointer authentication is supported only in AArch64. A relevant check is
added for that in the Makefile.
Change-Id: I021ba65a9bd5764fd33292bee42617015e04a870
Signed-off-by: John Tsichritzis <john.tsichritzis@arm.com>
Soby Mathew [Wed, 8 May 2019 13:41:56 +0000 (13:41 +0000)]
Merge "docs: Update contribution guidelines for binary components" into integration
Antonio Niño Díaz [Wed, 8 May 2019 13:34:04 +0000 (13:34 +0000)]
Merge changes I286b925e,I1151c2bc into integration
* changes:
plat: imx8mq: Only keep IRQ 32 unmasked
plat: imx8mq: gpc: Enable all power domain by default
Soby Mathew [Wed, 8 May 2019 13:06:19 +0000 (13:06 +0000)]
Merge "Fix RST rendering and other typos" into integration
John Tsichritzis [Tue, 7 May 2019 13:13:07 +0000 (14:13 +0100)]
Fix RST rendering and other typos
1) One space was missing from the indentation and, hence, rendering error
was generated in the user guide.
2) Partially reword Pointer Authentication related info.
Change-Id: Id5e65d419ec51dd7764f24d1b96b6c9942d63ba4
Signed-off-by: John Tsichritzis <john.tsichritzis@arm.com>
Leonard Crestez [Mon, 6 May 2019 18:43:49 +0000 (21:43 +0300)]
plat: imx8mq: Only keep IRQ 32 unmasked
Only IRQ 32 (SPI 0) needs to be kept unmasked, not everything divisible
by 32.
Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Change-Id: I286b925eead89218cfeddd82f53a634f3447d212
Leonard Crestez [Mon, 6 May 2019 19:22:14 +0000 (22:22 +0300)]
plat: imx8mq: gpc: Enable all power domain by default
This is similar to imx8mm and allows uboot to run fastboot over USB otg.
There is a different set of power domains on 8mq but same bits covers
all off them.
Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Change-Id: I1151c2bc2d32b1e02b4db16285b3d30cabc0d64d
Soby Mathew [Tue, 7 May 2019 14:31:25 +0000 (14:31 +0000)]
Merge changes from topic "sm/fix_a76_errata" into integration
* changes:
Workaround for cortex-A76 errata
1286807
Cortex-A76: workarounds for errata
1257314,
1262606,
1262888,
1275112
Soby Mathew [Fri, 3 May 2019 12:17:56 +0000 (13:17 +0100)]
Workaround for cortex-A76 errata
1286807
The workaround for Cortex-A76 errata #
1286807 is implemented
in this patch.
Change-Id: I6c15af962ac99ce223e009f6d299cefb41043bed
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
Soby Mathew [Wed, 1 May 2019 08:43:18 +0000 (09:43 +0100)]
Cortex-A76: workarounds for errata
1257314,
1262606,
1262888,
1275112
The workarounds for errata
1257314,
1262606,
1262888 and
1275112 are
added to the Cortex-A76 cpu specific file. The workarounds are disabled
by default and have to be explicitly enabled by the platform integrator.
Change-Id: I70474927374cb67725f829d159ddde9ac4edc343
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
Soby Mathew [Fri, 3 May 2019 13:35:38 +0000 (13:35 +0000)]
Merge "Add compile-time errors for HW_ASSISTED_COHERENCY flag" into integration
John Tsichritzis [Tue, 19 Mar 2019 17:20:52 +0000 (17:20 +0000)]
Add compile-time errors for HW_ASSISTED_COHERENCY flag
This patch fixes this issue:
https://github.com/ARM-software/tf-issues/issues/660
The introduced changes are the following:
1) Some cores implement cache coherency maintenance operation on the
hardware level. For those cores, such as - but not only - the DynamIQ
cores, it is mandatory that TF-A is compiled with the
HW_ASSISTED_COHERENCY flag. If not, the core behaviour at runtime is
unpredictable. To prevent this, compile time checks have been added and
compilation errors are generated, if needed.
2) To enable this change for FVP, a logical separation has been done for
the core libraries. A system cannot contain cores of both groups, i.e.
cores that manage coherency on hardware and cores that don't do it. As
such, depending on the HW_ASSISTED_COHERENCY flag, FVP includes the
libraries only of the relevant cores.
3) The neoverse_e1.S file has been added to the FVP sources.
Change-Id: I787d15819b2add4ec0d238249e04bf0497dc12f3
Signed-off-by: John Tsichritzis <john.tsichritzis@arm.com>
Soby Mathew [Fri, 3 May 2019 11:09:02 +0000 (11:09 +0000)]
Merge "SMMUv3: refactor the driver code" into integration
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>
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.
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
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
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.
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
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
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
Julius Werner [Thu, 18 Apr 2019 23:47:46 +0000 (16:47 -0700)]
docs: Update contribution guidelines for binary components
This patch updates the contribution guidelines to refer to the new
binary repository.
Change-Id: I898dc58973be91c3f87be53a755269fca2e93174
Signed-off-by: Julius Werner <jwerner@chromium.org>
Soby Mathew [Tue, 30 Apr 2019 16:17:09 +0000 (16:17 +0000)]
Merge "ti: k3: common: Remove MSMC port definitions" 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
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>
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>
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
Soby Mathew [Mon, 29 Apr 2019 15:38:40 +0000 (15:38 +0000)]
Merge "rockchip: only include libfdt in non-coreboot cases" into integration
Soby Mathew [Mon, 29 Apr 2019 11:29:52 +0000 (11:29 +0000)]
Merge "hikey: Add define for UART2" 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
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
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
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
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
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
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
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
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
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>
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
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
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
Soby Mathew [Fri, 26 Apr 2019 12:55:49 +0000 (12:55 +0000)]
Merge "rk3399: m0: Fix compiler warnings." 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
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
Soby Mathew [Fri, 26 Apr 2019 12:40:04 +0000 (12:40 +0000)]
Merge "Doc: Update link to TBBR-CLIENT specification" into integration
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
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
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
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
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
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
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
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
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
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
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>
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
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
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
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
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>
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>
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
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
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
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
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
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
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
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>
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>
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>
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>
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
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
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
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
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
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>
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>
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>
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>
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>