project/bcm63xx/atf.git
7 years agoJuno: Disable 859971 and 859972 errata workarounds
Eleanor Bonnici [Fri, 4 Aug 2017 14:03:51 +0000 (15:03 +0100)]
Juno: Disable 859971 and 859972 errata workarounds

Earlier patches added errata workarounds 859972 for Cortex-A72, and
859972 for Cortex-A57 CPUs. Explicitly disable the workaround for Juno.

Also reorganize errata workaround flags.

No functional changes.

Change-Id: I3fe3745de57d77e5bf52012826d3969fe5d4844e
Signed-off-by: Eleanor Bonnici <Eleanor.bonnici@arm.com>
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
7 years agoCortex-A72: Implement workaround for erratum 859971
Eleanor Bonnici [Wed, 2 Aug 2017 17:33:41 +0000 (18:33 +0100)]
Cortex-A72: Implement workaround for erratum 859971

Erratum 855971 applies to revision r0p3 or earlier Cortex-A72 CPUs. The
recommended workaround is to disable instruction prefetch.

Change-Id: I7fde74ee2a8a23b2a8a1891b260f0eb909fad4bf
Signed-off-by: Eleanor Bonnici <Eleanor.bonnici@arm.com>
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
7 years agoCortex-A57: Implement workaround for erratum 859972
Eleanor Bonnici [Wed, 2 Aug 2017 15:35:04 +0000 (16:35 +0100)]
Cortex-A57: Implement workaround for erratum 859972

Erratum 855972 applies to revision r1p3 or earlier Cortex-A57 CPUs. The
recommended workaround is to disable instruction prefetch.

Change-Id: I56eeac0b753eb1432bd940083372ad6f7e93b16a
Signed-off-by: Eleanor Bonnici <Eleanor.bonnici@arm.com>
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
7 years agoMerge pull request #1080 from soby-mathew/eb/RSA-PKCS1-5_support_1
davidcunado-arm [Thu, 7 Sep 2017 00:14:24 +0000 (01:14 +0100)]
Merge pull request #1080 from soby-mathew/eb/RSA-PKCS1-5_support_1

Support legacy RSA PKCS#1 v1.5 in cert create

7 years agoMerge pull request #1078 from douglas-raillard-arm/dr/add_cfi_vector_entry
davidcunado-arm [Wed, 6 Sep 2017 23:45:59 +0000 (00:45 +0100)]
Merge pull request #1078 from douglas-raillard-arm/dr/add_cfi_vector_entry

Add CFI debug info to vector entries

7 years agoMerge pull request #1019 from etienne-lms/log-size
davidcunado-arm [Wed, 6 Sep 2017 23:40:59 +0000 (00:40 +0100)]
Merge pull request #1019 from etienne-lms/log-size

CPU_DATA_LOG2SIZE depends on cache line size

7 years agoMerge pull request #1076 from masahir0y/asm_macro
davidcunado-arm [Wed, 6 Sep 2017 08:16:17 +0000 (09:16 +0100)]
Merge pull request #1076 from masahir0y/asm_macro

asm_macros: set the default assembly code alignment to 4 byte

7 years agoMerge pull request #1083 from soby-mathew/sm/fix_optee_map
davidcunado-arm [Tue, 5 Sep 2017 20:32:50 +0000 (21:32 +0100)]
Merge pull request #1083 from soby-mathew/sm/fix_optee_map

Fix BL2 memory map when OP-TEE is the Secure Payload

7 years agoFix BL2 memory map when OP-TEE is the Secure Payload
Soby Mathew [Fri, 1 Sep 2017 12:43:50 +0000 (13:43 +0100)]
Fix BL2 memory map when OP-TEE is the Secure Payload

The commit 3eb2d67 optimizes the memory map for BL2 when TSP
is not present. But this also broke OP-TEE as it was reusing
the TSP mapping. This patch fixes this problem by adding a
separate mapping for OP-TEE in the BL2 memory map table.

Change-Id: I130a2ea552b7b62d8478081feb1f4ddf5292a118
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
7 years agoMerge pull request #1081 from masahir0y/uniphier
davidcunado-arm [Mon, 4 Sep 2017 08:35:13 +0000 (09:35 +0100)]
Merge pull request #1081 from masahir0y/uniphier

uniphier: fix-up for PXs3 SoC

7 years agocpu log buffer size depends on cache line size
Etienne Carriere [Fri, 1 Sep 2017 08:22:20 +0000 (10:22 +0200)]
cpu log buffer size depends on cache line size

Platform may use specific cache line sizes. Since CACHE_WRITEBACK_GRANULE
defines the platform specific cache line size, it is used to define the
size of the cpu data structure CPU_DATA_SIZE aligned on cache line size.

Introduce assembly macro 'mov_imm' for AArch32 to simplify implementation
of function '_cpu_data_by_index'.

Change-Id: Ic2d49ffe0c3e51649425fd9c8c99559c582ac5a1
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
7 years agouniphier: work around Boot ROM bug for USB boot mode of PXs3 SoC
Masahiro Yamada [Thu, 31 Aug 2017 07:30:47 +0000 (16:30 +0900)]
uniphier: work around Boot ROM bug for USB boot mode of PXs3 SoC

Due to a bug in the Boot ROM, the USB load API turned out not working
as expected.  It is unfixable because the Boot ROM is hard-wired.

Add work around code in TF to bypass the problematic Boot ROM code.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
7 years agouniphier: fix code indent for conditional statement
Masahiro Yamada [Thu, 31 Aug 2017 10:58:11 +0000 (19:58 +0900)]
uniphier: fix code indent for conditional statement

checkpatch.pl from Linux reports tons of coding style errors and
warnings.  I am just fixing under plat/socionext/uniphier/.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
7 years agoMerge pull request #1072 from sandrine-bailleux-arm/sb/tsp-mapping
danh-arm [Thu, 31 Aug 2017 17:55:21 +0000 (18:55 +0100)]
Merge pull request #1072 from sandrine-bailleux-arm/sb/tsp-mapping

ARM platforms: Map TSP only when TSPD is included

7 years agocert_tool: Support for legacy RSA PKCS#1 v1.5
Soby Mathew [Thu, 31 Aug 2017 10:50:29 +0000 (11:50 +0100)]
cert_tool: Support for legacy RSA PKCS#1 v1.5

