project/bcm63xx/atf.git
6 years agoAdd support for the SMC Calling Convention 2.0
Antonio Nino Diaz [Mon, 23 Apr 2018 14:43:29 +0000 (15:43 +0100)]
Add support for the SMC Calling Convention 2.0

Due to differences in the bitfields of the SMC IDs, it is not possible
to support SMCCC 1.X and 2.0 at the same time.

The behaviour of `SMCCC_MAJOR_VERSION` has changed. Now, it is a build
option that specifies the major version of the SMCCC that the Trusted
Firmware supports. The only two allowed values are 1 and 2, and it
defaults to 1. The value of `SMCCC_MINOR_VERSION` is derived from it.

Note: Support for SMCCC v2.0 is an experimental feature to enable
prototyping of secure partition specifications. Support for this
convention is disabled by default and could be removed without notice.

Change-Id: I88abf9ccf08e9c66a13ce55c890edea54d9f16a7
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoMerge pull request #1358 from omasab/sgi575_mt_flag
Dimitris Papastamos [Wed, 18 Apr 2018 09:54:40 +0000 (10:54 +0100)]
Merge pull request #1358 from omasab/sgi575_mt_flag

css/sgi575: enable ARM_PLAT_MT flag

6 years agoMerge pull request #1357 from antonio-nino-diaz-arm/an/fix-misra
Dimitris Papastamos [Wed, 18 Apr 2018 09:54:26 +0000 (10:54 +0100)]
Merge pull request #1357 from antonio-nino-diaz-arm/an/fix-misra

Fix some MISRA defects in SPM code

6 years agocss/sgi575: enable ARM_PLAT_MT flag
Sudipto Paul [Mon, 16 Apr 2018 12:16:50 +0000 (17:46 +0530)]
css/sgi575: enable ARM_PLAT_MT flag

SGI-575 platform is based on Cortex-A75 processor which has its MT bit
in the MPIDR register set to '1'. So the Arm platform layer code has
to be made aware of this.

Signed-off-by: Sudipto Paul <sudipto.paul@arm.com>
6 years agoFix some MISRA defects in SPM code
Antonio Nino Diaz [Tue, 17 Apr 2018 14:10:18 +0000 (15:10 +0100)]
Fix some MISRA defects in SPM code

Change-Id: I989c1f4aef8e3cb20d5d19e6347575e6449bb60b
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoMerge pull request #1250 from jollysxilinx/zynqmp-new-eemi-api
Dimitris Papastamos [Tue, 17 Apr 2018 11:08:34 +0000 (12:08 +0100)]
Merge pull request #1250 from jollysxilinx/zynqmp-new-eemi-api

plat/xilinx: Add support for new platform management APIs for ZynqMP

6 years agoMerge pull request #1346 from samarthp/sp/support-multiple-mhu-gen
Dimitris Papastamos [Mon, 16 Apr 2018 15:40:03 +0000 (16:40 +0100)]
Merge pull request #1346 from samarthp/sp/support-multiple-mhu-gen

plat/arm: Add MHUv2 support to SCMI driver

6 years agoplat/arm: Add MHUv2 support to SCMI driver
Samarth Parikh [Thu, 23 Nov 2017 08:53:21 +0000 (14:23 +0530)]
plat/arm: Add MHUv2 support to SCMI driver

Currently the SCMI driver supports MHUv1, but Arm platforms may have
varied versions of MHU driver, with MHUv2 controllers being in the
latest Arm platforms.

This patch updates the SCMI driver to support MHUv2, specifically that
the sender must send the wake-up to the receiver before initiating any
data transfer.

Also, the existing mhu driver files, css_mhu.c and css_mhu.h, have been
moved from the scpi directory to a new directory, css/drivers/mhu.

Change-Id: I9b46b492a3e1d9e26db12d83a9773958a8c8402f
Signed-off-by: Samarth Parikh <samarth.parikh@arm.com>
6 years agoMerge pull request #1356 from robertovargas-arm/misra-changes
Dimitris Papastamos [Mon, 16 Apr 2018 14:04:28 +0000 (15:04 +0100)]
Merge pull request #1356 from robertovargas-arm/misra-changes

Misra changes

6 years agoFix MISRA rule 8.4 Part 4
Roberto Vargas [Mon, 12 Feb 2018 12:36:17 +0000 (12:36 +0000)]
Fix MISRA rule 8.4 Part 4

Rule 8.4: A compatible declaration shall be visible when
          an object or function with external linkage is defined

Fixed for:
make DEBUG=1 PLAT=fvp SPD=tspd TRUSTED_BOARD_BOOT=1 \
     GENERATE_COT=1 ARM_ROTPK_LOCATION=devel_rsa \
     ROT_KEY=arm_rotprivk_rsa.pem MBEDTLS_DIR=mbedtls all

Change-Id: Ie4cd6011b3e4fdcdd94ccb97a7e941f3b5b7aeb8
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
6 years agoFix MISRA rule 8.3 Part 4
Roberto Vargas [Mon, 12 Feb 2018 12:36:17 +0000 (12:36 +0000)]
Fix MISRA rule 8.3 Part 4

Rule 8.3: All declarations of an object or function shall
          use the same names and type qualifiers

Fixed for:
make DEBUG=1 PLAT=fvp SPD=tspd TRUSTED_BOARD_BOOT=1 \
     GENERATE_COT=1 ARM_ROTPK_LOCATION=devel_rsa \
     ROT_KEY=arm_rotprivk_rsa.pem MBEDTLS_DIR=mbedtls all

Change-Id: Ia34fe1ae1f142e89c9a6c19831e3daf4d28f5831
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
6 years agoFix MISRA rule 8.4 Part 3
Roberto Vargas [Mon, 12 Feb 2018 12:36:17 +0000 (12:36 +0000)]
Fix MISRA rule 8.4 Part 3

