project/bcm63xx/atf.git
6 years agorpi3: Migrate from deprecated APIs
Antonio Nino Diaz [Fri, 17 Aug 2018 13:25:08 +0000 (14:25 +0100)]
rpi3: Migrate from deprecated APIs

Change-Id: If53b5b2430a06ce8cf6e7948765b560b37afc335
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoMerge pull request #1516 from antonio-nino-diaz-arm/an/printf
Dimitris Papastamos [Wed, 15 Aug 2018 09:49:57 +0000 (10:49 +0100)]
Merge pull request #1516 from antonio-nino-diaz-arm/an/printf

Replace stdio.h functions by TF functions

6 years agoMerge pull request #1502 from dp-arm/dp/irc
Dimitris Papastamos [Mon, 13 Aug 2018 14:29:35 +0000 (15:29 +0100)]
Merge pull request #1502 from dp-arm/dp/irc

readme: Add information about the TF-A IRC channel

6 years agoMerge pull request #1520 from robertovargas-arm/cci-dsb
Dimitris Papastamos [Mon, 13 Aug 2018 14:29:22 +0000 (15:29 +0100)]
Merge pull request #1520 from robertovargas-arm/cci-dsb

cci: Use dsb to wait before reading status register

6 years agocci: Use dsb to wait before reading status register
Roberto Vargas [Mon, 13 Aug 2018 13:17:43 +0000 (14:17 +0100)]
cci: Use dsb to wait before reading status register

The CCI500 TRM explicitily requires completion of the write
operation before the read operation, and it is not guaranteed
by dmb but it is dsb.

Change-Id: Ieeaa0d1a4b8fcb87108dea9b6de03d9c8a150829
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
6 years agoMerge pull request #1510 from robertovargas-arm/romlib
Dimitris Papastamos [Mon, 13 Aug 2018 12:02:16 +0000 (13:02 +0100)]
Merge pull request #1510 from robertovargas-arm/romlib

Add support for moving libraries to ROM

6 years agoMerge pull request #1519 from antonio-nino-diaz-arm/an/xlat-el2
Dimitris Papastamos [Mon, 13 Aug 2018 12:02:04 +0000 (13:02 +0100)]
Merge pull request #1519 from antonio-nino-diaz-arm/an/xlat-el2

xlat v2: Support EL2 translation regime

6 years agoMerge pull request #1518 from antonio-nino-diaz-arm/an/fix_mmc
Dimitris Papastamos [Mon, 13 Aug 2018 10:22:25 +0000 (11:22 +0100)]
Merge pull request #1518 from antonio-nino-diaz-arm/an/fix_mmc

mmc: Fix warning about usage of uninitialized variable

6 years agodrivers/mmc: Fix warning about usage of uninitialized variable
Antonio Nino Diaz [Fri, 10 Aug 2018 12:04:02 +0000 (13:04 +0100)]
drivers/mmc: Fix warning about usage of uninitialized variable

Because of -Werror, this causes a build error.

Change-Id: I37a8c4bbfe3f2ced5e17981a2814985919ad483b
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agolayerscape: stm32mp1: Migrate to enable_mmu_svc_mon()
Antonio Nino Diaz [Tue, 7 Aug 2018 15:35:54 +0000 (16:35 +0100)]
layerscape: stm32mp1: Migrate to enable_mmu_svc_mon()

Change-Id: I3d16b247a0fa457e6293e2d2c4503dfde1e51c1d
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoplat/arm: Migrate to enable_mmu_svc_mon()
Antonio Nino Diaz [Tue, 7 Aug 2018 15:35:19 +0000 (16:35 +0100)]
plat/arm: Migrate to enable_mmu_svc_mon()

Change-Id: I1bb310e1b05968d30b28913c4011c0601e1ae64e
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoxlat v2: Support the EL2 translation regime
Antonio Nino Diaz [Tue, 7 Aug 2018 18:59:49 +0000 (19:59 +0100)]
xlat v2: Support the EL2 translation regime

The translation library is useful elsewhere. Even though this repository
doesn't exercise the EL2 support of the library, it is better to have it
here as well to make it easier to maintain.

enable_mmu_secure() and enable_mmu_direct() have been deprecated. The
functions are still present, but they are behind ERROR_DEPRECATED and
they call the new functions enable_mmu_svc_mon() and
enable_mmu_direct_svc_mon().

Change-Id: I13ad10cd048d9cc2d55e0fff9a5133671b67dcba
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoMerge pull request #1504 from hzhuang1/migrate_mmc
Dimitris Papastamos [Fri, 10 Aug 2018 11:40:53 +0000 (12:40 +0100)]
Merge pull request #1504 from hzhuang1/migrate_mmc

Migrate mmc

6 years agodoc/maintainers: remove emmc framework
Haojian Zhuang [Sat, 4 Aug 2018 10:07:58 +0000 (18:07 +0800)]
doc/maintainers: remove emmc framework

Remove emmc framework from maintain list.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agodrivers/emmc: remove emmc framework
Haojian Zhuang [Sat, 4 Aug 2018 10:07:44 +0000 (18:07 +0800)]
drivers/emmc: remove emmc framework

Replace emmc framework by mmc framework.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agoplat/poplar: migrate to mmc framework
Haojian Zhuang [Sat, 4 Aug 2018 10:07:26 +0000 (18:07 +0800)]
plat/poplar: migrate to mmc framework