This patch enables choice of RSA version at run time to be used for
generating signatures by the cert_tool. The RSA PSS as defined in
PKCS#1 v2.1 becomes the default version and this patch enables to specify
the RSA PKCS#1 v1.5 algorithm to `cert_create` through the command line
-a option. Also, the build option `KEY_ALG` can be used to pass this
option from the build system. Please note that RSA PSS is mandated
by Trusted Board Boot requirements (TBBR) and legacy RSA support is
being added for compatibility reasons.

Fixes ARM-Software/tf-issues#499
Change-Id: Ifaa3f2f7c9b43f3d7b3effe2cde76bf6745a5d73
Co-Authored-By: Eleanor Bonnici <Eleanor.bonnici@arm.com>
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
7 years agoExport KEY_ALG as a user build option
Soby Mathew [Thu, 31 Aug 2017 10:49:32 +0000 (11:49 +0100)]
Export KEY_ALG as a user build option

The `KEY_ALG` variable is used to select the algorithm for key
generation by `cert_create` tool for signing the certificates. This
variable was previously undocumented and did not have a global default
value. This patch corrects this and also adds changes to derive the
value of `TF_MBEDTLS_KEY_ALG` based on `KEY_ALG` if it not set by the
platform. The corresponding assignment of these variables are also now
removed from the `arm_common.mk` makefile.

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

7 years agoARM platforms: Map TSP only when TSPD is included
Sandrine Bailleux [Wed, 30 Aug 2017 09:59:22 +0000 (10:59 +0100)]
ARM platforms: Map TSP only when TSPD is included

This patch ensures that the ARM_MAP_TSP_SEC_MEM memory region is mapped
in BL2 only if the TSPD has been included in the build. This saves one
entry in the plat_arm_mmap[] array and avoids to map extra memory when
it's not needed.

Change-Id: I6ae60822ff8f0de198145925b0b0d45355179a94
Signed-off-by: Achin Gupta <achin.gupta@arm.com>
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
7 years agoMerge pull request #1079 from douglas-raillard-arm/dr/doc_fix_typo
danh-arm [Thu, 31 Aug 2017 13:21:21 +0000 (14:21 +0100)]
Merge pull request #1079 from douglas-raillard-arm/dr/doc_fix_typo

porting-guide.rst: Fix some sections' level

7 years agoMerge pull request #1077 from soby-mathew/sm/fix_juno_assert_lvl
danh-arm [Thu, 31 Aug 2017 13:20:31 +0000 (14:20 +0100)]
Merge pull request #1077 from soby-mathew/sm/fix_juno_assert_lvl

Juno: Define PLAT_LOG_LEVEL_ASSERT to LOG_LEVEL_INFO

7 years agoporting-guide.rst: Fix some sections' level
Douglas Raillard [Wed, 2 Aug 2017 13:44:42 +0000 (14:44 +0100)]
porting-guide.rst: Fix some sections' level

Fix the level of the section
"13.   Function : plat_setup_psci_ops() [mandatory]",
including all the subsections.

Fix the level of the section
"12.7.   plat_psci_ops.pwr_domain_suspend_pwrdown_early() [optional]"
to lower it like the surrounding functions.

Change-Id: I781823bc96ece669f8fde4bd39c4e333c7bf4d1a
Signed-off-by: Douglas Raillard <douglas.raillard@arm.com>
7 years agoAdd CFI debug info to vector entries
Douglas Raillard [Mon, 7 Aug 2017 15:20:46 +0000 (16:20 +0100)]
Add CFI debug info to vector entries

Add Call Frame Information assembler directives to vector entries so
that debuggers display the backtrace of functions that triggered a
synchronous exception. For example, a function triggering a data abort
will be easier to debug if the backtrace can be displayed from a
breakpoint at the beginning of the synchronous exception vector.

DS-5 needs CFI otherwise it will not attempt to display the backtrace.
Other debuggers might have other needs. These debug information are
stored in the ELF file but not in the final binary.

Change-Id: I32dc4e4b7af02546c93c1a45c71a1f6d710d36b1
Signed-off-by: Douglas Raillard <douglas.raillard@arm.com>
7 years agoJuno: Define PLAT_LOG_LEVEL_ASSERT to LOG_LEVEL_INFO
Soby Mathew [Tue, 22 Aug 2017 13:06:19 +0000 (14:06 +0100)]
Juno: Define PLAT_LOG_LEVEL_ASSERT to LOG_LEVEL_INFO

This patch fixes the PLAT_LOG_LEVEL_ASSERT to 40 which corresponds
to LOG_LEVEL_INFO. Having this level of log for assertions means that the
`assert()` will not generate the strings implied in the expression taken
as parameter. This allows to save some memory when Juno is built for
LOG_LEVEL = LOG_LEVEL_VERBOSE and DEBUG = 1.

Fixes ARM-software/tf-issues#511

Change-Id: Id84a40f803ab07a5a8f6e587167af96694a07d04
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
7 years agoasm_macros: set the default assembly code alignment to 4 byte
Masahiro Yamada [Thu, 31 Aug 2017 05:29:34 +0000 (14:29 +0900)]
asm_macros: set the default assembly code alignment to 4 byte

Assembly routines are usually defined by using "func" and "endfunc":

    func foo
      ...
    endfunc foo

Currently, the "func" macro does not specify ".align" directive
by default.  It causes unaligned instruction under some circumstances.

As far as I tested, this problem happens for GCC 5 or older.  It did
not happen for GCC 6 or newer.  Taking into account that GCC 4.x / 5.x
is still used, make sure that assembly code is at least 4 byte aligned.

[ How to reproduce the problem ]

For example, use GCC 5.3 downloaded from Linaro:
http://releases.linaro.org/components/toolchain/binaries/5.3-2016.05/
aarch64-linux-gnu/gcc-linaro-5.3.1-2016.05-x86_64_aarch64-linux-gnu.tar.xz

Expand mbedtls-2.4.2 to the current directory.

