project/bcm63xx/atf.git
6 years agoromlib: Allow patching of romlib functions
Sathees Balya [Thu, 18 Oct 2018 18:14:21 +0000 (19:14 +0100)]
romlib: Allow patching of romlib functions

This change allows patching of functions in the
romlib. This can be done by adding "patch" at the
end of the jump table entry for the function that
needs to be patched in the file jmptbl.i.
Functions patched in the jump table list will be
built as part of the BL image and the romlib
version will not be used

Change-Id: Iefb200cb86e2a4b61ad3ee6180d3ecc39bad537f
Signed-off-by: Sathees Balya <sathees.balya@arm.com>
6 years agoMerge pull request #1690 from pbatard/rpi3-docfix
Antonio Niño Díaz [Tue, 20 Nov 2018 16:33:30 +0000 (17:33 +0100)]
Merge pull request #1690 from pbatard/rpi3-docfix

rpi3: fix bad formatting in rpi3.rst

6 years agorpi3: fix bad formatting in rpi3.rst
Pete Batard [Tue, 20 Nov 2018 16:25:15 +0000 (16:25 +0000)]
rpi3: fix bad formatting in rpi3.rst

d4fd0219 (pull request #1685) introduced unwanted formatting
such as bold/italic in the description for RPI3_USE_UEFI_MAP.

6 years agoMerge pull request #1686 from antonio-nino-diaz-arm/an/backtrace
Antonio Niño Díaz [Tue, 20 Nov 2018 11:03:26 +0000 (12:03 +0100)]
Merge pull request #1686 from antonio-nino-diaz-arm/an/backtrace

backtrace: Extract rules from root Makefile

6 years agoMerge pull request #1685 from pbatard/rpi3-use-uefi-map
Antonio Niño Díaz [Tue, 20 Nov 2018 10:57:41 +0000 (11:57 +0100)]
Merge pull request #1685 from pbatard/rpi3-use-uefi-map

rpi3: add RPI3_USE_UEFI_MAP build option

6 years agoMerge pull request #1684 from oscardagrach/hikey-mmc-fix
Antonio Niño Díaz [Mon, 19 Nov 2018 11:49:07 +0000 (12:49 +0100)]
Merge pull request #1684 from oscardagrach/hikey-mmc-fix

hikey: increase delay after eMMC initialized

6 years agoMerge pull request #1682 from MISL-EBU-System-SW/migrate-multi-console
Antonio Niño Díaz [Mon, 19 Nov 2018 11:48:54 +0000 (12:48 +0100)]
Merge pull request #1682 from MISL-EBU-System-SW/migrate-multi-console

Marvell: Migrate to multi console API

6 years agobacktrace: Extract rules from root Makefile
Antonio Nino Diaz [Mon, 19 Nov 2018 11:48:30 +0000 (11:48 +0000)]
backtrace: Extract rules from root Makefile

It's better to have them in a separate file instead of having them spread
across the Makefile. This is what the stack protector is already doing.

Change-Id: Id30742c0af10de5ea6d10674ca25bf52b0f2b262
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agorpi3: add RPI3_USE_UEFI_MAP build option
Pete Batard [Thu, 15 Nov 2018 22:29:59 +0000 (22:29 +0000)]
rpi3: add RPI3_USE_UEFI_MAP build option

The default Raspberry Pi 3 memory mapping for ATF is geared towards
the use of uboot + Linux. This creates issues when trying to use
ATF with an UEFI payload and Windows on ARM64.

We therefore introduce new build option RPI3_USE_UEFI_MAP, that
enables the build process to use an alternate memory mapping that
is compatible with UEFI + Windows (as well as UEFI + Linux).

Fixes ARM-software/tf-issues#649

Signed-off-by: Pete Batard <pete@akeo.ie>
6 years agoMerge pull request #1683 from Yann-lms/stm32mp1_multi_console
Antonio Niño Díaz [Fri, 16 Nov 2018 13:46:37 +0000 (14:46 +0100)]
Merge pull request #1683 from Yann-lms/stm32mp1_multi_console

Add multi console support for STM32MP1

6 years agoMerge pull request #1680 from pbatard/rpi3-runtime-uart
Antonio Niño Díaz [Thu, 15 Nov 2018 15:36:12 +0000 (16:36 +0100)]
Merge pull request #1680 from pbatard/rpi3-runtime-uart

rpi3: add RPI3_RUNTIME_UART build option

6 years agohikey: increase delay after eMMC initialized
Ryan Grachek [Thu, 15 Nov 2018 14:41:25 +0000 (08:41 -0600)]
hikey: increase delay after eMMC initialized

Some eMMC chips require a longer delay. After testing
different chips, 20ms appears to work reliably.

Signed-off-by: Ryan Grachek <ryan@edited.us>
6 years agoplat/marvell: Migrate to multi-console API
Konstantin Porotchkin [Wed, 14 Nov 2018 15:15:08 +0000 (17:15 +0200)]
plat/marvell: Migrate to multi-console API

Migrate Marvell platforms from legacy console API to
multi-console API.

Change-Id: I647f5f49148b463a257a747af05b5f0c967f267c
Signed-off-by: Konstantin Porotchkin <kostap@marvell.com>
6 years agodrivers: st: uart: remove old API
Yann Gautier [Thu, 15 Nov 2018 10:52:32 +0000 (11:52 +0100)]
drivers: st: uart: remove old API

Now that MULTI_CONSOLE_API is enabled for the STM32MP1 platform,
we can remove the non MULTI_CONSOLE_API parts in the driver.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
6 years agostm32mp1: use MULTI_CONSOLE_API
Yann Gautier [Wed, 14 Nov 2018 17:46:15 +0000 (18:46 +0100)]
stm32mp1: use MULTI_CONSOLE_API

Signed-off-by: Yann Gautier <yann.gautier@st.com>
6 years agodrivers: st: update console driver to support MULTI_CONSOLE_API
Yann Gautier [Thu, 15 Nov 2018 08:51:06 +0000 (09:51 +0100)]
drivers: st: update console driver to support MULTI_CONSOLE_API

Signed-off-by: Yann Gautier <yann.gautier@st.com>
6 years agostm32mp1: add a new file for UART registers definition
Yann Gautier [Wed, 14 Nov 2018 17:18:12 +0000 (18:18 +0100)]
stm32mp1: add a new file for UART registers definition

Signed-off-by: Yann Gautier <yann.gautier@st.com>
6 years agoutils_def: add an assembly version for GENMASK
Yann Gautier [Thu, 15 Nov 2018 08:49:24 +0000 (09:49 +0100)]
utils_def: add an assembly version for GENMASK

When compiling assembly files, stdint.h is not included.
UINT32_C and UINT64_C are then not defined.
A new GENMASK macro for assembly is then created.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
6 years agoMerge pull request #1675 from SNG-ARM/integration
Antonio Niño Díaz [Thu, 15 Nov 2018 10:20:03 +0000 (11:20 +0100)]
Merge pull request #1675 from SNG-ARM/integration

SPM priority level changes

6 years agofix: plat/marvell: a3700: Remove encryption password
Konstantin Porotchkin [Tue, 6 Nov 2018 16:10:33 +0000 (18:10 +0200)]
fix: plat/marvell: a3700: Remove encryption password

According to "openssl" manual:
-K key
The actual key to use: this must be represented as a string
comprised only of hex digits. If only the key is specified,
the IV must additionally specified using the -iv option.
When both a key and a password are specified, the key given
with the -K option will be used and the IV generated from the
password will be taken.
It does not make much sense to specify both key and password.

This patch removes "-k 0" parameter from the encryption command
since we are already using "-K" and "-iv" for the key and IV.

Change-Id: Ia333cedaa3207e643c95d2ec7c229f50eeab96db
Signed-off-by: Konstantin Porotchkin <kostap@marvell.com>
Reviewed-on: http://vgitil04.il.marvell.com:8080/60745
Reviewed-by: Igal Liberman <igall@marvell.com>
Tested-by: iSoC Platform CI <ykjenk@marvell.com>
Reviewed-by: Sharon Habet <sharonh@marvell.com>
6 years agoSPM: Raise running priority of the core while in Secure Partition
Sughosh Ganu [Wed, 14 Nov 2018 05:36:24 +0000 (11:06 +0530)]
SPM: Raise running priority of the core while in Secure Partition

The current secure partition design mandates that a) at a point, only
a single core can be executing in the secure partition, and b) a core
cannot be preempted by an interrupt while executing in secure
partition.