Rule 8.4: A compatible declaration shall be visible when
          an object or function with external linkage is defined

Fixed for:
make DEBUG=1 PLAT=fvp SPD=tspd all

Change-Id: I0a16cf68fef29cf00ec0a52e47786f61d02ca4ae
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
6 years agoFix MISRA rule 8.3 Part 3
Roberto Vargas [Mon, 12 Feb 2018 12:36:17 +0000 (12:36 +0000)]
Fix MISRA rule 8.3 Part 3

Rule 8.3: All declarations of an object or function shall
          use the same names and type qualifiers

Fixed for:
make DEBUG=1 PLAT=fvp SPD=tspd all

Change-Id: I4e31c93d502d433806dfc521479d5d428468b37c
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
6 years agoFix MISRA rule 8.3 Part 2
Roberto Vargas [Mon, 12 Feb 2018 12:36:17 +0000 (12:36 +0000)]
Fix MISRA rule 8.3 Part 2

Rule 8.3: All declarations of an object or function shall
          use the same names and type qualifiers.

Fixed for:
make DEBUG=1 PLAT=juno LOG_LEVEL=50 all

Change-Id: I0e4a03a0d2170cb1c632e079112a972091994a39
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
6 years agoFix MISRA rule 8.5 in common code
Roberto Vargas [Mon, 12 Feb 2018 12:36:17 +0000 (12:36 +0000)]
Fix MISRA rule 8.5 in common code

Rule 8.5: An external object or function shall be declared
          once in one and only one file.

Change-Id: I7c3d4ec7d3ba763fdb4600008ba10b4b93ecdfce
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
6 years agoFix MISRA rule 8.4 Part 1
Roberto Vargas [Mon, 12 Feb 2018 12:36:17 +0000 (12:36 +0000)]
Fix MISRA rule 8.4 Part 1

Rule 8.4: A compatible declaration shall be visible when
          an object or function with external linkage is defined

Fixed for:
make DEBUG=1 PLAT=fvp LOG_LEVEL=50 all

Change-Id: I32b223251b8bf5924149d89431a65d3405a73d3e
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
6 years agoFix MISRA rule 8.3 Part 1
Roberto Vargas [Mon, 12 Feb 2018 12:36:17 +0000 (12:36 +0000)]
Fix MISRA rule 8.3 Part 1

Rule 8.3: All declarations of an object or function shall
          use the same names and type qualifiers.

Fixed for:

make DEBUG=1 PLAT=fvp LOG_LEVEL=50 all

Change-Id: I32d6fbce03bb4830ed5bf521afe7063505c6ed79
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
6 years agoMerge pull request #1352 from hzhuang1/hikey_ddr
Dimitris Papastamos [Fri, 13 Apr 2018 08:54:29 +0000 (09:54 +0100)]
Merge pull request #1352 from hzhuang1/hikey_ddr

Hikey ddr

6 years agoMerge pull request #1355 from jonathanwright-ARM/jw/REVIDR-errata-workaround
Dimitris Papastamos [Fri, 13 Apr 2018 08:53:56 +0000 (09:53 +0100)]
Merge pull request #1355 from jonathanwright-ARM/jw/REVIDR-errata-workaround

Check presence of hardware fix for 2 errata on Cortex A53

6 years agoCheck presence of fix for errata 835769 in Cortex-A53
Jonathan Wright [Wed, 28 Mar 2018 15:55:54 +0000 (16:55 +0100)]
Check presence of fix for errata 835769 in Cortex-A53

A fix for errata 835769 may be available in revisions r0p2, r0p3 or r0p4
of the Cortex-A53 processor. The presence of the fix is determined by
checking bit 7 in the REVIDR register.

If the fix is present we report ERRATA_NOT_APPLIES which silences the
erroneous 'missing workaround' warning.

Change-Id: Ib75b008e755e9ac648554ca9398024fdbea4a91a
Signed-off-by: Jonathan Wright <jonathan.wright@arm.com>
6 years agoCheck presence of fix for errata 843419 in Cortex-A53
Jonathan Wright [Wed, 28 Mar 2018 14:52:03 +0000 (15:52 +0100)]
Check presence of fix for errata 843419 in Cortex-A53

A fix for errata 843419 may be available in revision r0p4 of the
Cortex-A53 processor. The presence of the fix is determined by checking
bit 8 in the REVIDR register.

If the fix is present we report ERRATA_NOT_APPLIES which silences the
erroneous 'missing workaround' warning.

Change-Id: Ibd2a478df3e2a6325442a6a48a0bb0259dcfc1d7
Signed-off-by: Jonathan Wright <jonathan.wright@arm.com>
6 years agoMerge pull request #1347 from davidcunado-arm/dc/affinities
Dimitris Papastamos [Thu, 12 Apr 2018 09:47:14 +0000 (10:47 +0100)]
Merge pull request #1347 from davidcunado-arm/dc/affinities

FVP: Fix function for translating MPIDR to linear index

6 years agoMerge pull request #1353 from JiafeiPan/upstream-platform-psci-bug
Dimitris Papastamos [Thu, 12 Apr 2018 08:20:12 +0000 (09:20 +0100)]
Merge pull request #1353 from JiafeiPan/upstream-platform-psci-bug

layerscape: fix integer handling issues

6 years agolayerscape: fix integer handling issues
Jiafei Pan [Wed, 11 Apr 2018 12:12:24 +0000 (12:12 +0000)]
layerscape: fix integer handling issues

Assert before actually using.

Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
6 years agohikey: clean sram before mcu used
Haojian Zhuang [Wed, 11 Apr 2018 11:06:14 +0000 (19:06 +0800)]
hikey: clean sram before mcu used