Try the following:

  $ git log --oneline -1
  77544ef Merge pull request #1071 from jeenu-arm/syntax-fix
  $ aarch64-linux-gnu-gcc --version | head -1
  aarch64-linux-gnu-gcc (Linaro GCC 5.3-2016.05) 5.3.1 20160412
  $ make CROSS_COMPILE=aarch64-linux-gnu- PLAT=uniphier \
    TRUSTED_BOARD_BOOT=1 MBEDTLS_DIR=mbedtls-2.4.2
    ( snip build log )
  $ aarch64-linux-gnu-nm build/uniphier/release/bl1/bl1.elf | grep handler
  00000000800088f4 T bl1_fwu_smc_handler
  00000000800084c8 T bl1_smc_handler
  000000008000a6e0 t _panic_handler
  000000008000a8e0 W plat_error_handler
  000000008000a8e8 W plat_panic_handler
  000000008000a8d8 W plat_reset_handler
  000000008000a39f T reset_handler
  000000008000a367 t smc_handler
  000000008000a2ef t smc_handler64

You will notice "smc_handler64", "reset_handler", etc. are not properly
aligned.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
7 years agoMerge pull request #1069 from Leo-Yan/hikey_enable_watchdog_reset
danh-arm [Thu, 31 Aug 2017 08:37:47 +0000 (09:37 +0100)]
Merge pull request #1069 from Leo-Yan/hikey_enable_watchdog_reset

Hikey: enable watchdog reset

7 years agoMerge pull request #1074 from EvanLloyd/ejll/62_file_mode
davidcunado-arm [Wed, 30 Aug 2017 17:12:28 +0000 (18:12 +0100)]
Merge pull request #1074 from EvanLloyd/ejll/62_file_mode

fiptool: Update file open modes with 'b' (for Windows)

7 years agoMerge pull request #1075 from robertovargas-arm/fix_el3_payload
danh-arm [Wed, 30 Aug 2017 17:04:02 +0000 (18:04 +0100)]
Merge pull request #1075 from robertovargas-arm/fix_el3_payload

Don't use zero_normalmem in bl2_platform_setup

7 years agoDon't use zero_normalmem in bl2_platform_setup
Roberto Vargas [Wed, 30 Aug 2017 07:24:48 +0000 (08:24 +0100)]
Don't use zero_normalmem in bl2_platform_setup

zero_normalmem only can zero memory when caches are enabled
and the target memory is a normal memory, otherwise an abort is
generated. In the case of EL3_PAYLOAD_BASE bl2_platform_setup was
calling zero_normalmem with device memory and it generated an abort.

Change-Id: If013603f209a12af488a9c54481f97a8f395b26a
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
7 years agofiptool: Update file open modes with 'b' (for Windows)
Evan Lloyd [Fri, 13 Jan 2017 14:13:09 +0000 (14:13 +0000)]
fiptool: Update file open modes with 'b' (for Windows)

Unix does not distinguish binary and text modes.
On Windows the 'b' flag (e.g. "rb" instead of "r") is used to
indicate that files should be opened in binary mode.
This has no impact on Unix, but is needed on Windows to avoid
end-of-line issues.

Change-Id: I69424c55735d5d563d36c50bedd6357b8e05137e
Signed-off-by: Evan Lloyd <evan.lloyd@arm.com>
7 years agoMerge pull request #1073 from davidcunado-arm/dc/update_docs
danh-arm [Wed, 30 Aug 2017 13:37:15 +0000 (14:37 +0100)]
Merge pull request #1073 from davidcunado-arm/dc/update_docs

Add usage note for FVP model versions 11.0 and 8.5

7 years agoMerge pull request #1066 from islmit01/im/enable_cnp_bit
danh-arm [Wed, 30 Aug 2017 13:34:57 +0000 (14:34 +0100)]
Merge pull request #1066 from islmit01/im/enable_cnp_bit

Enable CnP bit for ARMv8.2 CPUs

7 years agoMerge pull request #1062 from jeenu-arm/cpu-fixes
danh-arm [Wed, 30 Aug 2017 13:34:17 +0000 (14:34 +0100)]
Merge pull request #1062 from jeenu-arm/cpu-fixes

Cpu macro fixes

7 years agoAdd usage note for FVP model versions 11.0 and 8.5
David Cunado [Mon, 31 Jul 2017 11:24:51 +0000 (12:24 +0100)]
Add usage note for FVP model versions 11.0 and 8.5

The internal synchronisation timings of the FVP model version
11.0 build 11.0.34 and version 8.5 build 0.8.5202 has been
changed compared to older version of the models.

This change may have an impact on how the model behaves depending
on the workload being run on the model. For example test failures
have been seen where the primary core has powered on a secondary
core but was then starved of host CPU time and so was not able to
update power status, resulting a test failure due to an incorrect
status. This, or similar behaviour, is not to be expected from
real hardware platforms.

This patch adds a usage note on how to launch these models so
that internal synchronisation timing matches that of the older
version of the models, specifically adding the -Q 100 option.

Change-Id: If922afddba1581b7246ec889b3f1598533ea1b7e
Signed-off-by: David Cunado <david.cunado@arm.com>
7 years agoMerge pull request #1071 from jeenu-arm/syntax-fix
danh-arm [Tue, 29 Aug 2017 14:25:36 +0000 (15:25 +0100)]
Merge pull request #1071 from jeenu-arm/syntax-fix

plat/arm: Fix ARM_INSTANTIATE_LOCK syntax anomaly

7 years agoTegra: Rename CORTEX_A57_ACTLR_EL1 to *CPUACTLR*
Eleanor Bonnici [Thu, 10 Aug 2017 13:46:26 +0000 (14:46 +0100)]
Tegra: Rename CORTEX_A57_ACTLR_EL1 to *CPUACTLR*

CORTEX_A57_ACTLR_EL1 macro refers to the CPUACTLR_EL1 register. Since
ACTLR_EL1 is a different register (not implemented in Cortex-A57) this
patch renames this macro for clarity.

Change-Id: I94d7d564cd2423ae032bbdd59a99d2dc535cdff6
Signed-off-by: Eleanor Bonnici <Eleanor.bonnici@arm.com>
7 years agoHiKey: Rename CPUACTRL reg constants
Eleanor Bonnici [Thu, 10 Aug 2017 13:26:36 +0000 (14:26 +0100)]
HiKey: Rename CPUACTRL reg constants

Constants named as *ACTLR* refer in fact to the CPUACTRL_EL1 register.
Since ACTLR and ACTRL_EL1 are different registers this patch renames
these constants for clarity.

Change-Id: I2a9e402dab7b0fcb6e481ee0d8a11eda943ed299
Signed-off-by: Eleanor Bonnici <Eleanor.bonnici@arm.com>
7 years agoCPU: Correct names of implementation-defined aux regs
Eleanor Bonnici [Wed, 9 Aug 2017 15:42:40 +0000 (16:42 +0100)]
CPU: Correct names of implementation-defined aux regs