Migrate from emmc framework to mmc framework.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agoplat/hikey: migrate to mmc framework
Haojian Zhuang [Sat, 4 Aug 2018 10:07:10 +0000 (18:07 +0800)]
plat/hikey: migrate to mmc framework

Migrate to mmc framework.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agodrivers/dw_mmc: migrate to mmc framework
Haojian Zhuang [Sat, 4 Aug 2018 10:06:52 +0000 (18:06 +0800)]
drivers/dw_mmc: migrate to mmc framework

Migrate dw_mmc driver from emmc framework to mmc framework. The
emmc framework will be abandoned.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agodrivers/mmc: set buswidth and speed before reading data
Haojian Zhuang [Sat, 4 Aug 2018 10:04:30 +0000 (18:04 +0800)]
drivers/mmc: set buswidth and speed before reading data

It should set buswidth and speed of mmc controller before accessing
mmc.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agodrivers/mmc: make mmc_ext_csd aligned with 16 char
Haojian Zhuang [Thu, 2 Aug 2018 06:50:12 +0000 (14:50 +0800)]
drivers/mmc: make mmc_ext_csd aligned with 16 char

DMA is always used in mmc driver. So the buffer address should
always follow the DMA limitation.

There're same requirement in mmc_read_blocks()/mmc_write_blocks()
on parameter buf. Since parameter buf comes from io_block driver,
it's already handled in io_block driver.

At here, just make the minimum address alignment on 16 chars.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agodrivers/mmc: fix lba param to int
Haojian Zhuang [Thu, 2 Aug 2018 06:49:51 +0000 (14:49 +0800)]
drivers/mmc: fix lba param to int

mmc_read_blocks()/mmc_write_blocks() derived from io_block_ops_t
type. It means that lba param should be integer type, not
unsigned integer type.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agodrivers/mmc: send CMD8 only for SD card in initialization
Haojian Zhuang [Thu, 2 Aug 2018 06:48:17 +0000 (14:48 +0800)]
drivers/mmc: send CMD8 only for SD card in initialization

Sending CMD8 before CMD1 just causes to fetch data failure in eMMC.
Check whether it's eMMC first. If it's eMMC, send CMD1 command instead.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agoMerge pull request #1505 from Yann-lms/mmc_delays
Dimitris Papastamos [Fri, 10 Aug 2018 08:44:09 +0000 (09:44 +0100)]
Merge pull request #1505 from Yann-lms/mmc_delays

mmc: add required delays when retrying commands

6 years agoReplace stdio.h functions by TF functions
Antonio Nino Diaz [Thu, 9 Aug 2018 14:30:28 +0000 (15:30 +0100)]
Replace stdio.h functions by TF functions

Functions provided by stdio.h such as printf and sprintf are available
in the codebase, but they add a lot of code to the final image if they
are used:

- AArch64: ~4KB
- AArch32: ~2KB in T32, ~3KB in A32

tf_printf and tf_snprintf are a lot more simple, but it is preferable
to use them when possible because they are also used in common code.

Change-Id: Id09fd2b486198fe3d79276e2c27931595b7ba60e
Acked-by: Haojian Zhuang <haojian.zhuang@linaro.org>
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agotf_snprintf: Add support for '%s'
Antonio Nino Diaz [Thu, 9 Aug 2018 14:30:47 +0000 (15:30 +0100)]
tf_snprintf: Add support for '%s'

Change-Id: Ia3a159444e638f63de7dc5a6a4b76169c757188a
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoMerge pull request #1513 from antonio-nino-diaz-arm/an/xlat-caches
Dimitris Papastamos [Thu, 9 Aug 2018 14:16:19 +0000 (15:16 +0100)]
Merge pull request #1513 from antonio-nino-diaz-arm/an/xlat-caches

xlat v2: Cleanup and dcache coherency bug fix

6 years agoxlat v2: Flush xlat tables after being modified
Antonio Nino Diaz [Tue, 7 Aug 2018 11:47:12 +0000 (12:47 +0100)]
xlat v2: Flush xlat tables after being modified

During cold boot, the initial translation tables are created with data
caches disabled, so all modifications go to memory directly. After the
MMU is enabled and data cache is enabled, any modification to the tables
goes to data cache, and eventually may get flushed to memory.

If CPU0 modifies the tables while CPU1 is off, CPU0 will have the
modified tables in its data cache. When CPU1 is powered on, the MMU is
enabled, then it enables coherency, and then it enables the data cache.
Until this is done, CPU1 isn't in coherency, and the translation tables
it sees can be outdated if CPU0 still has some modified entries in its
data cache.

This can be a problem in some cases. For example, the warm boot code
uses only the tables mapped during cold boot, which don't normally
change. However, if they are modified (and a RO page is made RW, or a XN
page is made executable) the CPU will see the old attributes and crash
when it tries to access it.

This doesn't happen in systems with HW_ASSISTED_COHERENCY or
WARMBOOT_ENABLE_DCACHE_EARLY. In these systems, the data cache is
enabled at the same time as the MMU. As soon as this happens, the CPU is
in coherency.