Clean cache to flush parameters into SRAM before MCU using them.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agohikey: save ddr parameters into SRAM
Haojian Zhuang [Wed, 11 Apr 2018 11:05:59 +0000 (19:05 +0800)]
hikey: save ddr parameters into SRAM

Store those DDR parameters into SRAM. They may be used by MCU
firmware.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agohikey: update ddr initialization
Haojian Zhuang [Wed, 11 Apr 2018 11:05:32 +0000 (19:05 +0800)]
hikey: update ddr initialization

Fix that DDR can't work at 533MHz. Now step to set DDR frequency
from 150MHz to 800MHz. DDR could work among these frequency, 150MHz,
266MHz, 400MHz, 533MHz and 800MHz.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agoMerge pull request #1342 from Summer-ARM/sq/support-tzmp1
Dimitris Papastamos [Wed, 11 Apr 2018 08:39:21 +0000 (09:39 +0100)]
Merge pull request #1342 from Summer-ARM/sq/support-tzmp1

support tzmp1

6 years agoMerge pull request #1348 from amitdanielkachhap/dmc500_single_if_v2
Dimitris Papastamos [Tue, 10 Apr 2018 14:08:53 +0000 (15:08 +0100)]
Merge pull request #1348 from amitdanielkachhap/dmc500_single_if_v2

DMC500: Add platform support to set system interface count

6 years agoMerge pull request #1349 from amitdanielkachhap/juno_fix_bl2_sizes
Dimitris Papastamos [Tue, 10 Apr 2018 14:08:42 +0000 (15:08 +0100)]
Merge pull request #1349 from amitdanielkachhap/juno_fix_bl2_sizes

Juno: Increase bl2 max size to fix build when SPD=opteed

6 years agoMerge pull request #1341 from vwadekar/improve-mmap-efficiency
Dimitris Papastamos [Tue, 10 Apr 2018 12:17:16 +0000 (13:17 +0100)]
Merge pull request #1341 from vwadekar/improve-mmap-efficiency

lib: xlat_tables_v2: reduce time required to add a mmap region

6 years agoMerge pull request #1306 from JiafeiPan/master
Dimitris Papastamos [Tue, 10 Apr 2018 12:04:38 +0000 (13:04 +0100)]
Merge pull request #1306 from JiafeiPan/master

layerscape: Initial ATF support for LS1043ardb

6 years agoJuno: Add support for TrustZone Media Protection 1 (TZMP1)
Summer Qin [Fri, 2 Mar 2018 07:51:14 +0000 (15:51 +0800)]
Juno: Add support for TrustZone Media Protection 1 (TZMP1)

Add TZMP1 support on Juno and increase the BL2 size accordingly due to the
extra data structures to describe the TZC regions and the additional code.

Signed-off-by: Summer Qin <summer.qin@arm.com>
6 years agoplat/arm: Allow override of default TZC regions
Summer Qin [Mon, 12 Mar 2018 03:28:26 +0000 (11:28 +0800)]
plat/arm: Allow override of default TZC regions

This patch allows the ARM Platforms to specify the TZC regions to be
specified to the ARM TZC helpers in arm_tzc400.c and arm_tzc_dmc500.c.
If the regions are not specified then the default TZC region will be
configured by these helpers.

This override mechanism allows specifying special regions for TZMP1
usecase.

Signed-off-by: Summer Qin <summer.qin@arm.com>
6 years agoAdd NXP to contributor list
Jiafei Pan [Wed, 28 Mar 2018 01:34:33 +0000 (09:34 +0800)]
Add NXP to contributor list

Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
6 years agolayerscape: Initial TF-A support for LS1043ardb
Jiafei Pan [Fri, 2 Mar 2018 07:23:30 +0000 (07:23 +0000)]
layerscape: Initial TF-A support for LS1043ardb

This patch introduce TF-A support for NXP's ls1043a platform.
more details information of ls1043a chip and ls1043ardb board
can be found at docs/plat/ls1043a.rst.

Boot sequence on ls1043a is: bootrom loads bl1 firstly, then bl1
loads bl2, bl2 will load bl31, bl32 and bl33, bl31 will boot
bl32(tee os) and bl33(u-boot or uefi), bl33 boot Linux kernel.

Now TF-A on ls1043ardb platform has the following features in this patch:
* Support boot from Nor flash.
* TF-A can boot bl33 which runs in el2 of non-secure world.
* TF-A boot OPTee OS.
* Support PSCI

Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
Signed-off-by: Chenyin.Ha <Chenyin.Ha@nxp.com>
Signed-off-by: Chenhui Zhao <chenhui.zhao@nxp.com>
Signed-off-by: jiaheng.fan <jiaheng.fan@nxp.com>
Signed-off-by: Wen He <wen.he_1@nxp.com>
6 years agolib: xlat_tables_v2: reduce time required to add a mmap region
Varun Wadekar [Tue, 3 Apr 2018 17:44:41 +0000 (10:44 -0700)]
lib: xlat_tables_v2: reduce time required to add a mmap region

The last entry in the mapping table is not necessarily the same as the
end of the table. This patch loops through the table to find the last
entry marker, on every new mmap addition. The memove operation then
has to only move the memory between current entry and the last entry.
For platforms that arrange their MMIO map properly, this opearation
turns out to be a NOP.

The previous implementation added significant overhead per mmap
addition as the memmove operation always moved the difference between
the current mmap entry and the end of the table.

Tested on Tegra platforms and this new approach improves the memory
mapping time by ~75%, thus significantly reducing boot time on some
platforms.