At present, various CPU register macros that refer to CPUACTLR are named
ACTLR. This patch fixes that.

The previous register names are retained, but guarded by the
ERROR_DEPRECATED macro, so as not to break platforms that continue using
the old names.

Change-Id: Ia872196d81803f8f390b887d149e0fd054df519b
Signed-off-by: Eleanor Bonnici <Eleanor.bonnici@arm.com>
7 years agoCPU: Make shifted constants unsigned
Eleanor Bonnici [Wed, 9 Aug 2017 09:36:08 +0000 (10:36 +0100)]
CPU: Make shifted constants unsigned

In order to avoid Undefined behavior, left operand in left-shift
expressions needs to be unsigned, and of sufficient size. The safest and
most consistent approach is to use unsigned long long type.

Change-Id: I9612f16a6e6ea4c7df62a02497d862abf19b8e1b
Signed-off-by: Eleanor Bonnici <Eleanor.bonnici@arm.com>
7 years agoplat/arm: Fix ARM_INSTANTIATE_LOCK syntax anomaly
Jeenu Viswambharan [Wed, 23 Aug 2017 13:12:59 +0000 (14:12 +0100)]
plat/arm: Fix ARM_INSTANTIATE_LOCK syntax anomaly

The current definition of ARM_INSTANTIATE_LOCK macro includes a
semicolon, which means it's omitted where it's used. This is anomalous
for a C statement in global scope.

Fix this by removing semicolon from the definition; and where it's a
NOP, declare a file-scoped variable explicitly tagged as unused to avoid
compiler warning.

No functional changes.

Change-Id: I2c1d92ece4777e272a025011e03b8003f3543335
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
7 years agoMerge pull request #1070 from rockchip-linux/rk3399-fixes-logic
danh-arm [Tue, 29 Aug 2017 10:52:04 +0000 (11:52 +0100)]
Merge pull request #1070 from rockchip-linux/rk3399-fixes-logic

rockchip/rk3399: Support Turning off VD_LOGIC during suspend-to-ram

7 years agoMerge pull request #1068 from jenswi-linaro/optee_arm_plat
danh-arm [Tue, 29 Aug 2017 10:51:32 +0000 (11:51 +0100)]
Merge pull request #1068 from jenswi-linaro/optee_arm_plat

Optee arm platform common

7 years agoMerge pull request #1056 from geesun/qx/interrupt-diags
danh-arm [Tue, 29 Aug 2017 10:49:59 +0000 (11:49 +0100)]
Merge pull request #1056 from geesun/qx/interrupt-diags

update the interrupt diagrams

7 years agorockchip/rk3399: reinitilize secure sgrf when resume
Lin Huang [Wed, 14 Jun 2017 09:24:29 +0000 (17:24 +0800)]
rockchip/rk3399: reinitilize secure sgrf when resume

when shutdown logic power rail, the some sgrf register
value will reset, so need to reinitilize secure.

Change-Id: I8ad0570432e54441fe1c60dd2960a81fd58f7163
Signed-off-by: Lin Huang <hl@rock-chips.com>
7 years agorockchip/rk3399: do secure timer init in pmusram
Lin Huang [Sat, 27 May 2017 09:47:01 +0000 (17:47 +0800)]
rockchip/rk3399: do secure timer init in pmusram

we will use timer in pmusarm, when logic power rail shutdown,
the secure timer will gone, so need to initial it in pmusram.

Change-Id: I472e7eec3fc197f56223e6fff9167556c1c5e3bc
Signed-off-by: Lin Huang <hl@rock-chips.com>
7 years agorockchip/rk3399: use slice1 to restore ddr slice1 ~ slice4
Lin Huang [Fri, 26 May 2017 08:17:11 +0000 (16:17 +0800)]
rockchip/rk3399: use slice1 to restore ddr slice1 ~ slice4

we do not have enough pmusram space now, so use slice1 to restore
ddr slice1 ~ slice4, that's will save more pmusram space.

Change-Id: Id54a7944f33d01a8f244cee6a8a0707bfe4d42da
Signed-off-by: Lin Huang <hl@rock-chips.com>
7 years agorockchip/rk3399: disable more powerdomain prepare for shutdown logic rail
Lin Huang [Mon, 22 May 2017 02:29:59 +0000 (10:29 +0800)]
rockchip/rk3399: disable more powerdomain prepare for shutdown logic rail

Change-Id: Ia59adf48cf14eb627721264765bce50cb31065ef
Signed-off-by: Lin Huang <hl@rock-chips.com>
7 years agorockchip/rk3399: save and restore pd_alive register
Lin Huang [Thu, 18 May 2017 10:04:25 +0000 (18:04 +0800)]
rockchip/rk3399: save and restore pd_alive register

pd_alive control cru, grf, timer, gpio and wdt, when
turn off logic power rail, these register value will
back to reset value, we need to save them value in suspend
and restore them when resuem, since timer will reinitial
in kernel, so it not need to save/restore.

Change-Id: I0fc2a011d3cdc04b66ffbf728e769eb28b51ee38
Signed-off-by: Lin Huang <hl@rock-chips.com>
7 years agoHikey: enable watchdog reset
Leo Yan [Tue, 29 Aug 2017 06:38:06 +0000 (14:38 +0800)]
Hikey: enable watchdog reset

At the system boot time we need enable watchdog reset, otherwise after
the watchdog is timeout it cannot reset the SoC. We need set the bit 0
and bit 16 together, the bit 16 is mask bit so after set bit 16 we have
permission to operate bit 0 and bit 0 is watchdog reset enabling bit.

Signed-off-by: Leo Yan <leo.yan@linaro.org>
7 years agorockchip/rk3399: set ddr clock source back to dpll when ddr resume
Lin Huang [Wed, 17 May 2017 08:14:37 +0000 (16:14 +0800)]
rockchip/rk3399: set ddr clock source back to dpll when ddr resume

when logic power rail shutdown, CRU register will back to reset
value, ddr use abpll as clock source when do suspend, we need to save
and dpll value in pmusram, then set back these ddr clock back to dpll
when dddr resume.

Change-Id: I95dc0173649e8515859cfa46b40a606e0cc2fe3f
Signed-off-by: Lin Huang <hl@rock-chips.com>
7 years agorockchip/rk3399: reinitilize debug uart when resume
Lin Huang [Fri, 16 Jun 2017 02:43:40 +0000 (10:43 +0800)]
rockchip/rk3399: reinitilize debug uart when resume