There was an attempt of a fix in psci_helpers.S, but it didn't solve the
problem. That code has been deleted. The code was introduced in commit
<264410306381> ("Invalidate TLB entries during warm boot").

Now, during a map or unmap operation, the memory associated to each
modified table is flushed. Traversing a table will also flush it's
memory, as there is no way to tell in the current implementation if the
table that has been traversed has also been modified.

Change-Id: I4b520bca27502f1018878061bc5fb82af740bb92
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoMerge pull request #1501 from robertovargas-arm/cci
Dimitris Papastamos [Mon, 6 Aug 2018 15:09:20 +0000 (16:09 +0100)]
Merge pull request #1501 from robertovargas-arm/cci

cci: Wait before reading status register

6 years agoAdd librom support in FVP
Roberto Vargas [Wed, 23 May 2018 08:27:06 +0000 (09:27 +0100)]
Add librom support in FVP

Change-Id: Idb9ba3864d6de3053260724f07172fd32c1523e0
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
6 years agoMerge pull request #1512 from npoushin/integration
Dimitris Papastamos [Mon, 6 Aug 2018 10:19:03 +0000 (11:19 +0100)]
Merge pull request #1512 from npoushin/integration

Add support for Arm System Guidance for Mobile fixed virtual platform

6 years agoxlat v2: Cleanup get/change mem attr helpers
Antonio Nino Diaz [Sun, 5 Aug 2018 14:34:10 +0000 (15:34 +0100)]
xlat v2: Cleanup get/change mem attr helpers

Changed the names for consistency with the rest of the library. Introduced
new helpers that manipulate the active translation tables context.

Change-Id: Icaca56b67fcf6a96e88aa3c7e47411162e8e6856
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoplat/arm: Add support for SGM775
Nariman Poushin [Wed, 7 Mar 2018 10:29:57 +0000 (10:29 +0000)]
plat/arm: Add support for SGM775

Add support for System Guidance for Mobile platform SGM775

Change-Id: I2442a50caae8f597e5e5949cd48f695cf75d9653
Signed-off-by: Nariman Poushin <nariman.poushin@linaro.org>
6 years agocss_pm_scmi: optimise cpu suspend to remove redundant scmi call
Deepak Pandey [Tue, 10 Oct 2017 16:04:32 +0000 (21:34 +0530)]
css_pm_scmi: optimise cpu suspend to remove redundant scmi call

In css platforms where the cpu/cluster management is done by the hardware,
software does need to issue certain scmi requests.

This patch wraps those scmi calls around the HW_ASSISTED_COHERENCY
build option to remove them on platforms that have this hardware support.

Change-Id: Ie818e234484ef18549aa7f977aef5c3f0fc26c27
Signed-off-by: Deepak Pandey <Deepak.Pandey@arm.com>
Signed-off-by: Amit Daniel Kachhap <amit.kachhap@arm.com>
Signed-off-by: Nariman Poushin <nariman.poushin@linaro.org>
6 years agoplat/arm: tzc_dmc500: Add missing plat_arm.h include
Nariman Poushin [Fri, 27 Apr 2018 17:49:52 +0000 (18:49 +0100)]
plat/arm: tzc_dmc500: Add missing plat_arm.h include

This omission causes a build error as the definition for
arm_tzc_regions_info_t is needed from plat_arm.h

Change-Id: I26935ee90d3e36ab6a016ff2c4eee4413df3e4e8
Signed-off-by: Nariman Poushin <nariman.poushin@linaro.org>
6 years agoplat/arm: css: Set MT bit in incoming mpidr arugments
Nariman Poushin [Mon, 25 Jun 2018 16:04:51 +0000 (17:04 +0100)]
plat/arm: css: Set MT bit in incoming mpidr arugments

Change-Id: I278d6876508800abff7aa2480910306a24de5378
Signed-off-by: Nariman Poushin <nariman.poushin@linaro.org>
6 years agoMerge pull request #1511 from chandnich/sgi575-updates
Dimitris Papastamos [Fri, 3 Aug 2018 13:16:31 +0000 (14:16 +0100)]
Merge pull request #1511 from chandnich/sgi575-updates

Sgi575 updates

6 years agoplat/sgi: switch to using scmi
Chandni Cherukuri [Wed, 1 Aug 2018 10:28:48 +0000 (15:58 +0530)]
plat/sgi: switch to using scmi

The Arm SGI platforms can switch to using SCMI. So enable support for
SCMI and remove portions of code that would be unused after switching
to SCMI.

Change-Id: Ifd9e1c944745f703da5f970b5daf1be2b07ed14e
Signed-off-by: Chandni Cherukuri <chandni.cherukuri@arm.com>
6 years agosgi: disable CPU power down bit in reset handler
Chandni Cherukuri [Thu, 2 Aug 2018 06:59:07 +0000 (12:29 +0530)]
sgi: disable CPU power down bit in reset handler

On SGI platforms, the 'CORE_PWRDN_EN' bit of 'CPUPWRCTLR_EL1'
register requires an explicit write to clear it for hotplug and
idle to function correctly. The reset value of this bit is zero
but it still requires this explicit clear to zero. This indicates
that this could be a model related issue but for now this issue can
be fixed be clearing the CORE_PWRDN_EN in the platform specific
reset handler function.