Change-Id: Ie3478fa5942379282ef58bee2085da799137e2ca
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
6 years agoMerge pull request #1328 from JiafeiPan/upstream-bl2-rom
Dimitris Papastamos [Mon, 9 Apr 2018 12:36:42 +0000 (13:36 +0100)]
Merge pull request #1328 from JiafeiPan/upstream-bl2-rom

Add support for BL2 in XIP memory

6 years agoJuno: Increase bl2 max size to fix build when SPD=opteed
Amit Daniel Kachhap [Fri, 23 Mar 2018 06:26:23 +0000 (11:56 +0530)]
Juno: Increase bl2 max size to fix build when SPD=opteed

Building TBBR(SPD=opteed) and non-TBBR TF-A images is breaking for
Juno for different configurations listed below:

* Overflow error of 4096 bytes for rsa algorithm.
* Overflow error of 8192 bytes for ecdsa algorithm.
* Overflow error of 4096 bytes for rsa+ecdsa algorithm.
* Overflow error of 4096 bytes for non-TBBR case.

So this patch increments macro PLAT_ARM_MAX_BL2_SIZE for all the above
cases accordingly.

Change-Id: I75ec6c0a718181d34553fe55437f0496f467683f
Signed-off-by: Amit Daniel Kachhap <amit.kachhap@arm.com>
6 years agoDMC500: Add platform support to set system interface count
Amit Daniel Kachhap [Mon, 9 Apr 2018 11:23:01 +0000 (16:53 +0530)]
DMC500: Add platform support to set system interface count

Some low end platforms using DMC500 memory controller do not have
CCI(Cache Coherent Interconnect) interface and only have non-coherent
system interface support. Hence this patch makes the system interface
count configurable from the platforms.

Change-Id: I6d54c90eb72fd18026c6470c1f7fd26c59dc4b9a
Signed-off-by: Amit Daniel Kachhap <amit.kachhap@arm.com>
6 years agoMerge pull request #1339 from dp-arm/dp/smccc
Dimitris Papastamos [Mon, 9 Apr 2018 10:15:08 +0000 (11:15 +0100)]
Merge pull request #1339 from dp-arm/dp/smccc

Fixup SMCCC_FEATURES return value for SMCCC_ARCH_WORKAROUND_1

6 years agofix instruction address range limitation
Jiafei Pan [Tue, 27 Mar 2018 15:00:55 +0000 (23:00 +0800)]
fix instruction address range limitation

For the adr instruction, it require the label's offset from the
address of this instruction must be in the range +/-1MB. If the
option "BL2_IN_XIP_MEM" is set to '1', in some cases, BL2's RW
memory will not in the range of +/-1MB from BL2's RO memory region.
so we need to use ldr instruction to cover this case.

Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
6 years agoAdd support for BL2 in XIP memory
Jiafei Pan [Wed, 21 Mar 2018 07:20:09 +0000 (07:20 +0000)]
Add support for BL2 in XIP memory

In some use-cases BL2 will be stored in eXecute In Place (XIP) memory,
like BL1. In these use-cases, it is necessary to initialize the RW sections
in RAM, while leaving the RO sections in place. This patch enable this
use-case with a new build option, BL2_IN_XIP_MEM. For now, this option
is only supported when BL2_AT_EL3 is 1.

Signed-off-by: Jiafei Pan <Jiafei.Pan@nxp.com>
6 years agoFVP: Fix function for translating MPIDR to linear index
David Cunado [Thu, 5 Apr 2018 16:40:13 +0000 (17:40 +0100)]
FVP: Fix function for translating MPIDR to linear index

The current AArch32 version of plat_arm_calc_core_pos uses an incorrect
algorithm to calculate the linear position of a core / PE from its
MPIDR.

This patch corrects the algorithm to:

(ClusterId * FVP_MAX_CPUS_PER_CLUSTER) * FVP_MAX_PE_PER_CPU
+ (CPUId * FVP_MAX_PE_PER_CPU)
+ ThreadId

which supports cores where there are more than 1 PE per CPU.

NOTE: the AArch64 version was fixed in 39b21d1

Change-Id: I72aea89d8f72f8b1fef54e2177a0fa6fef0f5513
Signed-off-by: David Cunado <david.cunado@arm.com>
6 years agoMerge pull request #1338 from antonio-nino-diaz-arm/an/spm-flag-check
Dimitris Papastamos [Wed, 4 Apr 2018 08:58:24 +0000 (09:58 +0100)]
Merge pull request #1338 from antonio-nino-diaz-arm/an/spm-flag-check

SPM: Assert value of `ENABLE_SPM` build flag

6 years agoFixup SMCCC_FEATURES return value for SMCCC_ARCH_WORKAROUND_1
Dimitris Papastamos [Wed, 28 Mar 2018 11:06:40 +0000 (12:06 +0100)]
Fixup SMCCC_FEATURES return value for SMCCC_ARCH_WORKAROUND_1

Only return -1 if the workaround for CVE-2017-5715 is not compiled in.

Change-Id: I1bd07c57d22b4a13cf51b35be141a1f1ffb065ff
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
6 years agoMerge pull request #1334 from michpappas/tf-issues#572_qemu_dont_use_C_for_crash_console
Dimitris Papastamos [Tue, 3 Apr 2018 10:59:55 +0000 (11:59 +0100)]
Merge pull request #1334 from michpappas/tf-issues#572_qemu_dont_use_C_for_crash_console

qemu: don't use C functions for the crash console callbacks

6 years agoSPM: Assert value of `ENABLE_SPM` build flag
Antonio Nino Diaz [Mon, 26 Mar 2018 14:57:17 +0000 (15:57 +0100)]
SPM: Assert value of `ENABLE_SPM` build flag

The Makefile was missing a check to verify that the value of
`ENABLE_SPM` is boolean.