Ensure this by activating the SPM priority prior to entering the
parition. Deactivate the priority on return from the
partition.

Change-Id: Icb3473496d16b733564592eef06304a1028e4f5c
Signed-off-by: Sughosh Ganu <sughosh.ganu@arm.com>
6 years agoSPM: Register Secure Partition priority level with ehf module
Sughosh Ganu [Wed, 14 Nov 2018 05:12:46 +0000 (10:42 +0530)]
SPM: Register Secure Partition priority level with ehf module

Register a priority level, PLAT_SP_PRI, for secure partition with EL3
exception handling framework(ehf) module.

The secure partition manager(SPM) would raise the core's priority to
PLAT_SP_PRI before entering the secure partition, to protect the core
from getting interrupted while in secure partition.

Change-Id: I686897f052a4371e0efa9b929c07d3ad77249e95
Signed-off-by: Sughosh Ganu <sughosh.ganu@arm.com>
6 years agoSPM: EHF: Build EHF module along with Secure Partition Manager
Sughosh Ganu [Wed, 14 Nov 2018 05:10:33 +0000 (10:40 +0530)]
SPM: EHF: Build EHF module along with Secure Partition Manager

Add a dependency for building EL3 exception handling framework(EHF)
module with the secure partition manager(SPM).

The EHF module is needed for raising the core's running priority
before the core enters the secure partition, and lowering it
subsequently on exit from the secure partition.

Change-Id: Icbe2d0a63f00b46dc593ff3d86b676c9333506c3
Signed-off-by: Sughosh Ganu <sughosh.ganu@arm.com>
6 years agorpi3: add RPI3_RUNTIME_UART build option
Pete Batard [Tue, 13 Nov 2018 13:14:26 +0000 (13:14 +0000)]
rpi3: add RPI3_RUNTIME_UART build option

Some OSes (e.g. Ubuntu 18.04 LTS on Raspberry Pi 3) may disable the
runtime UART in a manner that prevents the system from rebooting if
ATF tries to send runtime messages there.

Also, we don't want the firmware to share the UART with normal
world, as this can be a DoS attack vector into the secure world.

This patch fixes these 2 issues by introducing new build option
RPI3_RUNTIME_UART, that disables the runtime UART by default.

Fixes ARM-software/tf-issues#647

Signed-off-by: Pete Batard <pete@akeo.ie>
6 years agoMerge pull request #1676 from Yann-lms/static_analysis
Antonio Nino Diaz [Tue, 13 Nov 2018 13:27:41 +0000 (13:27 +0000)]
Merge pull request #1676 from Yann-lms/static_analysis

Correct some issues found with static analysis tools

6 years agoMerge pull request #1677 from acolinisi/PR--drivers-cadence-uart-prototype
Antonio Niño Díaz [Tue, 13 Nov 2018 11:26:28 +0000 (12:26 +0100)]
Merge pull request #1677 from acolinisi/PR--drivers-cadence-uart-prototype

cadence: uart: comply to console_register prototype