Change-Id: I4222930daa9a3abacdace6b7c3f4a5472ac0cb19
Signed-off-by: Chandni Cherukuri <chandni.cherukuri@arm.com>
6 years agoAdd support for romlib in the build system
Roberto Vargas [Tue, 22 May 2018 15:05:42 +0000 (16:05 +0100)]
Add support for romlib in the build system

Romlib is a new image that is stored in ROM and contains the code of
several libraries that can be shared between different images. All
the functions within in the library are accessed using a jump table
which allows to update the romlib image whithout changing the binary
compatibility. This jump table can be also stored in RAM and it can
allow to patch a romlib with potential bugs fixes..

Change-Id: If980ccdaca24b7aaca900e32acc68baf6f94ab35
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
6 years agoAdd atexit function to libc
Roberto Vargas [Thu, 24 May 2018 12:34:53 +0000 (13:34 +0100)]
Add atexit function to libc

We had exit but we didn't have atexit, and we were calling panic and
tf_printf from exit, which generated a dependency from exit to them.
Having atexit allows to set a different function pointer in every image.

Change-Id: I95b9556d680d96249ed3b14da159b6f417da7661
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
6 years agoDon't include mbebtls include paths in INCLUDES
Roberto Vargas [Mon, 4 Jun 2018 14:15:04 +0000 (15:15 +0100)]
Don't include mbebtls include paths in INCLUDES

Mbebtls include paths are controlled by the user using the variable
MBEDTLS_DIR and they are out of the TF source tree. Since these
includes have a different origin it is better to move them to a
different variable.

This change makes easier for the romlib Makefile to parse the include
paths.

Change-Id: I3e4c99300f1012bc7f88c6b9f5bc0ec1f7b5aa8d
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
6 years agoCreate a library file for libmbedtls
Roberto Vargas [Tue, 8 May 2018 09:27:10 +0000 (10:27 +0100)]
Create a library file for libmbedtls

TF Makefile was linking all the objects files generated for the
Mbed TLS library instead of creating a static library that could be
used in the linking stage.

Change-Id: I8e4cd843ef56033c9d3faeee71601d110b7e4c12
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
6 years agoCreate a library file for libc
Roberto Vargas [Tue, 8 May 2018 09:27:10 +0000 (10:27 +0100)]
Create a library file for libc

TF Makefile was linking all the objects files generated for the
c library instead of creating a static library that could be
used in the linking stage.

Change-Id: I721daea097e9b13cbb42c9f8eaa2af8fea0799cf
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
6 years agoCreate a library file for libfdt
Roberto Vargas [Tue, 8 May 2018 09:27:10 +0000 (10:27 +0100)]
Create a library file for libfdt

TF Makefile was linking all the objects files generated for the
fdt library instead of creating a static library that could be
used in the linking stage.

Change-Id: If3705bba188ec39e1fbf2322a7f2a9a941e1b90d
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
6 years agoAdd make macros to build library archives
Roberto Vargas [Tue, 8 May 2018 09:27:10 +0000 (10:27 +0100)]
Add make macros to build library archives

This patch adds all the make macros needed to create a library archive
and to use it in the link stage.

Change-Id: I26597bfd6543649d0b68a9b1e06aec1ba353e6de
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
6 years agoMerge pull request #1506 from danielboulby-arm/db/SeparateCodeAndROData
Dimitris Papastamos [Fri, 3 Aug 2018 09:56:47 +0000 (10:56 +0100)]
Merge pull request #1506 from danielboulby-arm/db/SeparateCodeAndROData

Fix build for SEPARATE_CODE_AND_RODATA=0

6 years agoMerge pull request #1509 from antonio-nino-diaz-arm/an/bool
Dimitris Papastamos [Fri, 3 Aug 2018 09:53:12 +0000 (10:53 +0100)]
Merge pull request #1509 from antonio-nino-diaz-arm/an/bool

xlat: psci: Use bool instead of int

6 years agoMerge pull request #1503 from ARM-software/dh/dual-lic
Dimitris Papastamos [Fri, 3 Aug 2018 08:36:49 +0000 (09:36 +0100)]
Merge pull request #1503 from ARM-software/dh/dual-lic

Update license information in readme.rst

6 years agoMerge pull request #1508 from sandrine-bailleux-arm/sb/fix-trusty-build
Dimitris Papastamos [Fri, 3 Aug 2018 08:34:58 +0000 (09:34 +0100)]
Merge pull request #1508 from sandrine-bailleux-arm/sb/fix-trusty-build

Fix handler prototype in Trusty generic dispatcher

6 years agopsci: Use bool in internal interfaces
Antonio Nino Diaz [Wed, 1 Aug 2018 15:42:10 +0000 (16:42 +0100)]
psci: Use bool in internal interfaces

Change-Id: I77c9cd2d1d6d0122cc49917fa686014bee154589
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoxlat: Use bool instead of int
Antonio Nino Diaz [Thu, 2 Aug 2018 08:57:29 +0000 (09:57 +0100)]
xlat: Use bool instead of int

Change-Id: I35d5b6a7c219f6f38983b30f157c1ed3808af17f
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agommc: add required delays when retrying commands
Yann Gautier [Thu, 2 Aug 2018 11:46:17 +0000 (13:46 +0200)]
mmc: add required delays when retrying commands