Change-Id: I97222e4df9ae2fbd89cdb3263956dca52d360993
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoqemu: don't use C functions for the crash console callbacks
Michalis Pappas [Tue, 27 Mar 2018 04:32:31 +0000 (12:32 +0800)]
qemu: don't use C functions for the crash console callbacks

Use the console_pl011_core_* functions directly in the crash console
callbacks.

This bypasses the MULTI_CONSOLE_API for the crash console (UART1), but
allows using the crash console before the C runtime has been initialized
(eg to call ASM_ASSERT). This retains backwards compatibility with respect
to functionality when the old API is used.

Use the MULTI_CONSOLE_API to register UART0 as the boot and runtime
console.

Fixes ARM-software/tf-issues#572

Signed-off-by: Michalis Pappas <mpappas@fastmail.fm>
6 years agoMerge pull request #1327 from npoushin/npoushin/sgi575
Dimitris Papastamos [Thu, 29 Mar 2018 13:20:42 +0000 (14:20 +0100)]
Merge pull request #1327 from npoushin/npoushin/sgi575

ARM platforms: Add support for SGI575

6 years agoMerge pull request #1313 from jonathanwright-ARM/jw/MISRA-switch-statements
Dimitris Papastamos [Thu, 29 Mar 2018 12:20:05 +0000 (13:20 +0100)]
Merge pull request #1313 from jonathanwright-ARM/jw/MISRA-switch-statements

Fix switch statements to comply with MISRA rules

6 years agoMerge pull request #1333 from jeenu-arm/icfg-fix
Dimitris Papastamos [Thu, 29 Mar 2018 12:19:04 +0000 (13:19 +0100)]
Merge pull request #1333 from jeenu-arm/icfg-fix

GIC: Fix interrupt setting interrupt configuration

6 years agoMerge pull request #1325 from michpappas/tf-issues#568_qemu_add_ENABLE_STACK_PROTECTOR
Dimitris Papastamos [Thu, 29 Mar 2018 10:27:36 +0000 (11:27 +0100)]
Merge pull request #1325 from michpappas/tf-issues#568_qemu_add_ENABLE_STACK_PROTECTOR

qemu: Add support for stack canary protection

6 years agoMerge pull request #1331 from hzhuang1/reboot_delay
Dimitris Papastamos [Thu, 29 Mar 2018 10:26:10 +0000 (11:26 +0100)]
Merge pull request #1331 from hzhuang1/reboot_delay

hikey960: add delay before reset

6 years agoMerge pull request #1329 from antonio-nino-diaz-arm/an/rpi3-multi-console
Dimitris Papastamos [Thu, 29 Mar 2018 09:04:06 +0000 (10:04 +0100)]
Merge pull request #1329 from antonio-nino-diaz-arm/an/rpi3-multi-console

rpi3: Migrate to the multi console API

6 years agoMerge pull request #1335 from JoelHutton/jh/cleanup_void_pointers
Dimitris Papastamos [Thu, 29 Mar 2018 08:59:52 +0000 (09:59 +0100)]
Merge pull request #1335 from JoelHutton/jh/cleanup_void_pointers

Clean usage of void pointers to access symbols

6 years agoMerge pull request #1336 from jonathanwright-ARM/jw/MISRA-init-arrays
Dimitris Papastamos [Thu, 29 Mar 2018 08:59:35 +0000 (09:59 +0100)]
Merge pull request #1336 from jonathanwright-ARM/jw/MISRA-init-arrays

psci: initialize array fully to comply with MISRA

6 years agoARM platforms: Add support for SGI575
Nariman Poushin [Mon, 26 Feb 2018 06:52:04 +0000 (06:52 +0000)]
ARM platforms: Add support for SGI575

Add support for System Guidance for Infrastructure platform SGI575.

Change-Id: I0125c2ed4469fbc8367dafcc8adce770b6b3147d
Signed-off-by: Nariman Poushin <nariman.poushin@linaro.org>
6 years agohikey960: add delay before reset
Haojian Zhuang [Mon, 26 Mar 2018 05:18:13 +0000 (13:18 +0800)]
hikey960: add delay before reset

If system is still accessing storage device, reboot operation
may cause data broken. So add the flush and delay operation
before system reset.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agopsci: initialize array fully to comply with MISRA
Jonathan Wright [Tue, 20 Mar 2018 14:34:01 +0000 (14:34 +0000)]
psci: initialize array fully to comply with MISRA

Initializes each element of the last_cpu_in_non_cpu_pd array in PSCI
stat implementation to -1, the reset value. This satisfies MISRA rule
9.3.

Previously, only the first element of the array was initialized to -1.

Change-Id: I666c71e6c073710c67c6d24c07a219b1feb5b773
Signed-off-by: Jonathan Wright <jonathan.wright@arm.com>
6 years agoClean usage of void pointers to access symbols
Joel Hutton [Wed, 21 Mar 2018 11:40:57 +0000 (11:40 +0000)]
Clean usage of void pointers to access symbols

Void pointers have been used to access linker symbols, by declaring an
extern pointer, then taking the address of it. This limits symbols
values to aligned pointer values. To remove this restriction an
IMPORT_SYM macro has been introduced, which declares it as a char
pointer and casts it to the required type.

Change-Id: I89877fc3b13ed311817bb8ba79d4872b89bfd3b0
Signed-off-by: Joel Hutton <Joel.Hutton@Arm.com>
6 years agorpi3: Use new console APIs
Antonio Nino Diaz [Tue, 27 Mar 2018 08:39:47 +0000 (09:39 +0100)]
rpi3: Use new console APIs

Switch to the new console APIs enabled by setting MULTI_CONSOLE_API=1.

The crash console doesn't use this API, it uses internally the core
functions of the 16550 console.