6 years agocadence: uart: comply to console_register prototype
Alexei Colin [Fri, 9 Nov 2018 22:36:55 +0000 (17:36 -0500)]
cadence: uart: comply to console_register prototype

Signed-off-by: Alexei Colin <acolin@isi.edu>
6 years agoMerge pull request #1674 from jforissier/hisi-multi-console
Antonio Niño Díaz [Mon, 12 Nov 2018 10:40:11 +0000 (11:40 +0100)]
Merge pull request #1674 from jforissier/hisi-multi-console

hikey, hikey960, poplar: use new console APIs

6 years agoMerge pull request #1605 from sivadur/integration
Antonio Niño Díaz [Mon, 12 Nov 2018 09:56:41 +0000 (10:56 +0100)]
Merge pull request #1605 from sivadur/integration

Add support new Xilinx Versal ACAP platform

6 years agostm32mp1: remove duplicate function declaration
Yann Gautier [Fri, 9 Nov 2018 16:47:34 +0000 (17:47 +0100)]
stm32mp1: remove duplicate function declaration

It is already in include/drivers/st/stm32mp1_ddr_helpers.h.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
6 years agostm32mp1: correct some static analysis tools issues
Yann Gautier [Fri, 9 Nov 2018 14:57:18 +0000 (15:57 +0100)]
stm32mp1: correct some static analysis tools issues

These issues wer found by sparse:

drivers/st/clk/stm32mp1_clk.c:1524:19:
 warning: incorrect type in assignment (different base types)
    expected restricted fdt32_t const [usertype] *pkcs_cell
    got unsigned int const [usertype] *

plat/st/stm32mp1/plat_image_load.c:13:6:
 warning: symbol 'plat_flush_next_bl_params' was not declared.
 Should it be static?
plat/st/stm32mp1/plat_image_load.c:21:16:
 warning: symbol 'plat_get_bl_image_load_info' was not declared.
 Should it be static?
plat/st/stm32mp1/plat_image_load.c:29:13:
 warning: symbol 'plat_get_next_bl_params' was not declared.
 Should it be static?

plat/st/stm32mp1/bl2_io_storage.c:40:10:
 warning: symbol 'block_buffer' was not declared. Should it be static?

Signed-off-by: Yann Gautier <yann.gautier@st.com>
6 years agodrivers: partition: correct some static analysis tools issues
Yann Gautier [Fri, 9 Nov 2018 17:21:04 +0000 (18:21 +0100)]
drivers: partition: correct some static analysis tools issues

cppcheck:
[drivers/partition/gpt.c:19] -> [drivers/partition/gpt.c:19]:
 (warning) Either the condition 'str_in!=((void*)0)' is redundant
 or there is possible null pointer dereference: name.

sparse:
drivers/partition/gpt.c:39:9:
 warning: Using plain integer as NULL pointer

Signed-off-by: Yann Gautier <yann.gautier@st.com>
6 years agopsci: put __dead2 attribute after void in plat_psci_ops
Yann Gautier [Fri, 9 Nov 2018 17:21:51 +0000 (18:21 +0100)]
psci: put __dead2 attribute after void in plat_psci_ops

These warnings were issued by sparse:
plat/st/stm32mp1/stm32mp1_pm.c:365:36:
 warning: incorrect type in initializer (different modifiers)
    expected void ( *[noreturn] pwr_domain_pwr_down_wfi )( ... )
    got void ( [noreturn] *<noident> )( ... )
plat/st/stm32mp1/stm32mp1_pm.c:366:23:
 warning: incorrect type in initializer (different modifiers)
    expected void ( *[noreturn] system_off )( ... )
    got void ( [noreturn] *<noident> )( ... )
plat/st/stm32mp1/stm32mp1_pm.c:367:25:
 warning: incorrect type in initializer (different modifiers)
    expected void ( *[noreturn] system_reset )( ... )
    got void ( [noreturn] *<noident> )( ... )

This cannot be changed the other way in all platforms pm drivers
or else there is a compilation error:
plat/st/stm32mp1/stm32mp1_pm.c:234:1: error: attributes should be specified
 before the declarator in a function definition

Signed-off-by: Yann Gautier <yann.gautier@st.com>
6 years agoarm64: versal: Add support for new Xilinx Versal ACAPs
Siva Durga Prasad Paladugu [Tue, 25 Sep 2018 13:14:58 +0000 (18:44 +0530)]
arm64: versal: Add support for new Xilinx Versal ACAPs

Xilinx is introducing Versal, an adaptive compute acceleration platform
(ACAP), built on 7nm FinFET process technology. Versal ACAPs combine Scalar
Processing Engines, Adaptable Hardware Engines, and Intelligent Engines with
leading-edge memory and interfacing technologies to deliver powerful
heterogeneous acceleration for any application. The Versal AI Core series has
five devices, offering 128 to 400 AI Engines. The series includes dual-core Arm
Cortex-A72 application processors, dual-core Arm Cortex-R5 real-time
processors, 256KB of on-chip memory with ECC, more than 1,900 DSP engines
optimized for high-precision floating point with low latency.

This patch adds Virtual QEMU platform support for
this SoC "versal_virt".

Signed-off-by: Siva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
6 years agopoplar: Use new console APIs
Jerome Forissier [Thu, 8 Nov 2018 11:57:30 +0000 (11:57 +0000)]
poplar: Use new console APIs

Switch to the new console APIs enabled by setting MULTI_CONSOLE_API=1.
Enables building with ERROR_DEPRECATED=1.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
6 years agohikey960: Use new console APIs
Jerome Forissier [Thu, 8 Nov 2018 08:59:29 +0000 (09:59 +0100)]
hikey960: Use new console APIs