A new function mmc_reset_to_idle is also created.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
6 years agoMerge pull request #1507 from jeenu-arm/bool
Dimitris Papastamos [Thu, 2 Aug 2018 09:21:27 +0000 (10:21 +0100)]
Merge pull request #1507 from jeenu-arm/bool

Define bool type

6 years agoFix build for SEPARATE_CODE_AND_RODATA=0
Daniel Boulby [Mon, 16 Jul 2018 13:09:15 +0000 (14:09 +0100)]
Fix build for SEPARATE_CODE_AND_RODATA=0

TF won't build since no memory region is specified
for when SEPARATE_CODE_AND_RODATA=0 it still relies on
the ARM_MAP_BL_RO_DATA region which is never defined for
this case. Create memory region combining code and RO data for
when the build flag SEPARATE_CODE_AND_RODATA=0 to fix this

Change-Id: I6c129eb0833497710cce55e76b8908ce03e0a638
Signed-off-by: Daniel Boulby <daniel.boulby@arm.com>
6 years agoDefine bool type
Jeenu Viswambharan [Wed, 1 Aug 2018 13:56:52 +0000 (14:56 +0100)]
Define bool type

This would enable us to write semantically sensible code.

Change-Id: Ie7c75f9c024f671a037448f5c0922174fff3f0ce
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
6 years agoFix handler prototype in Trusty generic dispatcher
Sandrine Bailleux [Wed, 1 Aug 2018 13:55:34 +0000 (15:55 +0200)]
Fix handler prototype in Trusty generic dispatcher

Fix the types of the arguments of trusty_generic_platform_smc()
to match the expected prototype of a runtime service handler
(see rt_svc_handle_t type).

Change-Id: Ie839d116ca924b4b018ea2abbef72a1073da2a32
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
6 years agoMerge pull request #1500 from danielboulby-arm/db/RORedirection
Dimitris Papastamos [Tue, 31 Jul 2018 15:09:07 +0000 (16:09 +0100)]
Merge pull request #1500 from danielboulby-arm/db/RORedirection

Set console function pointers to const

6 years agoUpdate license information in readme.rst
Dan Handley [Wed, 25 Jul 2018 15:42:10 +0000 (16:42 +0100)]
Update license information in readme.rst

Added information on how disjunctively dual licensed code from
other projects is treated in the TF-A project.

Change-Id: Idca329abba4d36bd3c4fd722ac1556940b9135a2
Signed-off-by: Dan Handley <dan.handley@arm.com>
6 years agoMerge pull request #1498 from glneo/cache-early-fixes
Dimitris Papastamos [Mon, 30 Jul 2018 15:53:34 +0000 (16:53 +0100)]
Merge pull request #1498 from glneo/cache-early-fixes

Early cache enable and coherency fixes

6 years agoMerge pull request #1493 from antonio-nino-diaz-arm/an/xlat-misra
Dimitris Papastamos [Mon, 30 Jul 2018 15:44:43 +0000 (16:44 +0100)]
Merge pull request #1493 from antonio-nino-diaz-arm/an/xlat-misra

Fix MISRA defects in xlat tables lib and SP805 driver

6 years agoreadme: Add information about the TF-A IRC channel
Dimitris Papastamos [Mon, 30 Jul 2018 14:38:04 +0000 (15:38 +0100)]
readme: Add information about the TF-A IRC channel

Fixes ARM-software/tf-issues#607

Change-Id: I5637f53e7f4857c85ee8b3af06ebcf86b9e4f1bc
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
6 years agoSet console function pointers to const
Daniel Boulby [Thu, 7 Jun 2018 13:15:15 +0000 (14:15 +0100)]
Set console function pointers to const

Set the function pointers in the console struct and the functions
they point to to const since they only need to be defined when
the console is being initialised and should not be changed after

Change-Id: I0574307111e3ab2f13d1a4a74c3fa75532dfa4be
Signed-off-by: Daniel Boulby <daniel.boulby@arm.com>
6 years agoFix MISRA defects in SP805 driver
Antonio Nino Diaz [Tue, 24 Jul 2018 10:27:52 +0000 (11:27 +0100)]
Fix MISRA defects in SP805 driver

Fix violations of MISRA C-2012 Rules 10.1, 10.3 and 10.4.

Change-Id: I13c6acda798c1666892f630f097a23e68748f9e4
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoxlat: Fix MISRA defects
Antonio Nino Diaz [Tue, 24 Jul 2018 09:20:53 +0000 (10:20 +0100)]
xlat: Fix MISRA defects

Fix defects of MISRA C-2012 rules 8.13, 10.1, 10.3, 10.4, 10.8, 11.6,
14.4, 15.7, 17.8, 20.10, 20.12, 21.1 and Directive 4.9.

Change-Id: I7ff61e71733908596dbafe2e99d99b4fce9765bd
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoMerge pull request #1497 from SNG-ARM/master
Soby Mathew [Fri, 27 Jul 2018 10:03:13 +0000 (11:03 +0100)]
Merge pull request #1497 from SNG-ARM/master

RAS changes for SGI575 platform

6 years agoMerge pull request #1494 from hzhuang1/pcie_pin
Soby Mathew [Fri, 27 Jul 2018 10:02:36 +0000 (11:02 +0100)]
Merge pull request #1494 from hzhuang1/pcie_pin