when shutdown logic power rail, the uart register value will reset,
so need to reinitilize debug uart.

Change-Id: I48d3535c0068fd671dea6ea32e908612992faf62
Signed-off-by: Lin Huang <hl@rock-chips.com>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
7 years agoMerge pull request #1064 from islmit01/im/shifted_afinity
davidcunado-arm [Fri, 25 Aug 2017 16:26:22 +0000 (17:26 +0100)]
Merge pull request #1064 from islmit01/im/shifted_afinity

FVP: Always assume shifted affinity with MT bit

7 years agoMerge pull request #1059 from kenkuang/intergration
davidcunado-arm [Fri, 25 Aug 2017 16:25:39 +0000 (17:25 +0100)]
Merge pull request #1059 from kenkuang/intergration

fix a typo abort sctlr_el2

7 years agoMerge pull request #1067 from jeenu-arm/rst-fix
davidcunado-arm [Fri, 25 Aug 2017 12:37:45 +0000 (13:37 +0100)]
Merge pull request #1067 from jeenu-arm/rst-fix

firmware-design.rst: Fix formatting

7 years agoMerge pull request #1061 from robertovargas-arm/norflash
davidcunado-arm [Fri, 25 Aug 2017 12:37:30 +0000 (13:37 +0100)]
Merge pull request #1061 from robertovargas-arm/norflash

nor-flash

7 years agoMerge pull request #1065 from jenswi-linaro/optee_qemu
davidcunado-arm [Fri, 25 Aug 2017 10:38:56 +0000 (11:38 +0100)]
Merge pull request #1065 from jenswi-linaro/optee_qemu

qemu: Add OP-TEE extra image parsing support

7 years agoMerge pull request #1058 from alistair23/alistair/master
davidcunado-arm [Fri, 25 Aug 2017 09:52:44 +0000 (10:52 +0100)]
Merge pull request #1058 from alistair23/alistair/master

psci_common: Resolve GCC static analysis false positive

7 years agoFVP: bl2: optionally map ARM_OPTEE_PAGEABLE_LOAD_MEM
Jens Wiklander [Fri, 25 Aug 2017 08:07:20 +0000 (10:07 +0200)]
FVP: bl2: optionally map ARM_OPTEE_PAGEABLE_LOAD_MEM

If SPD_opteed is defined map ARM_OPTEE_PAGEABLE_LOAD_MEM in bl2 to
allow loading of OP-TEE paged part.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
7 years agoARM plat: change OP-TEE pageable load base
Jens Wiklander [Thu, 24 Aug 2017 13:39:09 +0000 (15:39 +0200)]
ARM plat: change OP-TEE pageable load base

Changes ARM_OPTEE_PAGEABLE_LOAD_BASE to end of ARM_AP_TZC_DRAM1.
ARM_OPTEE_PAGEABLE_LOAD_SIZE is also increased to 4MB to optimize
translation table usage.

This change makes loading of paged part easier inside OP-TEE OS as the
previous location of ARM_OPTEE_PAGEABLE_LOAD_BASE normally isn't mapped
if paging is enabled.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
7 years agoEnable CnP bit for ARMv8.2 CPUs
Isla Mitchell [Mon, 7 Aug 2017 10:20:13 +0000 (11:20 +0100)]
Enable CnP bit for ARMv8.2 CPUs

This patch enables the CnP (Common not Private) bit for secure page
tables so that multiple PEs in the same Inner Shareable domain can use
the same translation table entries for a given stage of translation in
a particular translation regime. This only takes effect when ARM
Trusted Firmware is built with ARM_ARCH_MINOR >= 2.

ARM Trusted Firmware Design has been updated to include a description
of this feature usage.

Change-Id: I698305f047400119aa1900d34c65368022e410b8
Signed-off-by: Isla Mitchell <isla.mitchell@arm.com>
7 years agoAdd macro to test for minimum architecture version
Jeenu Viswambharan [Wed, 16 Aug 2017 10:44:25 +0000 (11:44 +0100)]
Add macro to test for minimum architecture version

The macro concisely expresses and requires architecture version to be at
least as required by its arguments. This would be useful when extending
Trusted Firmware functionality for future architecture revisions.

Replace similar usage in the current code base with the new macro.

Change-Id: I9dcd0aa71a663eabd02ed9632b8ce87611fa5a57
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
7 years agofirmware-design.rst: Fix formatting
Jeenu Viswambharan [Thu, 24 Aug 2017 14:43:44 +0000 (15:43 +0100)]
firmware-design.rst: Fix formatting

The format conversion wrongly formatted a couple of sections. These were
also missing from the Table of Contents.

Change-Id: I324216c27e7b4711e6cc5e25782f4b53842140cc
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
7 years agoqemu: Add OP-TEE extra image parsing support
Jens Wiklander [Thu, 24 Aug 2017 11:16:26 +0000 (13:16 +0200)]
qemu: Add OP-TEE extra image parsing support

OP-TEE may have extra images to be loaded. Load them one by one and do
the parsing. In this patch, ARM TF need to load up to 3 images for
OP-TEE: header, pager and pages images. Header image is the info about
optee os and images. Pager image include pager code and data.  Paged
image include the paging parts using virtual memory.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
7 years agoopteed: pass device tree pointer in x2
Jens Wiklander [Thu, 24 Aug 2017 11:16:22 +0000 (13:16 +0200)]
opteed: pass device tree pointer in x2

Pass device tree pointer to OP-TEE in x2. bl2 is expected to fill in the
device tree pointer in args.arg3. Passing 0 means that device tree is
unavailable.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
7 years agoqemu: replace deprecated plat_psci_common.c
Jens Wiklander [Thu, 24 Aug 2017 11:16:20 +0000 (13:16 +0200)]
qemu: replace deprecated plat_psci_common.c

Change to compile with new plat/common/plat_psci_common.c instead of the old
deprecated plat/common/aarch64/plat_psci_common.c

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
7 years agoqemu: replace deprecated ADDR_SPACE_SIZE
Jens Wiklander [Thu, 24 Aug 2017 11:16:16 +0000 (13:16 +0200)]
qemu: replace deprecated ADDR_SPACE_SIZE