Switch to the new console APIs enabled by setting MULTI_CONSOLE_API=1.
Enables building with ERROR_DEPRECATED=1.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
6 years agohikey: Use new console APIs
Jerome Forissier [Thu, 8 Nov 2018 10:17:47 +0000 (10:17 +0000)]
hikey: Use new console APIs

Switch to the new console APIs enabled by setting MULTI_CONSOLE_API=1.
Enables building with ERROR_DEPRECATED=1.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
6 years agoMerge pull request #1673 from antonio-nino-diaz-arm/an/headers
Antonio Niño Díaz [Thu, 8 Nov 2018 11:22:42 +0000 (12:22 +0100)]
Merge pull request #1673 from antonio-nino-diaz-arm/an/headers

Standardise header guards across codebase

6 years agoStandardise header guards across codebase
Antonio Nino Diaz [Thu, 8 Nov 2018 10:20:19 +0000 (10:20 +0000)]
Standardise header guards across codebase

All identifiers, regardless of use, that start with two underscores are
reserved. This means they can't be used in header guards.

The style that this project is now to use the full name of the file in
capital letters followed by 'H'. For example, for a file called
"uart_example.h", the header guard is UART_EXAMPLE_H.

The exceptions are files that are imported from other projects:

- CryptoCell driver
- dt-bindings folders
- zlib headers

Change-Id: I50561bf6c88b491ec440d0c8385c74650f3c106e
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoMerge pull request #1672 from sandrine-bailleux-arm/sb/fix-dram-constants
Soby Mathew [Wed, 7 Nov 2018 17:03:45 +0000 (17:03 +0000)]
Merge pull request #1672 from sandrine-bailleux-arm/sb/fix-dram-constants

Arm platforms: Fix DRAM address macros

6 years agoMerge pull request #1668 from ldts/rcar_gen3/e3_build
Soby Mathew [Wed, 7 Nov 2018 17:00:49 +0000 (17:00 +0000)]
Merge pull request #1668 from ldts/rcar_gen3/e3_build

rcar_gen3: E3 target: fix compilation issues

6 years agoMerge pull request #1670 from antonio-nino-diaz-arm/an/misra-arm
Soby Mathew [Wed, 7 Nov 2018 16:58:03 +0000 (16:58 +0000)]
Merge pull request #1670 from antonio-nino-diaz-arm/an/misra-arm

plat/arm: Fix MISRA defects in common code

6 years agoMerge pull request #1669 from sandrine-bailleux-arm/sb/rm-tzc-top-fn
Soby Mathew [Wed, 7 Nov 2018 16:56:03 +0000 (16:56 +0000)]
Merge pull request #1669 from sandrine-bailleux-arm/sb/rm-tzc-top-fn

Remove unneeded _tzc_get_max_top_addr() function

6 years agoMerge pull request #1666 from pmanish87/mp2/manish_local
Soby Mathew [Wed, 7 Nov 2018 16:54:17 +0000 (16:54 +0000)]
Merge pull request #1666 from pmanish87/mp2/manish_local

plat/arm: Support direct Linux kernel boot in AArch32

6 years agoArm platforms: Fix DRAM address macros
Sandrine Bailleux [Wed, 31 Oct 2018 13:28:17 +0000 (14:28 +0100)]
Arm platforms: Fix DRAM address macros

On AArch32, ARM_DRAM1_BASE and ARM_DRAM1_SIZE constants are currently
32-bit values (because they are suffixed with UL and the value
0x80000000 fits in a unsigned long int, i.e. a 32-bit value). When
summing them up, the result overflows the maximum value that can be
encoded in a 32-bit value so it wraps around and does not result in
the expected value.

This patch changes the suffix of these constants into ULL so that they
always are 64-bit values.

Change-Id: I3b19b1805e35cc7e43050458df379081b1e882d5
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
6 years agoRemove _tzc_get_max_top_addr() function
Sandrine Bailleux [Wed, 31 Oct 2018 12:41:47 +0000 (13:41 +0100)]
Remove _tzc_get_max_top_addr() function

This function was needed at the time where we didn't have the
compiler_rt lib. An AArch32-specific variant was provided to handle
the 64-bit shift operation in 32-bit. This is no longer needed.

Change-Id: Ibab709a95e3a723ae2eeaddf873dba70ff2012b3
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
6 years agocompiler_rt: Import lshrdi3.c file
Sandrine Bailleux [Wed, 31 Oct 2018 12:37:42 +0000 (13:37 +0100)]
compiler_rt: Import lshrdi3.c file

Imported from the LLVM compiler_rt library on master branch as of
30 Oct 2018 (SVN revision: r345645).

This is to get the __aeabi_llsr() builtin, which is required by a
subsequent patch that uses a logical right shift operator in AArch32.

Change-Id: I9884139a12855a8a87206fb572aaa7dd35582b09
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
6 years agocompiler_rt: Import latest changes on int_lib.h
Sandrine Bailleux [Wed, 31 Oct 2018 12:35:01 +0000 (13:35 +0100)]
compiler_rt: Import latest changes on int_lib.h

Imported from the LLVM compiler_rt library on master branch as of
30 Oct 2018 (SVN revision: r345645).

Change-Id: I058cfb5894daf1d12e1ef971c0ba36b0aa089be5
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
6 years agoplat/arm: Fix MISRA defects in common code
Antonio Nino Diaz [Tue, 6 Nov 2018 13:14:21 +0000 (13:14 +0000)]
plat/arm: Fix MISRA defects in common code

Change-Id: I2419416fadfcdf64da8b7690a348007591c4edf3
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoMerge pull request #1665 from antonio-nino-diaz-arm/an/fdt-helpers
Antonio Niño Díaz [Tue, 6 Nov 2018 11:45:09 +0000 (12:45 +0100)]
Merge pull request #1665 from antonio-nino-diaz-arm/an/fdt-helpers

Introduce new fdt helpers