Hikey960: configure pins for PCIe controller

6 years agoHikey960: configure pins for PCIe controller
Kaihua Zhong [Mon, 16 Jul 2018 09:33:48 +0000 (17:33 +0800)]
Hikey960: configure pins for PCIe controller

GPIO_089 connects to PCIE_PERST_N. It needs to be configured as
output low.

Signed-off-by: Kaihua Zhong <zhongkaihua@huawei.com>
Signed-off-by: Xiaowei Song <songxiaowei@hisilicon.com>
Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agoti: k3: common: Only enable caches early
Andrew F. Davis [Thu, 26 Jul 2018 19:25:03 +0000 (14:25 -0500)]
ti: k3: common: Only enable caches early

We can enter and exit coherency without any software operations,
but HW_ASSISTED_COHERENCY has stronger implications that are
causing issues. Until these can be resolved, only use the weaker
WARMBOOT_ENABLE_DCACHE_EARLY flag.

Signed-off-by: Andrew F. Davis <afd@ti.com>
6 years agoGIC: Do not flush cache when unneeded
Andrew F. Davis [Thu, 26 Jul 2018 18:50:14 +0000 (13:50 -0500)]
GIC: Do not flush cache when unneeded

When a platform enables its caches before it initializes the
GICC/GICR interface then explicit cache maintenance is not
needed. Remove these here.

Signed-off-by: Andrew F. Davis <afd@ti.com>
6 years agoPSCI: Fix logic error to skip cache flushing
Andrew F. Davis [Thu, 26 Jul 2018 19:00:32 +0000 (14:00 -0500)]
PSCI: Fix logic error to skip cache flushing

If either USE_COHERENT_MEM or HW_ASSISTED_COHERENCY being true
should cause us to not enter the ifdef block, then the logic
is not correct here. Posibly bad use of De Morgan's law?
Fix this.

Signed-off-by: Andrew F. Davis <afd@ti.com>
6 years agoRAS: SGI: Add flags needed to build components for RAS feature
Sughosh Ganu [Wed, 16 May 2018 13:18:56 +0000 (18:48 +0530)]
RAS: SGI: Add flags needed to build components for RAS feature

Add the various flags that are required to build the components needed
to enable the RAS feature on SGI575 platform. By default, all flags
are set to 0, disabling building of all corresponding components.

Change-Id: I7f8536fba895043ef6e397cc33ac9126cb572132
Signed-off-by: Sughosh Ganu <sughosh.ganu@arm.com>
6 years agoRAS: SGI575: Add platform specific RAS changes
Sughosh Ganu [Wed, 16 May 2018 11:56:40 +0000 (17:26 +0530)]
RAS: SGI575: Add platform specific RAS changes

Add platform specific changes needed to add support for the RAS
feature on SGI575 platform, including adding a mapping for the
CPER buffer being used on SGI575 platform.

Change-Id: I01a982e283609b5c48661307906346fa2738a43b
Signed-off-by: Sughosh Ganu <sughosh.ganu@arm.com>
6 years agoRAS: SGI: Add platform handler for RAS interrupts
Sughosh Ganu [Wed, 16 May 2018 11:52:35 +0000 (17:22 +0530)]
RAS: SGI: Add platform handler for RAS interrupts

Add a platform specific handler for RAS interrupts and configure the
platform RAS interrupts for EL3 handling. The interrupt handler passes
control to StandaloneMM code executing in S-EL0, which populates the
CPER buffer with relevant error information. The handler subsequently
invokes the SDEI client which processes the information in the error
information in the CPER buffer. The helper functions
plat_sgi_get_ras_ev_map and plat_sgi_get_ras_ev_map_size would be
defined for sgi platforms in the subsequent patch, which adds sgi575
specific RAS changes.

Change-Id: I490f16c15d9917ac40bdc0441659b92380108d63
Signed-off-by: Sughosh Ganu <sughosh.ganu@arm.com>
6 years agoSPM: SGI: Map memory allocated for secure partitions
Sughosh Ganu [Wed, 16 May 2018 11:49:56 +0000 (17:19 +0530)]
SPM: SGI: Map memory allocated for secure partitions

The secure partition manager reserves chunks of memory which are used
for the S-EL0 StandaloneMM image and the buffers required for
communication between the Non-Secure world with the StandaloneMM
image. Add the memory chunks to relevant arrays for mapping the
regions of memory with corresponding attributes.

Change-Id: If371d1afee0a50ca7cacd55e16aeaca949d5062b
Signed-off-by: Sughosh Ganu <sughosh.ganu@arm.com>
6 years agoARM platforms: Allow board specific definition of SP stack base
Sughosh Ganu [Wed, 16 May 2018 10:05:25 +0000 (15:35 +0530)]
ARM platforms: Allow board specific definition of SP stack base

The SGI platforms need to allocate memory for CPER buffers. These
platform buffers would be placed between the shared reserved memory
and the per cpu stack memory, thus the need to redefine stack base
pointer for these platforms. This patch allows each board in ARM
platform to define the PLAT_SP_IMAGE_STACK_BASE.

Change-Id: Ib5465448b860ab7ab0f645f7cb278a67acce7be9
Signed-off-by: Sughosh Ganu <sughosh.ganu@arm.com>
6 years agoSGI: Include arm_spm_def.h in platform_def.h
Sughosh Ganu [Wed, 16 May 2018 09:43:25 +0000 (15:13 +0530)]
SGI: Include arm_spm_def.h in platform_def.h