Replaces the deprecated ADDR_SPACE_SIZE with PLAT_PHY_ADDR_SPACE_SIZE
and PLAT_VIRT_ADDR_SPACE_SIZE.

Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
7 years agopsci_common: Resolve GCC static analysis false positive
Alistair Francis [Wed, 23 Aug 2017 20:55:21 +0000 (13:55 -0700)]
psci_common: Resolve GCC static analysis false positive

Previously commit 555ebb34db8f3424c1b394df2f10ecf9c1f70901 attmpted to fix this
GCC issue:

services/std_svc/psci/psci_common.c: In function 'psci_do_state_coordination':
services/std_svc/psci/psci_common.c:220:27: error: array subscript is above
array bounds [-Werror=array-bounds]
  psci_req_local_pwr_states[pwrlvl - 1][cpu_idx] = req_pwr_state;

This fix doesn't work as asserts aren't built in non-debug build flows.

Let's use GCCs #pragma option (documented here:
https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html) to avoid
this false positive instead.

Signed-off-by: Alistair Francis <alistair.francis@xilinx.com>
7 years agoFVP: Always assume shifted affinity with MT bit
Isla Mitchell [Thu, 17 Aug 2017 11:25:34 +0000 (12:25 +0100)]
FVP: Always assume shifted affinity with MT bit

At present, the MPIDR validation on FVP relies on MT bit set along
with shifted affinities. This currently is additionally dependent
on the FVP model being of variant C. This however should be based
on the presence of MT bit alone.

This patch makes the change to always assume that the affinities
are shifted in the FVP model when MT bit is present.

Change-Id: I09fcb0126e1b38d29124bdeaf3450a60b95d485d
Signed-off-by: Isla Mitchell <isla.mitchell@arm.com>
7 years agoMerge pull request #1017 from etienne-lms/minor-docs
davidcunado-arm [Wed, 23 Aug 2017 16:23:15 +0000 (17:23 +0100)]
Merge pull request #1017 from etienne-lms/minor-docs

Minor docs

7 years agoMakefile: correct path for CHECKPATCH warnings
Etienne Carriere [Wed, 23 Aug 2017 13:44:01 +0000 (15:44 +0200)]
Makefile: correct path for CHECKPATCH warnings

Change-Id: I08c9789d3fd2b034b08de663d151023ca005f77f
Reported-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
7 years agodoc: minor typo fix
Etienne Carriere [Wed, 23 Aug 2017 13:43:33 +0000 (15:43 +0200)]
doc: minor typo fix

Change-Id: I00fae047dea0eaf7e60037598af020817c66f659
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
7 years agonorflash: Add full status check
Roberto Vargas [Fri, 28 Jul 2017 09:43:28 +0000 (10:43 +0100)]
norflash: Add full status check

The nor_XXXXX functions may fail due to different reasons, and it
is convenient to do a full check to detect any failure. It is also
a good idea to have a specific function to do a full status check,
because new checks can be added to this function and they will be
incorporated automatically to any function calling it.

Change-Id: I54fed913e37ef574c1608e94139a519426348d12
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
7 years agofix a typo about sctlr_el2
Ken Kuang [Wed, 23 Aug 2017 08:03:29 +0000 (16:03 +0800)]
fix a typo about sctlr_el2
which will cause write_sctlr_el2 use all sctlr_el1 value except the EE bit

The code doesn't "Use SCTLR_EL1.EE value to initialise sctlr_el2"
but, read out SCTLR_EL1 and clear EE bit, then set to sctlr_el2

Signed-off-by: Ken Kuang <ken.kuang@spreadtrum.com>
7 years agoMerge pull request #1054 from jwerner-chromium/JW_crash_x30
davidcunado-arm [Tue, 22 Aug 2017 17:25:55 +0000 (18:25 +0100)]
Merge pull request #1054 from jwerner-chromium/JW_crash_x30

Fix x30 reporting for unhandled exceptions

7 years agoMerge pull request #1053 from jwerner-chromium/JW_func_align
davidcunado-arm [Tue, 22 Aug 2017 16:44:11 +0000 (17:44 +0100)]
Merge pull request #1053 from jwerner-chromium/JW_func_align

Add new alignment parameter to func assembler macro

7 years agonorflash: Add nor_erase() to NOR driver
Roberto Vargas [Fri, 28 Jul 2017 09:38:24 +0000 (10:38 +0100)]
norflash: Add nor_erase() to NOR driver

NOR memory only supports setting bits to 1. To clear a bit, set to zero,
the NOR memory needs to be erased.

Change-Id: Ia82eb15a5af9a6d4fc7e5ea2b58e6db87226b351
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
7 years agonorflash: Clear status register before sending commands
Roberto Vargas [Wed, 26 Jul 2017 14:17:24 +0000 (15:17 +0100)]
norflash: Clear status register before sending commands

The status register bits remain until explicitly cleared, which means
that a command can be incorrectly considered to have generated an error -
for example, after reset the status register contents may be unknown or
if a previous command had failed.

This patch clears the status register before beginning any command to
be sure that the status register only represents information about the
current operation.

Change-Id: I9e98110ee24179937215461c00b6543a3467b350
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
7 years agonorflash: Wait for WSM bit in lock/unlock
Roberto Vargas [Wed, 26 Jul 2017 13:37:56 +0000 (14:37 +0100)]
norflash: Wait for WSM bit in lock/unlock

lock/unlock operation must wait until WSM bit
is set. Since we do not allow to loop forever then these functions
must return an error if WSM bit isn't enabled after a number of tries.

Change-Id: I21c9e292b514b28786ff4a225128bcd8c1bfa999
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
7 years agonorflash: clean-up norflash.c
Roberto Vargas [Wed, 26 Jul 2017 13:15:07 +0000 (14:15 +0100)]
norflash: clean-up norflash.c

- Add comments to all the functions
- Simplify nor_poll_dws
- Simplify nor_word_program

Change-Id: I29c0199d2908a4fceb1ac3430fcfdd699be22bb3
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
7 years agoFix x30 reporting for unhandled exceptions
Julius Werner [Thu, 27 Jul 2017 21:59:34 +0000 (14:59 -0700)]
Fix x30 reporting for unhandled exceptions

Some error paths that lead to a crash dump will overwrite the value in
the x30 register by calling functions with the no_ret macro, which
resolves to a BL instruction. This is not very useful and not what the
reader would expect, since a crash dump should usually show all
registers in the state they were in when the exception happened. This
patch replaces the offending function calls with a B instruction to
preserve the value in x30.