6 years agorcar_gen3: E3 target: fix compilation issues
ldts [Tue, 6 Nov 2018 09:17:12 +0000 (10:17 +0100)]
rcar_gen3: E3 target: fix compilation issues

Target builds but has not been tested.

Signed-off-by: ldts <jorge.ramirez.ortiz@gmail.com>
6 years agoplat: rcar: support plat_crash_console_flush
ldts [Tue, 6 Nov 2018 10:01:19 +0000 (11:01 +0100)]
plat: rcar: support plat_crash_console_flush

Signed-off-by: ldts <jorge.ramirez.ortiz@gmail.com>
6 years agoMerge pull request #1661 from hzhuang1/emmc_delay
Soby Mathew [Tue, 6 Nov 2018 06:53:48 +0000 (06:53 +0000)]
Merge pull request #1661 from hzhuang1/emmc_delay

hikey: add delay after eMMC initialized

6 years agoplat/arm: Support direct Linux kernel boot in AArch32
Manish Pandey [Fri, 2 Nov 2018 13:28:25 +0000 (13:28 +0000)]
plat/arm: Support direct Linux kernel boot in AArch32

This option allows the Trusted Firmware to directly jump to Linux
kernel for aarch32 without the need of an intermediate loader such
as U-Boot.

Similar to AArch64 ARM_LINUX_KERNEL_AS_BL33 only available with
RESET_TO_SP_MIN=1 as well as BL33 and DTB are preloaded in memory.

Change-Id: I908bc1633696be1caad0ce2f099c34215c8e0633
Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
6 years agoIntroduce fdtw_read_array() helper
Antonio Nino Diaz [Tue, 26 Jun 2018 09:34:10 +0000 (10:34 +0100)]
Introduce fdtw_read_array() helper

fdtw_read_cells() can only read one or two cells, sometimes it may be
needed to read more cells from one property.

Change-Id: Ie70dc76d1540cd6a04787cde7cccb4d1bafc7282
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoIntroduce new fdt helper to read string properties
Antonio Nino Diaz [Tue, 26 Jun 2018 09:34:07 +0000 (10:34 +0100)]
Introduce new fdt helper to read string properties

Introduced fdtw_read_string() to read string properties.

Change-Id: I854eef0390632cf2eaddd2dce60cdb98c117de43
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agolibc: Adapt strlcpy to this codebase
Antonio Nino Diaz [Thu, 27 Sep 2018 08:22:19 +0000 (09:22 +0100)]
libc: Adapt strlcpy to this codebase

Change-Id: I2f5f64aaf90caae936510e1179392a8835f493e0
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agolibc: Import strlcpy from FreeBSD
Antonio Nino Diaz [Thu, 27 Sep 2018 08:18:57 +0000 (09:18 +0100)]
libc: Import strlcpy from FreeBSD

From commit aafd1cf4235d78ce85b76d7da63e9589039344b3:

- lib/libc/strlcpy.c

Change-Id: Iaa7028fcc26706bdd6ee3f1e4bd55dd5873a30c6
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoMerge pull request #1663 from sudeep-holla/scpi_build_fix
Antonio Niño Díaz [Fri, 2 Nov 2018 10:15:56 +0000 (11:15 +0100)]
Merge pull request #1663 from sudeep-holla/scpi_build_fix

plat: juno: fix build for !CSS_USE_SCMI_DRIVER

6 years agoMerge pull request #1660 from antonio-nino-diaz-arm/an/misra
Antonio Niño Díaz [Fri, 2 Nov 2018 10:14:54 +0000 (11:14 +0100)]
Merge pull request #1660 from antonio-nino-diaz-arm/an/misra

Several MISRA defect fixes

6 years agoplat: juno: fix build for !CSS_USE_SCMI_DRIVER
Sudeep Holla [Thu, 1 Nov 2018 16:17:30 +0000 (16:17 +0000)]
plat: juno: fix build for !CSS_USE_SCMI_DRIVER

When CSS_USE_SCMI_DRIVER is not defined or set to 0, we get the
following build error.

plat/arm/board/juno/juno_topology.c:16:19: error: ‘CSS_SCMI_PAYLOAD_BASE’ undeclared here (not in a function)
   .scmi_mbx_mem = CSS_SCMI_PAYLOAD_BASE,
                   ^~~~~~~~~~~~~~~~~~~~~
plat/arm/board/juno/juno_topology.c:17:38: error: ‘CSS_SCMI_MHU_DB_REG_OFF’ undeclared here (not in a function)
   .db_reg_addr = PLAT_CSS_MHU_BASE + CSS_SCMI_MHU_DB_REG_OFF,
                                      ^~~~~~~~~~~~~~~~~~~~~~~
                                      CSS_CPU_PWR_STATE_OFF

Fix the error in order to get function legacy SCPI support functional.

Change-Id: I00cb80db9968aa0be546e33a3a682a2db87719be
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
6 years agobakery: Fix MISRA defects
Antonio Nino Diaz [Wed, 31 Oct 2018 15:55:57 +0000 (15:55 +0000)]
bakery: Fix MISRA defects

Change-Id: I600bc13522ae977db355b6dc5a1695bce39ec130
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoplat/arm: Fix MISRA defects in dyn config
Antonio Nino Diaz [Tue, 30 Oct 2018 16:32:48 +0000 (16:32 +0000)]
plat/arm: Fix MISRA defects in dyn config

Change-Id: Iae6758ca6395560131d1e1a69a1ecfe50ca8bf83
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoplat/arm: Fix types of constants in headers
Antonio Nino Diaz [Tue, 30 Oct 2018 16:12:32 +0000 (16:12 +0000)]
plat/arm: Fix types of constants in headers