Include arm_spm_def.h in the platform_def.h file. Without this
inclusion, we get build errors like

In file included from services/std_svc/spm/sp_setup.c:12:0:
services/std_svc/spm/sp_setup.c: In function 'spm_sp_setup':
services/std_svc/spm/sp_setup.c:61:57: error: 'PLAT_SPM_BUF_BASE'
  undeclared (first use in this function)
  write_ctx_reg(get_gpregs_ctx(ctx), CTX_GPREG_X0, PLAT_SPM_BUF_BASE);

Now that the platform_def.h includes arm_spm_def.h, remove inclusion
of platform_def.h in arm_spm_def.h to remove the circular dependency.

Change-Id: I5225c8ca33fd8d288849524395e436c3d56daf17
Signed-off-by: Sughosh Ganu <sughosh.ganu@arm.com>
6 years agoRAS: ras_common: Add null pointer check for error record probe function
Sughosh Ganu [Sat, 12 May 2018 05:32:31 +0000 (11:02 +0530)]
RAS: ras_common: Add null pointer check for error record probe function

Add a null pointer check for the error record probe
function -- avoids a panic in case a platform has not defined it.

Change-Id: I1139fa0df33297a12ec16615cacd07540925f991
Signed-off-by: Sughosh Ganu <sughosh.ganu@arm.com>
6 years agoInclude board_arm_def.h through the platform's header
Sughosh Ganu [Sat, 10 Mar 2018 13:42:28 +0000 (19:12 +0530)]
Include board_arm_def.h through the platform's header

The board_arm_def.h header file needs to be included via the platform
definition header. Not doing so, results in a redefinition error of
PLAT_ARM_MAX_BL31_SIZE macro, if defined in the platform definition
file.

Change-Id: I1d178f6e8a6a41461e7fbcab9f6813a2faa2d82b
Signed-off-by: Sughosh Ganu <sughosh.ganu@arm.com>
6 years agoMerge pull request #1486 from antonio-nino-diaz-arm/an/psci-misra
danh-arm [Wed, 25 Jul 2018 15:09:54 +0000 (16:09 +0100)]
Merge pull request #1486 from antonio-nino-diaz-arm/an/psci-misra

Fix several MISRA defects in PSCI library

6 years agoMerge pull request #1466 from Yann-lms/stm32mp1
danh-arm [Wed, 25 Jul 2018 15:05:35 +0000 (16:05 +0100)]
Merge pull request #1466 from Yann-lms/stm32mp1

Add STMicroelectronics STM32MP1 platform support

6 years agoMerge pull request #1492 from jts-arm/docs
danh-arm [Wed, 25 Jul 2018 14:23:58 +0000 (15:23 +0100)]
Merge pull request #1492 from jts-arm/docs

Reword LOAD_IMAGE_V2 in user guide & fix a typo

6 years agoMerge pull request #1491 from jeenu-arm/misra-fix
danh-arm [Wed, 25 Jul 2018 14:23:25 +0000 (15:23 +0100)]
Merge pull request #1491 from jeenu-arm/misra-fix

Arm platforms: Fix type mismatch for arm_pm_idle_states

6 years agoMerge pull request #1472 from danielboulby-arm/db/Reclaim
danh-arm [Wed, 25 Jul 2018 14:16:24 +0000 (15:16 +0100)]
Merge pull request #1472 from danielboulby-arm/db/Reclaim

Rework page table setup for varying number of mem regions

6 years agoUpdate list of maintainers for STM32MP1
Yann Gautier [Thu, 5 Jul 2018 14:52:00 +0000 (16:52 +0200)]
Update list of maintainers for STM32MP1

Signed-off-by: Yann Gautier <yann.gautier@st.com>
6 years agostm32mp1: Add platform documentation
Yann Gautier [Mon, 16 Jul 2018 12:49:34 +0000 (14:49 +0200)]
stm32mp1: Add platform documentation

Signed-off-by: Yann Gautier <yann.gautier@st.com>
6 years agostm32mp1: Link BL2, BL32 and DTB in one binary
Yann Gautier [Mon, 16 Jul 2018 12:34:50 +0000 (14:34 +0200)]
stm32mp1: Link BL2, BL32 and DTB in one binary

platform.mk is updated to have compilation rules for DTB, stm32image tool,
and the concatenation of the 3 binaries.
A new linker script and an assembly file are added to manage this.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Mathieu Belou <mathieu.belou@st.com>
Signed-off-by: Lionel Debieve <lionel.debieve@st.com>
6 years agotools: Add stm32image tool into TF-A
Yann Gautier [Thu, 5 Jul 2018 14:50:22 +0000 (16:50 +0200)]
tools: Add stm32image tool into TF-A

This tools adds a specific header to ST TF-A binary.
This header is used by STM32MP1 ROM code to check the bootloader.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Lionel Debieve <lionel.debieve@st.com>
6 years agostm32mp1: Add device tree files
Yann Gautier [Thu, 5 Jul 2018 14:49:51 +0000 (16:49 +0200)]
stm32mp1: Add device tree files