Change-Id: I2a3636f2943f79bab0cd911f89d070012e697c2a
Signed-off-by: Julius Werner <jwerner@chromium.org>
7 years agoMerge pull request #1051 from Kevin-WangTao/fix_suspend_issue
danh-arm [Thu, 17 Aug 2017 12:54:55 +0000 (13:54 +0100)]
Merge pull request #1051 from Kevin-WangTao/fix_suspend_issue

Hikey960: fix PSCI suspend stuck issue

7 years agoMerge pull request #977 from etienne-lms/sp-min-fiq
danh-arm [Thu, 17 Aug 2017 12:54:32 +0000 (13:54 +0100)]
Merge pull request #977 from etienne-lms/sp-min-fiq

bl32: add secure interrupt handling in AArch32 sp_min

7 years agoupdate the interrupt diagrams
Qixiang Xu [Tue, 11 Jul 2017 12:33:12 +0000 (20:33 +0800)]
update the interrupt diagrams

   - Redraw the interrupt diagrams with dia tool
   - Change TSP_HANDLED_S_EL1_FIQ to TSP_HANDLED_S_EL1_INTR in sec-int-handling.png
   - Use the makefile generate the image to avoid unnessary generate
   - Add dia source code

Change-Id: I016022ca964720e8497c27c88a3f371459abc284

Signed-off-by: Qixiang Xu <qixiang.xu@arm.com>
7 years agoHikey960: fix PSCI suspend stuck issue
Tao Wang [Thu, 3 Aug 2017 09:34:09 +0000 (17:34 +0800)]
Hikey960: fix PSCI suspend stuck issue

Clear the cpuidle flag when resuming from idle. This flag is set
when entering idle, and if it remains set when resuming, it can
prevent the cluster from powering off during the next system
suspend operation. During system suspend, all CPUs are plugged
out except the last CPU, which is suspended. If any of the
cpuidle flags are set at this point, the last CPU will be stuck
in a WFI loop and will not be powered off.
This problem only occurs during system suspend.

Signed-off-by: Tao Wang <kevin.wangtao@linaro.org>
7 years agoMerge pull request #1042 from tekkamanninja/qemu_load_image_v2_upstream
danh-arm [Wed, 16 Aug 2017 16:50:17 +0000 (17:50 +0100)]
Merge pull request #1042 from tekkamanninja/qemu_load_image_v2_upstream

qemu: Add LOAD_IMAGE_V2 support

7 years agoqemu: Add LOAD_IMAGE_V2 support
Fu Wei [Sat, 27 May 2017 13:21:42 +0000 (21:21 +0800)]
qemu: Add LOAD_IMAGE_V2 support

The generic LOAD_IMAGE_V2 framework has been merged and enable for almost
all the arm platform. Because qemu platform doesn't share those common
files with arm, QEMU haven't got this support yet.

This patch add all the necessary code the files for adding LOAD_IMAGE_V2
support on QEMU and enable it as default.

Fixes ARM-software/tf-issues#507

Signed-off-by: Fu Wei <fu.wei@linaro.org>
7 years agoAdd new alignment parameter to func assembler macro
Julius Werner [Tue, 1 Aug 2017 22:16:36 +0000 (15:16 -0700)]
Add new alignment parameter to func assembler macro

Assembler programmers are used to being able to define functions with a
specific aligment with a pattern like this:

    .align X
  myfunction:

However, this pattern is subtly broken when instead of a direct label
like 'myfunction:', you use the 'func myfunction' macro that's standard
in Trusted Firmware. Since the func macro declares a new section for the
function, the .align directive written above it actually applies to the
*previous* section in the assembly file, and the function it was
supposed to apply to is linked with default alignment.

An extreme case can be seen in Rockchip's plat_helpers.S which contains
this code:

  [...]
  endfunc plat_crash_console_putc

  .align 16
  func platform_cpu_warmboot
  [...]

This assembles into the following plat_helpers.o:

  Sections:
  Idx Name                             Size  [...]  Algn
   9 .text.plat_crash_console_putc 00010000  [...]  2**16
  10 .text.platform_cpu_warmboot   00000080  [...]  2**3

As can be seen, the *previous* function actually got the alignment
constraint, and it is also 64KB big even though it contains only two
instructions, because the .align directive at the end of its section
forces the assembler to insert a giant sled of NOPs. The function we
actually wanted to align has the default constraint. This code only
works at all because the linker just happens to put the two functions
right behind each other when linking the final image, and since the end
of plat_crash_console_putc is aligned the start of platform_cpu_warmboot
will also be. But it still wastes almost 64KB of image space
unnecessarily, and it will break under certain circumstances (e.g. if
the plat_crash_console_putc function becomes unused and its section gets
garbage-collected out).

There's no real way to fix this with the existing func macro. Code like

 func myfunc
 .align X

happens to do the right thing, but is still not really correct code
(because the function label is inserted before the .align directive, so
the assembler is technically allowed to insert padding at the beginning
of the function which would then get executed as instructions if the
function was called). Therefore, this patch adds a new parameter with a
default value to the func macro that allows overriding its alignment.

Also fix up all existing instances of this dangerous antipattern.

Change-Id: I5696a07e2fde896f21e0e83644c95b7b6ac79a10
Signed-off-by: Julius Werner <jwerner@chromium.org>
7 years agoMerge pull request #1040 from sliai/support-opteed-header
danh-arm [Mon, 14 Aug 2017 15:35:12 +0000 (16:35 +0100)]
Merge pull request #1040 from sliai/support-opteed-header

Support opteed header

7 years agoMerge pull request #1049 from sandrine-bailleux-arm/sb/xlat-lib-v2-doc
danh-arm [Mon, 14 Aug 2017 15:03:35 +0000 (16:03 +0100)]
Merge pull request #1049 from sandrine-bailleux-arm/sb/xlat-lib-v2-doc

Add documentation of the xlat tables library V2

7 years agoMerge pull request #1048 from douglas-raillard-arm/dr/fix_bl2u_entrypoint
danh-arm [Mon, 14 Aug 2017 15:02:53 +0000 (16:02 +0100)]
Merge pull request #1048 from douglas-raillard-arm/dr/fix_bl2u_entrypoint

Fix BL2U entrypoint possible parameter corruption