Change-Id: I33eaee8e7c983b3042635a448cb8d689ea4e3a12
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agocontext_mgmt: Fix MISRA defects
Antonio Nino Diaz [Wed, 31 Oct 2018 15:25:35 +0000 (15:25 +0000)]
context_mgmt: Fix MISRA defects

The macro EL_IMPLEMENTED() has been deprecated in favour of the new
function el_implemented().

Change-Id: Ic9b1b81480b5e019b50a050e8c1a199991bf0ca9
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoMerge pull request #1658 from glneo/plat-arm-remove
Antonio Niño Díaz [Thu, 1 Nov 2018 11:46:24 +0000 (12:46 +0100)]
Merge pull request #1658 from glneo/plat-arm-remove

ti: k3: common: Remove use of ARM platform code

6 years agoMerge pull request #1657 from antonio-nino-diaz-arm/an/libfdt
Antonio Niño Díaz [Thu, 1 Nov 2018 11:45:32 +0000 (12:45 +0100)]
Merge pull request #1657 from antonio-nino-diaz-arm/an/libfdt

libfdt: Downgrade to version 1.4.6-9

6 years agoMerge pull request #1656 from masahir0y/uniphier
Antonio Niño Díaz [Thu, 1 Nov 2018 11:45:22 +0000 (12:45 +0100)]
Merge pull request #1656 from masahir0y/uniphier

uniphier: clean-up and improve SCP handling code

6 years agoMerge pull request #1623 from MISL-EBU-System-SW/a3700-support
Antonio Niño Díaz [Thu, 1 Nov 2018 11:44:24 +0000 (12:44 +0100)]
Merge pull request #1623 from MISL-EBU-System-SW/a3700-support

Add support for Armada 3700 and COMPHY porting layer

6 years agoplat: marvell: Add support for Armada-37xx SoC platform
Konstantin Porotchkin [Mon, 8 Oct 2018 13:53:09 +0000 (16:53 +0300)]
plat: marvell: Add support for Armada-37xx SoC platform

Add supprot for Marvell platforms based on Armada-37xx SoC.
This includes support for the official Armada-3720 modular
development board and EspressoBin community board.
The Armada-37xx SoC contains dual Cortex-A53 Application CPU,
single secure CPU (Cortex-M3) and the following interfaces:
- SATA 3.0
- USB 3.0 and USB 2.0
- PCIe
- SDIO (supports boot from eMMC)
- SPI
- UART
- I2c
- Gigabit Ethernet

Signed-off-by: Konstantin Porotchkin <kostap@marvell.com>
6 years agoMerge pull request #1650 from chandnich/sgiclark-ares-support
Antonio Niño Díaz [Wed, 31 Oct 2018 14:47:21 +0000 (15:47 +0100)]
Merge pull request #1650 from chandnich/sgiclark-ares-support

Sgiclark ares support

6 years agoMerge pull request #1655 from deepan02/deepak-arm/introduce-n1sdp
Antonio Niño Díaz [Wed, 31 Oct 2018 14:32:58 +0000 (15:32 +0100)]
Merge pull request #1655 from deepan02/deepak-arm/introduce-n1sdp

plat/arm: Introduce the N1SDP.

6 years agoMerge pull request #1659 from vwadekar/sdei-fix-compilation
Antonio Niño Díaz [Wed, 31 Oct 2018 14:31:32 +0000 (15:31 +0100)]
Merge pull request #1659 from vwadekar/sdei-fix-compilation

sdei: include "context.h" to fix compilation errors

6 years agoMerge pull request #1646 from Andre-ARM/allwinner/pmic-v2
Antonio Niño Díaz [Wed, 31 Oct 2018 11:02:22 +0000 (12:02 +0100)]
Merge pull request #1646 from Andre-ARM/allwinner/pmic-v2

Allwinner/pmic v2

6 years agohikey: add delay after eMMC initialized
Haojian Zhuang [Wed, 31 Oct 2018 09:41:35 +0000 (17:41 +0800)]
hikey: add delay after eMMC initialized

It boots failure on CircuitCo HiKey board. The delay could fix the
hang issue.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agosdei: include "context.h" to fix compilation errors
Varun Wadekar [Wed, 31 Oct 2018 00:05:59 +0000 (17:05 -0700)]
sdei: include "context.h" to fix compilation errors

This patch includes context.h from sdei_private.h to fix the
following compilation errors:

<snip>
In file included from services/std_svc/sdei/sdei_event.c:9:0:
services/std_svc/sdei/sdei_private.h: In function 'sdei_client_el':
services/std_svc/sdei/sdei_private.h:164:2: error: unknown type name 'cpu_context_t'
  cpu_context_t *ns_ctx = cm_get_context(NON_SECURE);
  ^
services/std_svc/sdei/sdei_private.h:165:2: error: unknown type name 'el3_state_t'
  el3_state_t *el3_ctx = get_el3state_ctx(ns_ctx);
  ^
services/std_svc/sdei/sdei_private.h:165:2: error: implicit declaration of function 'get_el3state_ctx' [-Werror=implicit-function-declaration]
services/std_svc/sdei/sdei_private.h:165:25: error: initialization makes pointer from integer without a cast [-Werror]
  el3_state_t *el3_ctx = get_el3state_ctx(ns_ctx);
                         ^
services/std_svc/sdei/sdei_private.h:167:2: error: implicit declaration of function 'read_ctx_reg' [-Werror=implicit-function-declaration]
  return ((read_ctx_reg(el3_ctx, CTX_SCR_EL3) & SCR_HCE_BIT) != 0U) ?
  ^
services/std_svc/sdei/sdei_private.h:167:33: error: 'CTX_SCR_EL3' undeclared (first use in this function)
  return ((read_ctx_reg(el3_ctx, CTX_SCR_EL3) & SCR_HCE_BIT) != 0U) ?
                                 ^