Those device tree files are taken from STM32MP1 U-Boot and Linux.
And they are updated to fit TF-A needs.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Lionel Debieve <lionel.debieve@st.com>
6 years agostm32mp1: Add BL32 SP_min secure monitor
Yann Gautier [Mon, 16 Jul 2018 17:36:06 +0000 (19:36 +0200)]
stm32mp1: Add BL32 SP_min secure monitor

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Mathieu Belou <mathieu.belou@st.com>
Signed-off-by: Lionel Debieve <lionel.debieve@st.com>
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
Signed-off-by: Nicolas Le Bayon <nicolas.le.bayon@st.com>
6 years agostm32mp1: Add DDR support and its security with TZC400
Yann Gautier [Tue, 24 Jul 2018 15:18:19 +0000 (17:18 +0200)]
stm32mp1: Add DDR support and its security with TZC400

The DDR driver is under dual license, BSD and GPLv2.
The configuration parameters are taken from device tree.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Signed-off-by: Nicolas Le Bayon <nicolas.le.bayon@st.com>
Signed-off-by: Lionel Debieve <lionel.debieve@st.com>
6 years agostm32mp1: Add PMIC support
Yann Gautier [Mon, 16 Jul 2018 15:55:07 +0000 (17:55 +0200)]
stm32mp1: Add PMIC support

If a PMIC companion chip is present on board, it has to be configured
for regulators supplies.
This check is done with board DT configuration.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Pascal Paillet <p.paillet@st.com>
6 years agostm32mp1: Add console support
Yann Gautier [Thu, 5 Jul 2018 14:48:16 +0000 (16:48 +0200)]
stm32mp1: Add console support

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Nicolas Le Bayon <nicolas.le.bayon@st.com>
Signed-off-by: Lionel Debieve <lionel.debieve@st.com>
6 years agostm32mp1: save boot information in backup registers
Yann Gautier [Fri, 20 Jul 2018 09:36:05 +0000 (11:36 +0200)]
stm32mp1: save boot information in backup registers

This will be used by BL33 to get boot device and instance.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Mathieu Belou <mathieu.belou@st.com>
Signed-off-by: Lionel Debieve <lionel.debieve@st.com>
6 years agostm32mp1: Add GPIO support
Yann Gautier [Fri, 13 Jul 2018 19:33:09 +0000 (21:33 +0200)]
stm32mp1: Add GPIO support

The management of pinctrl nodes of device tree is also added.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Mathieu Belou <mathieu.belou@st.com>
Signed-off-by: Nicolas Le Bayon <nicolas.le.bayon@st.com>
6 years agostm32mp1: Add clock and reset support
Yann Gautier [Tue, 24 Jul 2018 15:13:36 +0000 (17:13 +0200)]
stm32mp1: Add clock and reset support

The clock driver is under dual license, BSD and GPLv2.
The clock driver uses device tree, so a minimal support for this is added.
The required files for driver and DTS files are in include/dt-bindings/.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Signed-off-by: Nicolas Le Bayon <nicolas.le.bayon@st.com>
Signed-off-by: Lionel Debieve <lionel.debieve@st.com>
6 years agoIntroduce STMicroelectronics STM32MP1 platform
Yann Gautier [Mon, 16 Jul 2018 08:54:09 +0000 (10:54 +0200)]
Introduce STMicroelectronics STM32MP1 platform

STM32MP1 is a microprocessor designed by STMicroelectronics,
based on a dual Arm Cortex-A7.
It is an Armv7-A platform, using dedicated code from TF-A.

STM32MP1 uses BL2 compiled with BL2_AT_EL3.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Mathieu Belou <mathieu.belou@st.com>
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
Signed-off-by: Lionel Debieve <lionel.debieve@st.com>
Signed-off-by: Nicolas Le Bayon <nicolas.le.bayon@st.com>
Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Signed-off-by: Pascal Paillet <p.paillet@st.com>
6 years agoAdd STMicroelectronics to the list of contributors
Yann Gautier [Thu, 5 Jul 2018 14:45:46 +0000 (16:45 +0200)]
Add STMicroelectronics to the list of contributors

Signed-off-by: Yann Gautier <yann.gautier@st.com>
6 years agoRework page table setup for varying number of mem regions
Daniel Boulby [Fri, 6 Jul 2018 15:54:44 +0000 (16:54 +0100)]
Rework page table setup for varying number of mem regions

Change arm_setup_page_tables() to take a variable number of memory
regions. Remove coherent memory region from BL1, BL2 and BL2U as
their coherent memory region doesn't contain anything and
therefore has a size of 0. Add check to ensure this
doesn't change without us knowing.

Change-Id: I790054e3b20b056dda1043a4a67bd7ac2d6a3bc0
Signed-off-by: Daniel Boulby <daniel.boulby@arm.com>
6 years agoMerge pull request #1488 from b49020/integration
danh-arm [Tue, 24 Jul 2018 13:37:23 +0000 (14:37 +0100)]
Merge pull request #1488 from b49020/integration

synquacer: Enable optional OP-TEE support

6 years agoMerge pull request #1485 from jeenu-arm/ras
danh-arm [Tue, 24 Jul 2018 13:36:43 +0000 (14:36 +0100)]
Merge pull request #1485 from jeenu-arm/ras

Double-fault and fatal error handling support