`bl31_plat_runtime_setup` is no longer needed. When this platform port
was introduced, that function used to disable the console. It was needed
to override that behaviour. The new behaviour is to switch to the
runtime console. The console is registered for all scopes (boot, crash
and runtime) in `rpi3_console_init` so it is not needed to override the
default behaviour anymore.

Update documentation.

Change-Id: If2ee8f91044216183b7ef142e5c05ad6220ae92f
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoservices: fix switch statements to comply with MISRA rules
Jonathan Wright [Wed, 14 Mar 2018 15:56:21 +0000 (15:56 +0000)]
services: fix switch statements to comply with MISRA rules

Ensure (where possible) that switch statements in services comply with
MISRA rules 16.1 - 16.7.

Change-Id: I47bf6ed4a026201e6fe125ce51842482e99e8bb0
Signed-off-by: Jonathan Wright <jonathan.wright@arm.com>
6 years agoplat: fix switch statements to comply with MISRA rules
Jonathan Wright [Wed, 14 Mar 2018 15:24:00 +0000 (15:24 +0000)]
plat: fix switch statements to comply with MISRA rules

Ensure (where possible) that switch statements in plat comply with MISRA
rules 16.1 - 16.7.

Change-Id: Ie4a7d2fd10f6141c0cfb89317ea28a755391622f
Signed-off-by: Jonathan Wright <jonathan.wright@arm.com>
6 years agolib: fix switch statements to comply with MISRA rules
Jonathan Wright [Tue, 13 Mar 2018 17:45:42 +0000 (17:45 +0000)]
lib: fix switch statements to comply with MISRA rules

Ensure (where possible) that switch statements in lib comply with MISRA
rules 16.1 - 16.7.

Change-Id: I52bc896fb7094d2b7569285686ee89f39f1ddd84
Signed-off-by: Jonathan Wright <jonathan.wright@arm.com>
6 years agodrivers: fix switch statements to comply with MISRA rules
Jonathan Wright [Tue, 13 Mar 2018 15:24:29 +0000 (15:24 +0000)]
drivers: fix switch statements to comply with MISRA rules

Ensure (where possible) that switch statements in drivers comply with
MISRA rules 16.1 - 16.7.

Change-Id: I7a91e04b02af80fbc4673a52293386c0f81a0f7a
Signed-off-by: Jonathan Wright <jonathan.wright@arm.com>
6 years agobl1: fix switch statements to comply with MISRA rules
Jonathan Wright [Tue, 13 Mar 2018 13:54:03 +0000 (13:54 +0000)]
bl1: fix switch statements to comply with MISRA rules

Ensure (where possible) that switch statements in bl1 comply with MISRA
rules 16.1 - 16.7

Return statements inside switch clauses mean that we do not comply with
rule 16.3.

Change-Id: I8342389ba525dfc68b88e67dbb3690a529abfeb1
Signed-off-by: Jonathan Wright <jonathan.wright@arm.com>
6 years agoplat/common: remove fall-through on release build
Jonathan Wright [Wed, 14 Mar 2018 17:55:32 +0000 (17:55 +0000)]
plat/common: remove fall-through on release build

Removes fall-through in switch statement on unknown interrupt type in
release builds.

Previous behaviour was to assert(0) on default case in debug builds but
fall through and interpret the unknown interrupt type as
INTR_TYPE_EL3 in release builds.

Change-Id: I05fb0299608efda0f9eda2288d3e56e5625e05c9
Signed-off-by: Jonathan Wright <jonathan.wright@arm.com>
6 years agoMerge pull request #1323 from rockchip-linux/Fixes-rk3399-watchdog
Dimitris Papastamos [Mon, 26 Mar 2018 09:53:24 +0000 (10:53 +0100)]
Merge pull request #1323 from rockchip-linux/Fixes-rk3399-watchdog

rockchip/rk3399: save/restore watchdog register correctly

6 years agoGIC: Fix setting interrupt configuration
Jeenu Viswambharan [Thu, 22 Mar 2018 08:57:52 +0000 (08:57 +0000)]
GIC: Fix setting interrupt configuration

  - Interrupt configuration is a 2-bit field, so the field shift has to
    be double that of the bit number.

  - Interrupt configuration (level- or edge-trigger) is specified in the
    MSB of the field, not LSB.

Fixes applied to both GICv2 and GICv3 drivers.

Fixes ARM-software/tf-issues#570

Change-Id: Ia6ae6ed9ba9fb0e3eb0f921a833af48e365ba359
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
6 years agoMerge pull request #1330 from michpappas/tf-issues#571_qemu_fix_MULTI_CONSOLE=0
davidcunado-arm [Sun, 25 Mar 2018 03:20:40 +0000 (04:20 +0100)]
Merge pull request #1330 from michpappas/tf-issues#571_qemu_fix_MULTI_CONSOLE=0

qemu: MULTI_CONSOLE_API=0 causes build error

6 years agoqemu: MULTI_CONSOLE_API=0 causes build error
Michalis Pappas [Sat, 24 Mar 2018 04:38:31 +0000 (12:38 +0800)]
qemu: MULTI_CONSOLE_API=0 causes build error

Add crash_console_init declaration to console.h
Only enable MULTI_CONSOLE_API for AArch64

Fixes ARM-software/tf-issues#571

Signed-off-by: Michalis Pappas <mpappas@fastmail.fm>
6 years agoMerge pull request #1280 from gitfineon/master
davidcunado-arm [Fri, 23 Mar 2018 03:43:29 +0000 (03:43 +0000)]
Merge pull request #1280 from gitfineon/master

plat/hikey: split boot memory layout to dedicated file