services/std_svc/sdei/sdei_private.h:167:33: note: each undeclared identifier is reported only once for each function it appears in
cc1: all warnings being treated as errors
<snip>

Change-Id: Id0cad56accf81b19cb0d301784f3f086dd052722
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
6 years agoti: k3: common: Remove use of ARM platform code
Andrew F. Davis [Mon, 29 Oct 2018 15:41:28 +0000 (10:41 -0500)]
ti: k3: common: Remove use of ARM platform code

A recent patch[0] has made setting up page tables into generic
code, complete the conversion for TI platforms by removing the
use of plat_arm_get_mmap() and using the mmap table directly.

[0] 0916c38deca4 ("Convert arm_setup_page_tables into a generic helper")

Signed-off-by: Andrew F. Davis <afd@ti.com>
6 years agoMerge pull request #1652 from antonio-nino-diaz-arm/an/decouple-arm
Antonio Niño Díaz [Tue, 30 Oct 2018 15:06:41 +0000 (16:06 +0100)]
Merge pull request #1652 from antonio-nino-diaz-arm/an/decouple-arm

poplar, warp7, ls1043: Decouple from plat/arm files

6 years agoMerge pull request #1651 from antonio-nino-diaz-arm/an/rand-misra
Antonio Niño Díaz [Tue, 30 Oct 2018 14:48:02 +0000 (15:48 +0100)]
Merge pull request #1651 from antonio-nino-diaz-arm/an/rand-misra

Fix some MISRA defects

6 years agoMerge pull request #1649 from Yann-lms/stm32mp1_doc_update
Antonio Niño Díaz [Tue, 30 Oct 2018 14:47:48 +0000 (15:47 +0100)]
Merge pull request #1649 from Yann-lms/stm32mp1_doc_update

docs: stm32mp1: complete compilation and flashing steps

6 years agolibfdt: Downgrade to version 1.4.6-9
Antonio Nino Diaz [Mon, 29 Oct 2018 15:08:50 +0000 (15:08 +0000)]
libfdt: Downgrade to version 1.4.6-9

Version 1.4.7 introduces a big performance hit to functions that access
the FDT. Downgrade the library to version 1.4.6-9, before the changes
that introduce the problem. Version 1.4.6 isn't used because one of the
libfdt files (fdt_overlay.c) is missing the license header. This
problem is also fixed in 1.4.6-9.

This version corresponds to commit <aadd0b65c987> checks: centralize
printing of property names in failure messages.

Fixes ARM-software/tf-issues#643

Change-Id: I73c05f2b1f994bcdcc4366131ce0647553cdcfb8
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agowarp7, ls1043: Remove unneeded include paths
Antonio Nino Diaz [Fri, 26 Oct 2018 10:13:23 +0000 (11:13 +0100)]
warp7, ls1043: Remove unneeded include paths

include/plat/arm/common isn't needed by them, and is removed to avoid
dependency on Arm platform code.

Change-Id: Id9fccba33326fd075b3d1029bf1e4b012dfa0483
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agopoplar: Decouple from plat/arm files
Antonio Nino Diaz [Fri, 26 Oct 2018 10:12:31 +0000 (11:12 +0100)]
poplar: Decouple from plat/arm files

plat/arm files should only be used by Arm platforms. If other platforms
use them, they create dependencies that can introduce problems when
updating Arm platforms.

This patch copies the needed code from Arm platforms so that poplar can
be independent from them.

Change-Id: I0b194f5bdb0377b8ccacbd400e021614c026c7fe
Tested-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agouniphier: revise SCP protocol handshake
Dai Okamura [Thu, 4 Oct 2018 23:56:24 +0000 (08:56 +0900)]
uniphier: revise SCP protocol handshake

When the SoC issues a command IRQ to SCP, SCP sets STMTOBEIRQ as ACK.
The SoC must wait for it before issuing the next command.

This commit makes sure to meet the requirement.

Signed-off-by: Dai Okamura <okamura.dai@socionext.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agouniphier: terminate boot if SCP_BL2 image is missing in SCP boot mode
Masahiro Yamada [Thu, 4 Oct 2018 05:54:49 +0000 (14:54 +0900)]
uniphier: terminate boot if SCP_BL2 image is missing in SCP boot mode

Skipping SCP_BL2 image is just a temporary workaround. If on-chip SCP
needs to work, BL2 should load the SCP_BL2 image.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agoFix MISRA defects in PMF
Antonio Nino Diaz [Thu, 25 Oct 2018 16:38:23 +0000 (17:38 +0100)]
Fix MISRA defects in PMF

No functional changes.

Change-Id: I64abd72026082218a40b1a4b8f7dc26ff2478ba6
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoFix MISRA defects in workaround and errata framework
Antonio Nino Diaz [Thu, 25 Oct 2018 16:11:02 +0000 (17:11 +0100)]
Fix MISRA defects in workaround and errata framework

No functional changes.

Change-Id: Iaab0310848be587b635ce5339726e92a50f534e0
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoplat/arm: Fix MISRA defects in SiP SVC handler
Antonio Nino Diaz [Thu, 25 Oct 2018 15:53:04 +0000 (16:53 +0100)]
plat/arm: Fix MISRA defects in SiP SVC handler

No functional changes.

Change-Id: I9b9f8d3dfde08d57706ad5450de6ff858a55ac01
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoFix MISRA defects in extension libs
Antonio Nino Diaz [Thu, 25 Oct 2018 15:52:26 +0000 (16:52 +0100)]
Fix MISRA defects in extension libs

No functional changes.

Change-Id: I2f28f20944f552447ac4e9e755493cd7c0ea1192
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoplat/arm: Introduce the N1SDP.
Deepak Pandey [Wed, 8 Aug 2018 05:02:51 +0000 (10:32 +0530)]
plat/arm: Introduce the N1SDP.