7 years agoMerge pull request #1046 from jeenu-arm/revc
danh-arm [Mon, 14 Aug 2017 14:32:27 +0000 (15:32 +0100)]
Merge pull request #1046 from jeenu-arm/revc

Support for RevC FVP model

7 years agoMerge pull request #1043 from tekkamanninja/qemu_xlat_tables_v2_upstream
danh-arm [Mon, 14 Aug 2017 14:26:53 +0000 (15:26 +0100)]
Merge pull request #1043 from tekkamanninja/qemu_xlat_tables_v2_upstream

qemu: use translation tables library v2 as default.

7 years agobl32: add secure interrupt handling in AArch32 sp_min
Etienne Carriere [Wed, 9 Aug 2017 13:48:53 +0000 (15:48 +0200)]
bl32: add secure interrupt handling in AArch32 sp_min

Add support for a minimal secure interrupt service in sp_min for
the AArch32 implementation. Hard code that only FIQs are handled.

Introduce bolean build directive SP_MIN_WITH_SECURE_FIQ to enable
FIQ handling from SP_MIN.

Configure SCR[FIQ] and SCR[FW] from generic code for both cold and
warm boots to handle FIQ in secure state from monitor.

Since SP_MIN architecture, FIQ are always trapped when system executes
in non secure state. Hence discard relay of the secure/non-secure
state in the FIQ handler.

Change-Id: I1f7d1dc7b21f6f90011b7f3fcd921e455592f5e7
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
7 years agoSupport paging function for OPTEE.
Edison Ai [Tue, 18 Jul 2017 08:52:26 +0000 (16:52 +0800)]
Support paging function for OPTEE.

ARM TF need transfer information about pageable image load address
and memory limit to OPTEE. OPTEE will relocate the pageable image
to where it's needed.
The legacy OP-TEE images that do not include header information
are not affected.

Change-Id: Id057efbbc894de7c36b2209b391febea4729c455
Signed-off-by: Edison Ai <edison.ai@arm.com>
7 years agoAdd Trusted OS extra image parsing support for ARM standard platforms
Summer Qin [Mon, 24 Apr 2017 15:49:28 +0000 (16:49 +0100)]
Add Trusted OS extra image parsing support for ARM standard platforms

Trusted OS may have extra images to be loaded. Load them one by one
and do the parsing. In this patch, ARM TF need to load up to 3 images
for optee os: header, pager and paged images. Header image is the info
about optee os and images. Pager image include pager code and data.
Paged image include the paging parts using virtual memory.

Change-Id: Ia3bcfa6d8a3ed7850deb5729654daca7b00be394
Signed-off-by: Summer Qin <summer.qin@arm.com>
7 years agoSupport Trusted OS firmware extra images in TF tools
Summer Qin [Thu, 20 Apr 2017 15:28:39 +0000 (16:28 +0100)]
Support Trusted OS firmware extra images in TF tools

Since Trusted OS firmware may have extra images, need to
assign new uuid and image id for them.
The TBBR chain of trust has been extended to add support
for the new images within the existing Trusted OS firmware
content certificate.

Change-Id: I678dac7ba1137e85c5779b05e0c4331134c10e06
Signed-off-by: Summer Qin <summer.qin@arm.com>
7 years agoAdd documentation of the xlat tables library V2
Antonio Nino Diaz [Tue, 23 May 2017 10:49:22 +0000 (11:49 +0100)]
Add documentation of the xlat tables library V2

The documentation describes the design of the translation tables
library version 2 used by the ARM Trusted Firmware.

The diagram file has been created with Dia version 0.97.2. This tool
can be obtained from: https://wiki.gnome.org/Apps/Dia/Download

Inkscape has been used to generate the *.png file from the *.dia file
to work around a bug in the generation of *.png files in some versions
of Dia.

Change-Id: Ie67d9998d4ae881b2c060200a318ad3ac2fa5e91
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
7 years agoMerge pull request #1050 from davidcunado-arm/dc/update_changelog
davidcunado-arm [Fri, 4 Aug 2017 13:09:27 +0000 (14:09 +0100)]
Merge pull request #1050 from davidcunado-arm/dc/update_changelog

Fix to change.log

7 years agoFix to change.log
David Cunado [Wed, 19 Jul 2017 11:31:11 +0000 (12:31 +0100)]
Fix to change.log

With the migration to .rst from .md, the Issues Resolved and
Known Issues sections for v1.4 were using Header 1 format.

This patch changes to using Header 2 for these sections.

Change-Id: Ic3127d84eb169a65039fd4cc8284c6429302732d
Signed-off-by: David Cunado <david.cunado@arm.com>
7 years agoMerge pull request #1044 from islmit01/im/fix_includes
davidcunado-arm [Thu, 3 Aug 2017 09:30:04 +0000 (10:30 +0100)]
Merge pull request #1044 from islmit01/im/fix_includes

Fix order of #includes

7 years agoFix BL2U entrypoint possible parameter corruption
Douglas Raillard [Wed, 26 Jul 2017 18:23:16 +0000 (19:23 +0100)]
Fix BL2U entrypoint possible parameter corruption

Replace the use of r12 by r10 to save the value of a parameter of
bl2u_entrypoint to pass it to bl2u_early_platform_setup at the end of
the function. r10 is a callee saved register so it will not become
corrupted by C code, whereas r12 is the The Intra-Procedure-call scratch
register potentially used by veneers. See the ARM AAPCS document (ARM
IHI 0042F).

Change-Id: I4f37e54a6b550719edb40bb24cd8f498827e2749
Signed-off-by: Douglas Raillard <douglas.raillard@arm.com>
7 years agoFVP: Support Base FVP RevC
Jeenu Viswambharan [Tue, 18 Jul 2017 14:42:50 +0000 (15:42 +0100)]
FVP: Support Base FVP RevC

Revision C of the Base FVP has the same memory map as earlier revisions,
but has the following differences:

  - Implements CCI550 instead of CCI400,
  - Has a single instantiation of SMMUv3,
  - CPU MPIDs are shifted left by one level, and has MT bit set in them.

The correct interconnect to program is chosen at run time based on the
FVP revision. Therefore, this patch implements FVP functions for
interconnect programming, rather than depending on ARM generic ones. The
macros used have been renamed to reflect this change.

Additionally, this patch initializes SMMUv3 as part of FVP early
platform setup.

New ARM config flags are introduced for feature queries at run time.

Change-Id: Ic7b7f080953a51fceaf62ce7daa6de0573801f09
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>