6 years agodrivers: ti: 16550: Implement console flush
Antonio Nino Diaz [Thu, 22 Mar 2018 20:13:44 +0000 (20:13 +0000)]
drivers: ti: 16550: Implement console flush

Replace placeholder by actual implementation.

Change-Id: I0861b1ac5304b0d2d7c32d7d9a48bd985e258e92
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoMerge pull request #1324 from michpappas/tf-issues#567Platforms_cannot_override_ENABL...
Dimitris Papastamos [Thu, 22 Mar 2018 14:47:15 +0000 (14:47 +0000)]
Merge pull request #1324 from michpappas/tf-issues#567Platforms_cannot_override_ENABLE_STACK_PROTECTOR

Platforms cannot override ENABLE_STACK_PROTECTOR

6 years agoMerge pull request #1321 from sandrine-bailleux-arm/topics/sb/fix-trusty-setup
davidcunado-arm [Thu, 22 Mar 2018 09:22:13 +0000 (09:22 +0000)]
Merge pull request #1321 from sandrine-bailleux-arm/topics/sb/fix-trusty-setup

Trusty: Fix sanity check on NS entry point

6 years agoMerge pull request #1299 from michpappas/tf-issues#561_qemu_support_MULTI_CONSOLE
davidcunado-arm [Thu, 22 Mar 2018 07:57:55 +0000 (07:57 +0000)]
Merge pull request #1299 from michpappas/tf-issues#561_qemu_support_MULTI_CONSOLE

qemu: Support MULTI_CONSOLE_API

6 years agoMerge pull request #1307 from wangfeng-64/master
davidcunado-arm [Thu, 22 Mar 2018 07:57:19 +0000 (07:57 +0000)]
Merge pull request #1307 from wangfeng-64/master

FVP: change the method for translating MPIDR values to a linear indices

6 years agoMerge pull request #1311 from jonathanwright-ARM/jw/MISRA-EOF-usage
davidcunado-arm [Thu, 22 Mar 2018 06:17:37 +0000 (06:17 +0000)]
Merge pull request #1311 from jonathanwright-ARM/jw/MISRA-EOF-usage

stdlib: remove comparison with EOF macro to comply with MISRA

6 years ago[PATCH 2/2] qemu: Support MULTI_CONSOLE_API
Michalis Pappas [Sun, 4 Mar 2018 07:43:38 +0000 (15:43 +0800)]
[PATCH 2/2] qemu: Support MULTI_CONSOLE_API

Add support for the new MULTI_CONSOLE_API

Crash information is now displayed in both the runtime and crash consoles,
if a crash occurs after the runtime console has been enabled

Enable MULTI_CONSOLE_API by default on qemu builds

Fixes ARM-software/tf-issues#561

Signed-off-by: Michalis Pappas <mpappas@fastmail.fm>
6 years agoMerge pull request #1293 from swarren/issue-551-followup
davidcunado-arm [Wed, 21 Mar 2018 20:11:19 +0000 (20:11 +0000)]
Merge pull request #1293 from swarren/issue-551-followup

Don't make build results depend on dependency files

6 years agoMerge pull request #1294 from iwishguo/master
davidcunado-arm [Wed, 21 Mar 2018 19:20:43 +0000 (19:20 +0000)]
Merge pull request #1294 from iwishguo/master

Change PLATFORM_ROOT to TF_PLATFORM_ROOT

6 years agoMerge pull request #1314 from antonio-nino-diaz-arm/an/smccc-header
davidcunado-arm [Wed, 21 Mar 2018 19:18:29 +0000 (19:18 +0000)]
Merge pull request #1314 from antonio-nino-diaz-arm/an/smccc-header

Rename 'smcc' to 'smccc'

6 years agoMerge pull request #1304 from antonio-nino-diaz-arm/an/fix-copyright
davidcunado-arm [Wed, 21 Mar 2018 19:15:40 +0000 (19:15 +0000)]
Merge pull request #1304 from antonio-nino-diaz-arm/an/fix-copyright

tegra: Use SPDX license identifier

6 years agoRename 'smcc' to 'smccc'
Antonio Nino Diaz [Wed, 21 Mar 2018 10:49:27 +0000 (10:49 +0000)]
Rename 'smcc' to 'smccc'

When the source code says 'SMCC' it is talking about the SMC Calling
Convention. The correct acronym is SMCCC. This affects a few definitions
and file names.

Some files have been renamed (smcc.h, smcc_helpers.h and smcc_macros.S)
but the old files have been kept for compatibility, they include the
new ones with an ERROR_DEPRECATED guard.

Change-Id: I78f94052a502436fdd97ca32c0fe86bd58173f2f
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoTrusty: Fix sanity check on NS entry point
Sandrine Bailleux [Mon, 19 Mar 2018 09:41:06 +0000 (10:41 +0100)]
Trusty: Fix sanity check on NS entry point