This patch adds support for the N1SDP (NeoVerse N1 System Development
Platform). It is an initial port and additional features are expected
to be added later.

The port includes only BL31 support as the System Control Processor
(SCP) is expected to take the role of primary boatloader

Change-Id: Ife17d8215a7bfcc1420204a72205e7ef920d0c10
Signed-off-by: Deepak Pandey <Deepak.Pandey@arm.com>
6 years agoMerge pull request #1654 from antonio-nino-diaz-arm/an/meson-console
Soby Mathew [Mon, 29 Oct 2018 11:45:10 +0000 (11:45 +0000)]
Merge pull request #1654 from antonio-nino-diaz-arm/an/meson-console

meson: console: Add missing define to fix build

6 years agomeson: console: Add missing define to fix build
Antonio Nino Diaz [Mon, 29 Oct 2018 11:35:34 +0000 (11:35 +0000)]
meson: console: Add missing define to fix build

It isn't possible to build this driver without adding this define.

Change-Id: Iba2ced411cd8ce438787871fa01b414d32b9aa42
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoMerge pull request #1644 from soby-mathew/sm/pie_proto
Soby Mathew [Mon, 29 Oct 2018 10:56:30 +0000 (10:56 +0000)]
Merge pull request #1644 from soby-mathew/sm/pie_proto

Position Indepedent Executable (PIE) Support

6 years agoMerge pull request #1616 from antonio-nino-diaz-arm/an/gxbb
Soby Mathew [Mon, 29 Oct 2018 10:27:22 +0000 (10:27 +0000)]
Merge pull request #1616 from antonio-nino-diaz-arm/an/gxbb

Initial port of Amlogic Meson S905 (GXBB)

6 years agoFVP: Enable PIE for RESET_TO_BL31=1
Soby Mathew [Sun, 14 Oct 2018 07:13:44 +0000 (08:13 +0100)]
FVP: Enable PIE for RESET_TO_BL31=1

This patch enabled PIE for FVP when RESET_TO_BL31=1. The references
to BL31_BASE are replaced by BL31_START as being a symbol exported by
the linker, will create a dynamic relocation entry in .rela.dyn and
hence will be fixed up by dynamic linker at runtime. Also, we disable
RECLAIM_INIT_CODE when PIE is enabled as the init section overlay
creates some static relocations which cannot be handled by the
dynamic linker currently.

Change-Id: I86df1b0a8b2a8bbbe7c3f3c0b9a08c86c2963ec0
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
6 years agoplat/arm: Use `mov_imm` macro to load immediate values
Soby Mathew [Fri, 12 Oct 2018 16:08:28 +0000 (17:08 +0100)]
plat/arm: Use `mov_imm` macro to load immediate values

This patch makes use of mov_imm macro where possible to load
immediate values within ARM platform layer.

Change-Id: I02bc7fbc1fa334c9fccf76fbddf515952f9a1298
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
6 years agoPIE: Position Independant Executable support for BL31
Soby Mathew [Sun, 14 Oct 2018 07:09:22 +0000 (08:09 +0100)]
PIE: Position Independant Executable support for BL31

This patch introduces Position Independant Executable(PIE) support
in TF-A. As a initial prototype, only BL31 can support PIE. A trivial
dynamic linker is implemented which supports fixing up Global Offset
Table(GOT) and Dynamic relocations(.rela.dyn). The fixup_gdt_reloc()
helper function implements this linker and this needs to be called
early in the boot sequence prior to invoking C functions. The GOT is
placed in the RO section of BL31 binary for improved security and the
BL31 linker script is modified to export the appropriate symbols
required for the dynamic linker.

The C compiler always generates PC relative addresses to linker symbols
and hence referencing symbols exporting constants are a problem when
relocating the binary. Hence the reference to the
`__PERCPU_TIMESTAMP_SIZE__` symbol in PMF is removed and is now calculated
at runtime based on start and end addresses.

Change-Id: I1228583ff92cf432963b7cef052e95d995cca93d
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
6 years agoMake errata reporting mandatory for CPU files
Soby Mathew [Mon, 17 Sep 2018 03:34:35 +0000 (04:34 +0100)]
Make errata reporting mandatory for CPU files

Previously the errata reporting was optional for CPU operation
files and this was achieved by making use of weak reference to
resolve to 0 if the symbol is not defined. This is error prone
when adding new CPU operation files and weak references are
problematic when fixing up dynamic relocations. Hence this patch
removes the weak reference and makes it mandatory for the CPU
operation files to define the errata reporting function.

Change-Id: I8af192e19b85b7cd8c7579e52f8f05a4294e5396
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
6 years agoPIE: Use PC relative adrp/adr for symbol reference
Soby Mathew [Fri, 12 Oct 2018 15:40:28 +0000 (16:40 +0100)]
PIE: Use PC relative adrp/adr for symbol reference

This patch fixes up the AArch64 assembly code to use
adrp/adr instructions instead of ldr instruction for
reference to symbols. This allows these assembly
sequences to be Position Independant. Note that the
the reference to sizes have been replaced with
calculation of size at runtime. This is because size
is a constant value and does not depend on execution
address and using PC relative instructions for loading
them makes them relative to execution address. Also
we cannot use `ldr` instruction to load size as it
generates a dynamic relocation entry which must *not*
be fixed up and it is difficult for a dynamic loader
to differentiate which entries need to be skipped.

Change-Id: I8bf4ed5c58a9703629e5498a27624500ef40a836
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
6 years agoBasic Makefile changes for PIE
Soby Mathew [Tue, 28 Aug 2018 10:13:55 +0000 (11:13 +0100)]
Basic Makefile changes for PIE

Change-Id: I0b8ccba15024c55bb03927cdb50370913eb8010c
Signed-off-by: Soby Mathew <soby.mathew@arm.com>