This patch fixes the sanity check on the non-secure entrypoint value
returned by bl31_plat_get_next_image_ep_info(). This issue has been
reported by Coverity Scan Online:

  CID 264893 (#1 of 1): Dereference null return value (NULL_RETURNS)
  Dereferencing a null pointer ns_ep_info.

Change-Id: Ia0f64d8c8b005f042608f1422ecbd42bc90b2fb4
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
6 years agoFix SDEI link in readme.rst
danh-arm [Tue, 20 Mar 2018 17:01:39 +0000 (17:01 +0000)]
Fix SDEI link in readme.rst

6 years agoMerge pull request #1316 from davidcunado-arm/dc/version_update
danh-arm [Tue, 20 Mar 2018 16:50:44 +0000 (16:50 +0000)]
Merge pull request #1316 from davidcunado-arm/dc/version_update

Release v1.5: Update minor version number to 5

6 years agoMerge pull request #1322 from danh-arm/dh/v1.5-readme
danh-arm [Tue, 20 Mar 2018 16:50:29 +0000 (16:50 +0000)]
Merge pull request #1322 from danh-arm/dh/v1.5-readme

Update readme.rst for v1.5 release

6 years agoMerge pull request #1326 from JoelHutton/jh/user_guide_updates
danh-arm [Tue, 20 Mar 2018 15:19:48 +0000 (15:19 +0000)]
Merge pull request #1326 from JoelHutton/jh/user_guide_updates

Update user guide

6 years agoUpdate user guide
Joel Hutton [Mon, 19 Mar 2018 11:59:57 +0000 (11:59 +0000)]
Update user guide

Following Out of Box testing for v1.5 release:

    Update host OS version to Ubuntu 16.04
    Clarify configuration files needed for checkpatch
    Add note on using Linaro precompiled binaries

Change-Id: Ia4ae61e01128ddff1a288972ddf84b79370fa52c
Signed-off-by: Joel Hutton <Joel.Hutton@Arm.com>
6 years agoqemu: Add support for stack canary protection
Michalis Pappas [Tue, 20 Mar 2018 06:30:00 +0000 (14:30 +0800)]
qemu: Add support for stack canary protection

Allow qemu users to enable stack protection. Since the virt platform
does not provide an RNG, use a basic, timer-based, canary generation,
similarly to FVP.

Increase SRAM size and BL2 size to fit images when stack protection is
enabled.

Notice that stack protection is not enabled by default in qemu.

Fixes ARM-software/tf-issues#568

Signed-off-by: Michalis Pappas <mpappas@fastmail.fm>
6 years agoPlatforms cannot override ENABLE_STACK_PROTECTOR
Michalis Pappas [Tue, 20 Mar 2018 05:01:27 +0000 (13:01 +0800)]
Platforms cannot override ENABLE_STACK_PROTECTOR

Include stack_protector's makefile after including platform.mk
to allow platforms override ENABLE_STACK_PROTECTOR

Fixes ARM-software/tf-issues#567

Signed-off-by: Michalis Pappas <mpappas@fastmail.fm>
6 years agorockchip/rk3399: save/restore watchdog register correctly
Lin Huang [Tue, 20 Mar 2018 01:37:21 +0000 (09:37 +0800)]
rockchip/rk3399: save/restore watchdog register correctly

there are two fix for save/restore watchdog register:
1. watchdog plck will shutdown after secure_watchdog_disable(), so need
   to save register before it and restore after secure_watchdog_enable().
2. need write 0x76 to cnt_restart to keep watchdog alive when restore
   watchdog register.

Change-Id: I1f6fbceae22186e3b72a87df6332a110adf37479
Signed-off-by: Lin Huang <hl@rock-chips.com>
6 years agoUpdate readme.rst for v1.5 release
Dan Handley [Wed, 14 Mar 2018 13:01:39 +0000 (13:01 +0000)]
Update readme.rst for v1.5 release

Change-Id: Id9bd0c20a5af4f41269a51a675018dcc59e93f6c
Signed-off-by: Dan Handley <dan.handley@arm.com>
6 years agoFVP: change the method for translating MPIDR values to a linear indices
Wang Feng [Thu, 15 Mar 2018 07:32:41 +0000 (15:32 +0800)]
FVP: change the method for translating MPIDR values to a linear indices

x3 will be assigned by the folloing instructions.
So the first instruction is not needed any more.

old method:
  (ClusterId * FVP_MAX_CPUS_PER_CLUSTER)
+ (CPUId * FVP_MAX_PE_PER_CPU)
+ ThreadId

it should be
  (ClusterId * FVP_MAX_CPUS_PER_CLUSTER) * FVP_MAX_PE_PER_CPU
+ (CPUId * FVP_MAX_PE_PER_CPU)
+ ThreadId

which can be simplified as:
(ClusterId * FVP_MAX_CPUS_PER_CLUSTER + CPUId) * FVP_MAX_PE_PER_CPU + ThreadId

Signed-off-by: Wang Feng <feng_feng.wang@spreadtrum.com>
6 years agoRelease v1.5: Update minor version number to 5
David Cunado [Mon, 12 Mar 2018 09:56:56 +0000 (09:56 +0000)]
Release v1.5: Update minor version number to 5

Change-Id: Ib215150272acc2ecec43f9b69624ebbbd5d7492d
Signed-off-by: David Cunado <david.cunado@arm.com>
6 years agoMerge pull request #1312 from davidcunado-arm/dc/update_docs
davidcunado-arm [Thu, 15 Mar 2018 20:41:16 +0000 (20:41 +0000)]
Merge pull request #1312 from davidcunado-arm/dc/update_docs

Docs: Update various for v1.5 release

6 years agozynqmp: pm: Minor corrections for MISRA compliance
Jolly Shah [Thu, 8 Feb 2018 00:25:41 +0000 (16:25 -0800)]
zynqmp: pm: Minor corrections for MISRA compliance

Various changes to comply with MISRA static analysis rules

Signed-off-by: Jolly Shah <jollys@xilinx.com>
6 years agozynqmp: pm_service: Support multiple SDIO modes
Rajan Vaja [Thu, 22 Feb 2018 09:06:52 +0000 (01:06 -0800)]
zynqmp: pm_service: Support multiple SDIO modes

Existing database allows to set only single mode for SDIO.
SDIO can have different groups (8 bit, 4 bit and 1 bit).
As there is only single SDIO group in each pin, it is not
 possible to use different mode groups for SDIO.

Extend database in generic way to allow multiuple function
groups in single pin. Add different SDIO groups to pins and
create separate functions for each modes.

Signed-off-by: Rajan Vaja <rajanv@xilinx.com>