project/bcm63xx/atf.git
6 years agoEHF: Introduce preempted return code parameter to ehf_allow_ns_preemption()
Jeenu Viswambharan [Mon, 22 Jan 2018 12:29:12 +0000 (12:29 +0000)]
EHF: Introduce preempted return code parameter to ehf_allow_ns_preemption()

When a Yielding SMC is preempted, it's possible that Non-secure world is
resumed afterwards. In this case, Non-secure execution would find itself
in a state where the SMC has returned. However, the dispatcher might not
get an opportunity to populate the corrected return code for having
been preempted, and therefore the caller of the Yielding SMC cannot
reliably determine whether the SMC had successfully completed or had
been preempted.

To solve this, this patch introduces a new parameter to the
ehf_allow_ns_preemption() API. An SPD, through this parameter, would
provide the expected error code when a Yielding SMC is preempted. EHF
can then populate the specified value in x0 of the Non-secure context so
that the caller of the Yielding SMC correctly identifies the SMC return
as a preemption.

Documentation updates to follow.

Change-Id: Ia9c3f8f03f9d72d81aa235eaae2ee0374b972e1e
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
6 years agoMerge pull request #1273 from antonio-nino-diaz-arm/an/fix-tlbi-disable-mmu
davidcunado-arm [Mon, 26 Feb 2018 10:42:55 +0000 (10:42 +0000)]
Merge pull request #1273 from antonio-nino-diaz-arm/an/fix-tlbi-disable-mmu

Ensure the correct execution of TLBI instructions

6 years agoMerge pull request #1276 from swarren/issue-551
davidcunado-arm [Sun, 25 Feb 2018 21:03:42 +0000 (21:03 +0000)]
Merge pull request #1276 from swarren/issue-551

Make all build results depend on all makefiles

6 years agoMerge pull request #1264 from fengbaopeng/integration
davidcunado-arm [Sat, 24 Feb 2018 20:18:14 +0000 (20:18 +0000)]
Merge pull request #1264 from fengbaopeng/integration

drivers:ufs: fix hynix ufs bug with quirk on hi36xx SoC

6 years agodrivers:ufs: fix hynix ufs bug with quirk on hi36xx SoC
fengbaopeng [Mon, 12 Feb 2018 12:53:54 +0000 (20:53 +0800)]
drivers:ufs: fix hynix ufs bug with quirk on hi36xx SoC

Hynix ufs has deviations on hi36xx platform which will result
in ufs bursts transfer failures at a very low probability.

To fix the problem, the Hynix device must set the register
VS_DebugSaveConfigTime to 0x10, which will set time reference
for SaveConfigTime is 250 ns. The time reference for SaveConfigTime
is 40 ns by default.

Signed-off-by: fengbaopeng <fengbaopeng@hisilicon.com>
6 years agoMerge pull request #1281 from antonio-nino-diaz-arm/an/fix-foundation-instructions
davidcunado-arm [Fri, 23 Feb 2018 20:45:34 +0000 (20:45 +0000)]
Merge pull request #1281 from antonio-nino-diaz-arm/an/fix-foundation-instructions

Fix Foundation FVP instructions in User Guide

6 years agoMerge pull request #1262 from ssalko/ssalko_dev
davidcunado-arm [Fri, 23 Feb 2018 20:45:03 +0000 (20:45 +0000)]
Merge pull request #1262 from ssalko/ssalko_dev

qemu: Fix interrupt type check

6 years agoMerge pull request #1279 from soby-mathew/sm/BL2_base_assert
davidcunado-arm [Fri, 23 Feb 2018 19:25:17 +0000 (19:25 +0000)]
Merge pull request #1279 from soby-mathew/sm/BL2_base_assert

ARM Platforms: Add assertion for BL2_BASE

6 years agoFix Foundation FVP instructions in User Guide
Antonio Nino Diaz [Fri, 23 Feb 2018 11:01:31 +0000 (11:01 +0000)]
Fix Foundation FVP instructions in User Guide

The Arm Trusted Firmware is built by default for ARMv8-A version 8.0.
However, the Foundation FVP runs by default in the highest version of
the architecture it supports. This causes problems when trying to run
the Arm Trusted Firmware on it.

This patch adds a note to the User Guide about this problem.

Change-Id: I0220fe1a9c66c2292149ad4a7ffe5e27ba08ab28
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoMerge pull request #1278 from soby-mathew/sm/aarch32_errata_fix
davidcunado-arm [Thu, 22 Feb 2018 23:29:11 +0000 (23:29 +0000)]
Merge pull request #1278 from soby-mathew/sm/aarch32_errata_fix

Fixup AArch32 errata printing framework

6 years agoFixup AArch32 errata printing framework
Soby Mathew [Wed, 21 Feb 2018 15:48:03 +0000 (15:48 +0000)]
Fixup AArch32 errata printing framework

The AArch32 assembly implementation of `print_errata_status` did not save
a register which was getting clobbered by a `get_cpu_ops_ptr`. This
patch fixes that.

Change-Id: Id0711e46b7c685a18a10328d4b513e952a5d860b
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
6 years agoARM Platforms: Add CASSERT for BL2_BASE
Soby Mathew [Tue, 20 Feb 2018 12:50:47 +0000 (12:50 +0000)]
ARM Platforms: Add CASSERT for BL2_BASE

Change-Id: I93e491fde2a991fc39584c2762f33cbea40541e3
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
6 years agoARM Platforms: Don't build BL1 and BL2 if RESET_TO_SP_MIN=1
Soby Mathew [Tue, 20 Feb 2018 14:48:50 +0000 (14:48 +0000)]
ARM Platforms: Don't build BL1 and BL2 if RESET_TO_SP_MIN=1

Change-Id: Iadb21bb56f2e61d7e6aec9b3b3efd30059521def
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
6 years agoMake all build results depend on all makefiles
Stephen Warren [Thu, 22 Feb 2018 00:13:50 +0000 (17:13 -0700)]
Make all build results depend on all makefiles

This makes incremental builds work when the only change is to a
definition in a makefile.

Fixes arm-software/tf-issues#551

Signed-off-by: Stephen Warren <swarren@nvidia.com>
6 years agoMerge pull request #1275 from soby-mathew/sm/tzc400_fix
davidcunado-arm [Wed, 21 Feb 2018 20:24:59 +0000 (20:24 +0000)]
Merge pull request #1275 from soby-mathew/sm/tzc400_fix

Resolve TZC400 build issue when DEBUG=1 and ENABLE_ASSERTIONS=0

6 years agoResolve TZC400 build issue when DEBUG=1 and ENABLE_ASSERTIONS=0
Soby Mathew [Tue, 20 Feb 2018 13:52:20 +0000 (13:52 +0000)]
Resolve TZC400 build issue when DEBUG=1 and ENABLE_ASSERTIONS=0

Previously the definition of `_tzc_read_peripheral_id()` was wrapped
in ENABLE_ASSERTIONS build flag. This causes build issue for TZC400 driver
when DEBUG=1 and ENABLE_ASSERTIONS=0. This patch fixes the same by
moving the definitions outside the ENABLE_ASSERTIONS build flag.

Change-Id: Ic1cad69f02ce65ac34aefd39eaa96d5781043152
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
6 years agoEnsure the correct execution of TLBI instructions
Antonio Nino Diaz [Mon, 19 Feb 2018 13:53:48 +0000 (13:53 +0000)]
Ensure the correct execution of TLBI instructions

After executing a TLBI a DSB is needed to ensure completion of the
TLBI.

rk3328: The MMU is allowed to load TLB entries for as long as it is
enabled. Because of this, the correct place to execute a TLBI is right
after disabling the MMU.

Change-Id: I8280f248d10b49a8c354a4ccbdc8f8345ac4c170
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoMerge pull request #1270 from antonio-nino-diaz-arm/an/smc-unknown
davidcunado-arm [Tue, 20 Feb 2018 09:02:24 +0000 (09:02 +0000)]
Merge pull request #1270 from antonio-nino-diaz-arm/an/smc-unknown

Redefine SMC_UNK as -1 instead of 0xFFFFFFFF

6 years agoMerge pull request #1271 from afaerber/tegra-fixes
davidcunado-arm [Mon, 19 Feb 2018 23:27:24 +0000 (23:27 +0000)]
Merge pull request #1271 from afaerber/tegra-fixes

tegra: Fix mmap_region_t struct mismatch

6 years agoMerge pull request #1259 from hzhuang1/fix_uart
davidcunado-arm [Sat, 17 Feb 2018 21:55:57 +0000 (21:55 +0000)]
Merge pull request #1259 from hzhuang1/fix_uart

hikey960: avoid hardcode on uart port

6 years agotegra: Fix mmap_region_t struct mismatch
Andreas Färber [Sat, 17 Feb 2018 05:02:32 +0000 (06:02 +0100)]
tegra: Fix mmap_region_t struct mismatch

Commit fdb1964c34968921379d3592e7ac6e9a685dbab1 ("xlat: Introduce
MAP_REGION2() macro") added a granularity field to mmap_region_t.

Tegra platforms were using the v2 xlat_tables implementation in
common/tegra_common.mk, but v1 xlat_tables.h headers in soc/*/plat_setup.c
where arrays are being defined. This caused the next physical address to
be read as granularity, causing EINVAL error and triggering an assert.

Consistently use xlat_tables_v2.h header to avoid this.

Fixes ARM-software/tf-issues#548.

Signed-off-by: Andreas Färber <afaerber@suse.de>
6 years agohikey960: avoid hardcode on uart port
Haojian Zhuang [Sat, 17 Feb 2018 04:06:18 +0000 (12:06 +0800)]
hikey960: avoid hardcode on uart port

Avoid hardcode on uart port. The uart port could be auto detected
on HiKey960 platform.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agoMerge pull request #1268 from jeenu-arm/ehf-pri-fix
davidcunado-arm [Sat, 17 Feb 2018 00:21:25 +0000 (00:21 +0000)]
Merge pull request #1268 from jeenu-arm/ehf-pri-fix

EHF: Fix priority check

6 years agoMerge pull request #1267 from jeenu-arm/console-fix
davidcunado-arm [Fri, 16 Feb 2018 22:47:06 +0000 (22:47 +0000)]
Merge pull request #1267 from jeenu-arm/console-fix

ARM platforms: Fix console address for flush

6 years agoMerge pull request #1266 from antonio-nino-diaz-arm/an/misra-urls
davidcunado-arm [Fri, 16 Feb 2018 21:09:36 +0000 (21:09 +0000)]
Merge pull request #1266 from antonio-nino-diaz-arm/an/misra-urls

Remove URLs from comments

6 years agoMerge pull request #1258 from vchong/optee_dbg
davidcunado-arm [Fri, 16 Feb 2018 21:02:04 +0000 (21:02 +0000)]
Merge pull request #1258 from vchong/optee_dbg

optee: print header info before validate

6 years agoRedefine SMC_UNK as -1 instead of 0xFFFFFFFF
Antonio Nino Diaz [Wed, 14 Feb 2018 14:22:29 +0000 (14:22 +0000)]
Redefine SMC_UNK as -1 instead of 0xFFFFFFFF

According to the SMC Calling Convention (ARM DEN0028B):

    The Unknown SMC Function Identifier is a sign-extended value of
    (-1) that is returned in R0, W0 or X0 register.

The value wasn't sign-extended because it was defined as a 32-bit
unsigned value (0xFFFFFFFF).

SMC_PREEMPT has been redefined as -2 for the same reason.

NOTE: This might be a compatibility break for some AArch64 platforms
that don't follow the previous version of the SMCCC (ARM DEN0028A)
correctly. That document specifies that only the bottom 32 bits of the
returned value must be checked. If a platform relies on the top 32 bits
of the result being 0 (so that SMC_UNK is 0x00000000FFFFFFFF), it will
have to fix its code to comply with the SMCCC.

Change-Id: I7f7b109f6b30c114fe570aa0ead3c335383cb54d
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoRemove URLs from comments
Antonio Nino Diaz [Wed, 14 Feb 2018 11:41:26 +0000 (11:41 +0000)]
Remove URLs from comments

This fixes all defects according to MISRA Rule 3.1: "The character
sequences /* and // shall not be used within a comment". This affects
all URLs in comments, so they have been removed:

- The link in `sdei_state.c` can also be found in the documentation file
  `docs/sdei.rst`.

- The bug that the file `io_fip.c` talks about doesn't affect the
  currently supported version of GCC, so it doesn't make sense to keep
  the comment. Note that the version of GCC officially supported is the
  one that comes with Linaro Release 17.10, which is GCC 6.2.

- The link in `tzc400.c` was broken, and it didn't correctly direct to
  the Technical Reference Manual it should. The link has been replaced
  by the title of the document, which is more convenient when looking
  for the document.

Change-Id: I89f60c25f635fd4c008a5d3a14028f814c147bbe
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoEHF: Fix priority check
Jeenu Viswambharan [Mon, 5 Feb 2018 11:20:37 +0000 (11:20 +0000)]
EHF: Fix priority check

When deactivating, it's not an error if the priority being deactivating
is equal to the active priority. Fix this.

Change-Id: I66f0e9e775ac9aba8a7cc48cd3ecd3b358be63c0
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
6 years agoARM platforms: Fix console address for flush
Jeenu Viswambharan [Thu, 25 Jan 2018 12:49:57 +0000 (12:49 +0000)]
ARM platforms: Fix console address for flush

The console core flush API expects the base address in the first
register, but ARM helpers currently sets the second register with the
base address. This causes an assert failure.

This patch fixes that.

Change-Id: Ic54c423cd60f2756902ab3cfc77b3de2ac45481e
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
6 years agoMerge pull request #1256 from jeenu-arm/tsp-ehf
davidcunado-arm [Mon, 12 Feb 2018 09:52:08 +0000 (17:52 +0800)]
Merge pull request #1256 from jeenu-arm/tsp-ehf

TSP changes for EHF

6 years agoqemu: Fix interrupt type check
Santeri Salko [Thu, 8 Feb 2018 20:01:26 +0000 (22:01 +0200)]
qemu: Fix interrupt type check

Function plat_ic_get_pending_interrupt_type() should return interrupt
type, not id. The function is used in aarch64 exception handling and
currently the irq/fiq forwarding fails if a secure interrupt happens while
running normal world.

The qemu-specific gic file does not contain any extra functionality so it
can be removed and common file can be used instead.

fixes arm-software/tf-issues#546

Signed-off-by: Santeri Salko <santeri.salko@gmail.com>
6 years agoMerge pull request #1257 from vchong/poplar_maintainer
davidcunado-arm [Fri, 9 Feb 2018 03:38:12 +0000 (11:38 +0800)]
Merge pull request #1257 from vchong/poplar_maintainer

maintainers.rst: Add maintainer for plat Poplar

6 years agoMerge pull request #1251 from vchong/ld_img_v2
davidcunado-arm [Fri, 9 Feb 2018 03:36:51 +0000 (11:36 +0800)]
Merge pull request #1251 from vchong/ld_img_v2

poplar: misc updates

6 years agoMerge pull request #1260 from sandrine-bailleux-arm/topics/sb/fix-zlib-build
davidcunado-arm [Thu, 8 Feb 2018 17:14:52 +0000 (01:14 +0800)]
Merge pull request #1260 from sandrine-bailleux-arm/topics/sb/fix-zlib-build

zlib: Fix build error when LOG_LEVEL=50

6 years agozlib: Fix build error when LOG_LEVEL=50
Sandrine Bailleux [Wed, 7 Feb 2018 09:32:01 +0000 (10:32 +0100)]
zlib: Fix build error when LOG_LEVEL=50

When enabling VERBOSE() traces, the zlib library fails to compile
because of an incompatible format specifier string. Fix that.

Change-Id: I74ff1c8dc2e6157ee982f7754bce4504599e3013
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
6 years agoMerge pull request #1254 from masahir0y/bl2-at-el3
davidcunado-arm [Thu, 8 Feb 2018 05:33:11 +0000 (13:33 +0800)]
Merge pull request #1254 from masahir0y/bl2-at-el3

Fix zero_normalmem() for BL2_AT_EL3

6 years agooptee: print header info before validate
Victor Chong [Fri, 26 Jan 2018 07:10:07 +0000 (16:10 +0900)]
optee: print header info before validate

Currently optee header info is only printed after it is validated,
but this does not help with debugging in case of error, so print it
before.

Signed-off-by: Victor Chong <victor.chong@linaro.org>
6 years agohikey*, poplar: platform.mk: Fix typo in variable assignments
Victor Chong [Wed, 31 Jan 2018 15:37:49 +0000 (00:37 +0900)]
hikey*, poplar: platform.mk: Fix typo in variable assignments

Signed-off-by: Victor Chong <victor.chong@linaro.org>
6 years agopoplar: Support Trusted OS extra image (OP-TEE header) parsing
Victor Chong [Wed, 31 Jan 2018 15:35:39 +0000 (00:35 +0900)]
poplar: Support Trusted OS extra image (OP-TEE header) parsing

Signed-off-by: Victor Chong <victor.chong@linaro.org>
Tested-by: Shawn Guo <shawn.guo@linaro.org>
6 years agopoplar: Add LOAD_IMAGE_V2 support
Victor Chong [Wed, 31 Jan 2018 15:35:22 +0000 (00:35 +0900)]
poplar: Add LOAD_IMAGE_V2 support

Signed-off-by: Victor Chong <victor.chong@linaro.org>
Tested-by: Shawn Guo <shawn.guo@linaro.org>
6 years agopoplar: Add build option for dram size
Victor Chong [Mon, 29 Jan 2018 09:11:02 +0000 (18:11 +0900)]
poplar: Add build option for dram size

Signed-off-by: Victor Chong <victor.chong@linaro.org>
Tested-by: Shawn Guo <shawn.guo@linaro.org>
6 years agopoplar: Fix typo
Victor Chong [Mon, 29 Jan 2018 09:08:34 +0000 (18:08 +0900)]
poplar: Fix typo

Signed-off-by: Victor Chong <victor.chong@linaro.org>
Tested-by: Shawn Guo <shawn.guo@linaro.org>
6 years agopoplar: Remove unused function prototype
Victor Chong [Thu, 25 Jan 2018 16:41:24 +0000 (01:41 +0900)]
poplar: Remove unused function prototype

Signed-off-by: Victor Chong <victor.chong@linaro.org>
Tested-by: Shawn Guo <shawn.guo@linaro.org>
6 years agomaintainers.rst: Add maintainer for plat Poplar
Victor Chong [Tue, 6 Feb 2018 06:11:12 +0000 (15:11 +0900)]
maintainers.rst: Add maintainer for plat Poplar

Signed-off-by: Victor Chong <victor.chong@linaro.org>
6 years agoMerge pull request #1173 from etienne-lms/armv7-qemu
davidcunado-arm [Wed, 7 Feb 2018 03:57:19 +0000 (11:57 +0800)]
Merge pull request #1173 from etienne-lms/armv7-qemu

support to boot OP-TEE on AArch32/Armv7+example with Cortex-A15/Qemu

6 years ago[fix] aarch32: optee: define the OP-TEE secure payload
Etienne Carriere [Tue, 6 Feb 2018 09:58:21 +0000 (10:58 +0100)]
[fix] aarch32: optee: define the OP-TEE secure payload

As per MISRA C-2012 Rule 10.4.
arg0 is a u_register_t, can be a 32bit or 64bit upon architecture.

Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
6 years agointerrupt-framework-design.rst: Cosmetic changes
Jeenu Viswambharan [Wed, 10 Jan 2018 14:56:03 +0000 (14:56 +0000)]
interrupt-framework-design.rst: Cosmetic changes

Change-Id: Id2e2800af59ca35fc0c4cfdddd9f5c5afd56a4db
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
6 years agoTSPD: Require NS preemption along with EL3 exception handling
Jeenu Viswambharan [Thu, 11 Jan 2018 14:30:22 +0000 (14:30 +0000)]
TSPD: Require NS preemption along with EL3 exception handling

At present, the build option TSP_NS_INTR_ASYNC_PREEMPT controls how
Non-secure interrupt affects TSPs execution. When TSP is executing:

  1. When TSP_NS_INTR_ASYNC_PREEMPT=0, Non-secure interrupts are received
     at the TSP's exception vector, and TSP voluntarily preempts itself.

  2. When TSP_NS_INTR_ASYNC_PREEMPT=1, Non-secure interrupts causes a
     trap to EL3, which preempts TSP execution.

When EL3 exception handling is in place (i.e.,
EL3_EXCEPTION_HANDLING=1), FIQs are always trapped to EL3. On a system
with GICv3, pending NS interrupts while TSP is executing will be
signalled as FIQ (which traps to EL3). This situation necessitates the
same treatment applied to case (2) above.

Therefore, when EL3 exception handling is in place, additionally
require that TSP_NS_INTR_ASYNC_PREEMPT is set to one 1.

Strictly speaking, this is not required on a system with GICv2, but the
same model is uniformly followed regardless, for simplicity.

Relevant documentation updated.

Change-Id: I928a8ed081fb0ac96e8b1dfe9375c98384da1ccd
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
6 years agoTSPD: Explicitly allow NS preemption for Yielding SMCs
Jeenu Viswambharan [Wed, 10 Jan 2018 15:22:49 +0000 (15:22 +0000)]
TSPD: Explicitly allow NS preemption for Yielding SMCs

When EL3 exception handling is in effect (i.e.,
EL3_EXCEPTION_HANDLING=1), Non-secure interrupts can't preempt Secure
execution. However, for yielding SMCs, preemption by Non-secure
interupts is intended.

This patch therefore adds a call to ehf_allow_ns_preemption() before
dispatching a Yielding SMC to TSP.

Change-Id: Ia3a1ae252f3adc0f14e6d7e0502f251bdb349bdf
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
6 years agoDeprecate one EL3 interrupt routing model with EL3 exception handling
Jeenu Viswambharan [Wed, 10 Jan 2018 15:00:20 +0000 (15:00 +0000)]
Deprecate one EL3 interrupt routing model with EL3 exception handling

When ARM Trusted Firmware is built with EL3_EXCEPTION_HANDLING=1,
EL3 interrupts (INTR_TYPE_EL3) will always preempt both Non-secure and
secure execution.

The interrupt management framework currently treats EL3 interrupt
routing as valid. For the above reason, this patch makes them invalid
when EL3_EXCEPTION_HANDLING is in effect.

Change-Id: I95bca8f5dc8df8eb0ff6f305cfba098611522a39
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
6 years agoAdd EL3_EXCEPTION_HANDLING to build command line
Jeenu Viswambharan [Tue, 6 Feb 2018 07:50:18 +0000 (07:50 +0000)]
Add EL3_EXCEPTION_HANDLING to build command line

Commit 21b818c05fa4ec8cec468aad690267c5be930ccd (BL31: Introduce
Exception Handling Framework) introduced the build option
EL3_EXCEPTION_HANDLING, but missed to pass that to the build command
line. This patch fixes that.

Change-Id: I0a1be2c7b41a81e748ad7d6cf795aab7f6d19193
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
6 years agoMerge pull request #1224 from masahir0y/gzip
davidcunado-arm [Tue, 6 Feb 2018 05:12:28 +0000 (05:12 +0000)]
Merge pull request #1224 from masahir0y/gzip

Support GZIP-compressed images for faster loading and verification

6 years agoqemu: support ARMv7/Cortex-A15
Etienne Carriere [Fri, 2 Feb 2018 12:23:22 +0000 (13:23 +0100)]
qemu: support ARMv7/Cortex-A15

Define Qemu AArch32 implementation for some platform functions
(core position, secondary boot cores, crash console). These are
derived from the AArch64 implementation.

BL31 on Qemu is needed only for ARMv8 and later. On ARMv7, BL32 is
the first executable image after BL2.

Support SP_MIN and OP-TEE as BL32: create a sp_min make script target
in Qemu, define mapping for IMAGE_BL32

Minor fix Qemu return value type for plat_get_ns_image_entrypoint().

Qemu model for the Cortex-A15 does not support the virtualization
extension although the core expects it. To overcome the issue, Qemu
ARMv7 configuration set ARCH_SUPPORTS_VIRTUALIZATION to 0.

Add missing AArch32 assembly macro arm_print_gic_regs from ARM platform
used by the Qemu platform.

Qemu Cortex-A15 model integrates a single cluster with up to 4 cores.

Change-Id: I65b44399071d6f5aa40d5183be11422b9ee9ca15
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
6 years agoaarch32: optee: define the OP-TEE secure payload
Etienne Carriere [Mon, 5 Feb 2018 09:42:42 +0000 (10:42 +0100)]
aarch32: optee: define the OP-TEE secure payload

AArch32 only platforms can boot the OP-TEE secure firmware as
a BL32 secure payload. Such configuration can be defined through
AARCH32_SP=optee.

The source files can rely on AARCH32_SP_OPTEE to condition
OP-TEE boot specific instruction sequences.

OP-TEE does not expect ARM Trusted Firmware formatted structure
as boot argument. Load sequence is expected to have already loaded
to OP-TEE boot arguments into the bl32 entrypoint info structure.

Last, AArch32 platform can only boot AArch32 OP-TEE images.

Change-Id: Ic28eec5004315fc9111051add6bb1a1d607fc815
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
6 years agoMerge pull request #1249 from masahir0y/uniphier
davidcunado-arm [Fri, 2 Feb 2018 22:59:16 +0000 (22:59 +0000)]
Merge pull request #1249 from masahir0y/uniphier

uniphier: fix and improve memory layout

6 years agoaarch32: use lr as bl32 boot argument on aarch32 only systems
Etienne Carriere [Fri, 2 Feb 2018 12:16:18 +0000 (13:16 +0100)]
aarch32: use lr as bl32 boot argument on aarch32 only systems

Add 'lr_svc' as a boot parameter in AArch32 bl1. This is used by Optee
and Trusty to get the non-secure entry point on AArch32 platforms.

This change is not ported in AArch64 mode where the BL31, not BL32,
is in charge of booting the non secure image (BL33).

Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
6 years agoMerge pull request #1253 from dp-arm/dp/amu32
davidcunado-arm [Fri, 2 Feb 2018 11:14:17 +0000 (11:14 +0000)]
Merge pull request #1253 from dp-arm/dp/amu32

AMUv1 support for AArch32

6 years agouniphier: add ULL to physical address literals
Masahiro Yamada [Fri, 2 Feb 2018 06:55:13 +0000 (15:55 +0900)]
uniphier: add ULL to physical address literals

Looks like this is requirement in the pre-merge static analysis.

misra_violation: [Required] MISRA C-2012 Rule 7.2 violation:
Unsigned constants must be declared with U or u suffix.

Adding ULL as requested.  I used ULL() macros for BL*_{BASE,LIMIT}
because they are referenced from linker scripts.

Requested-by: David Cunado <david.cunado@arm.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agouniphier: allocate xlat region of on-chip SRAM only when needed
Masahiro Yamada [Tue, 30 Jan 2018 10:30:39 +0000 (19:30 +0900)]
uniphier: allocate xlat region of on-chip SRAM only when needed

Currently, the xlat region of the on-chip SRAM is always allocated
for all BL images.

The access to the on-chip SRAM is necessary for loading images from
a USB memory device (i.e. when updating firmware), so unneeded for
the usual boot procedure.

To avoid this waste, allocate the xlat region dynamically only for
BL2, and only when it is necessary.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agouniphier: get back original BL31/32 location used before BL2-AT-EL3
Masahiro Yamada [Tue, 30 Jan 2018 09:49:37 +0000 (18:49 +0900)]
uniphier: get back original BL31/32 location used before BL2-AT-EL3

Commit 247fc0435191 ("uniphier: switch to BL2-AT-EL3 and remove BL1
support") accidentally changed the location of BL31 and BL32.  The
new memory map overlaps with the audio DSP images, also gives impact
to OP-TEE.  They are both out of control of ARM Trusted Firmware, so
not easy to change.  This commit restores the image layout that was
originally used prior to the BL2-AT-EL3 migration.

Reported-by: Katsuhiro Suzuki <suzuki.katsuhiro@socionext.com>
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agoMerge pull request #1247 from rockchip-linux/rk3399/fixes-memory-corruptions
davidcunado-arm [Thu, 1 Feb 2018 23:29:34 +0000 (23:29 +0000)]
Merge pull request #1247 from rockchip-linux/rk3399/fixes-memory-corruptions

rockchip/rk3399: Fix memory corruptions or illegal memory access

6 years agoMerge pull request #1245 from antonio-nino-diaz-arm/an/checkpatch
davidcunado-arm [Thu, 1 Feb 2018 18:15:53 +0000 (18:15 +0000)]
Merge pull request #1245 from antonio-nino-diaz-arm/an/checkpatch

Analyze coding style of patches individually

6 years agouniphier: support GZIP-compressed images
Masahiro Yamada [Fri, 26 Jan 2018 02:42:01 +0000 (11:42 +0900)]
uniphier: support GZIP-compressed images

Allow to handle GZIP-compressed images by giving FIP_GZIP=1 from the
command line.

- Images are GZIP-compressed, then packed into FIP.  If Trusted Board
  Boot is enabled, certificates are generated based on the compressed
  images.

- GZIP decompressor is linked into BL2 to decompress images at
  run-time.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agouniphier: add a helper to get image_info
Masahiro Yamada [Thu, 1 Feb 2018 12:37:40 +0000 (21:37 +0900)]
uniphier: add a helper to get image_info

In the next commit, I will have more usecases to get struct image_info
from image ID.  It is better to make a helper function at a different
layer.  I do not need the current uniphier_image_descs_fixup() since
the code is small enough to be squashed into the caller side.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agoimage_decompress: add APIs for decompressing images
Masahiro Yamada [Fri, 26 Jan 2018 02:42:01 +0000 (11:42 +0900)]
image_decompress: add APIs for decompressing images

These APIs are used by platforms that need to decompress images.

image_decompress_init():
  This registers a temporary buffer and a decompressor callback.
  This should be called from platform init code.

image_decompress_prepare():
  This should be called before each compressed image is loaded.  The
  best location to call this will be bl*_plat_handle_pre_image_load().

image_decompress():
  This should be called after each compressed image is loaded.  The
  best location to call this will be bl*_plat_handle_post_image_load().

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agobl1: add bl1_plat_handle_{pre,post}_image_load()
Masahiro Yamada [Thu, 1 Feb 2018 07:46:18 +0000 (16:46 +0900)]
bl1: add bl1_plat_handle_{pre,post}_image_load()

Just like bl2_, add pre/post image load handlers for BL1.  No argument
is needed since BL2 is the only image loaded by BL1.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agobl2: add bl2_plat_handle_pre_image_load()
Masahiro Yamada [Thu, 1 Feb 2018 07:45:51 +0000 (16:45 +0900)]
bl2: add bl2_plat_handle_pre_image_load()

There are cases where we need to manipulate image information before
the load.  For example, for decompressing data, we cannot load the
compressed images to their final destination.  Instead, we need to
load them to the temporary buffer for the decompressor.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agoplat/common: move arch-agnostic fallback functions to C file
Masahiro Yamada [Thu, 1 Feb 2018 09:42:24 +0000 (18:42 +0900)]
plat/common: move arch-agnostic fallback functions to C file

When we add a new callback, we need to duplicate fallbacks among
plat/common/{aarch32,aarch64}/platform_helpers.S  This is tedious.

I created a new C file, then moved 3 functions:
  plat_error_handler
  bl2_plat_preload_setup
  plat_try_next_boot_source

They are called from C, so I do not see a good reason to implement
them in assembly.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agozlib: add gunzip() support
Masahiro Yamada [Fri, 26 Jan 2018 02:42:01 +0000 (11:42 +0900)]
zlib: add gunzip() support

This commit adds some more files to use zlib from TF.

To use zlib, ->zalloc and ->zfree hooks are needed.  The implementation
depends on the system.  For user-space, the libc provides malloc() and
friends.  Unfortunately, ARM Trusted Firmware does not provide malloc()
or any concept of dynamic memory allocation.

I implemented very simple calloc() and free() for this.  Stupidly,
zfree() never frees memory, but it works enough for this.

The purpose of using zlib is to implement gunzip() - this function
takes compressed data from in_buf, then dumps the decompressed data
to oub_buf.  The work_buf is used for memory allocation during the
decompress.  Upon exit, it updates in_buf and out_buf.  If successful,
in_buf points to the end of input data, out_buf to the end of the
decompressed data.

To use this feature, you need to do:

 - include lib/zlib/zlib.mk from your platform.mk

 - add $(ZLIB_SOURCES) to your BL*_SOURCES

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agozlib: import zlib files from zlib 1.2.11
Masahiro Yamada [Fri, 26 Jan 2018 02:42:01 +0000 (11:42 +0900)]
zlib: import zlib files from zlib 1.2.11

Import the following files from zlib 1.2.11:

   adler32.c
   crc32.c
   crc32.h
   inffast.c
   inffast.h
   inffixed.h
   inflate.c
   inflate.h
   inftrees.c
   inftrees.h
   zconf.h
   zlib.h
   zutil.c
   zutil.h

The original tarball is available from http://zlib.net/

The zlib is free software, distributed under the zlib license.  The
license text is included in the "zlib.h" file.  It should be compatible
with BSD-3-Clause.

The zlib license is included in the SPDX license list available at
https://spdx.org/licenses/, but I did not add the SPDX license tag to
the imported files above, to keep them as they are in the upstream
project.  This seems the general policy for ARM Trusted Firmware, as
SPDX License Identifier was not added to files imported from FreeBSD.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agoBuild: add GZIP compression filter
Masahiro Yamada [Fri, 26 Jan 2018 02:42:01 +0000 (11:42 +0900)]
Build: add GZIP compression filter

One typical usage of the pre-tool image filter is data compression,
and GZIP is one of the most commonly used compression methods.
I guess this is generic enough to be put in the common script instead
of platform.mk.

If you want to use this, you can add something like follows to your
platform.mk:

    BL32_PRE_TOOL_FILTER := GZIP
    BL33_PRE_TOOL_FILTER := GZIP

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agoBuild: support pre-tool image processing
Masahiro Yamada [Thu, 1 Feb 2018 07:31:09 +0000 (16:31 +0900)]
Build: support pre-tool image processing

There are cases where we want to process images before they are
passed to cert_create / fiptool.

My main motivation is data compression.  By compressing images, we can
save data storage, and possibly speed up loading images.  The image
verification will also get faster because certificates are generated
based on compressed images.

Other image transformation filters (for ex. encryption), and their
combinations would be possible.  So, our build system should support
transformation filters in a generic manner.

The choice of applied filters is up to platforms (so specified in
platform.mk)

To define a new filter, <FILTER_NAME>_RULE and <FILTER_NAME>_SUFFIX
are needed.

For example, the GZIP compression filter can be implemented as follows:

------------------------>8------------------------
define GZIP_RULE
$(1): $(2)
        @echo "  GZIP    $$@"
        $(Q)gzip -n -f -9 $$< --stdout > $$@
endef

GZIP_SUFFIX := .gz
------------------------>8------------------------

The _RULE defines how to create the target $(1) from the source $(2).
The _SUFFIX defines the extension appended to the processed image path.
The suffix is not so important because the file name information is not
propagated to FIP, but adding a sensible suffix will be good to classify
the data file.

Platforms can specify which filter is applied to which BL image, like
this:

------------------------>8------------------------
BL32_PRE_TOOL_FILTER := GZIP
BL33_PRE_TOOL_FILTER := GZIP
------------------------>8------------------------

<IMAGE_NAME>_PRE_TOOL_FILTER specifies per-image filter.  With this,
different images can be transformed differently.  For the case above,
only BL32 and BL33 are GZIP-compressed.  Nothing is done for other
images.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agoBuild: change the first parameter of TOOL_ADD_IMG to lowercase
Masahiro Yamada [Fri, 26 Jan 2018 02:42:01 +0000 (11:42 +0900)]
Build: change the first parameter of TOOL_ADD_IMG to lowercase

In the next commit, I need the image name in lowercase because
output files are generally named in lowercase.

Unfortunately, TOOL_ADD_IMG takes the first argument in uppercase
since we generally use uppercase Make variables.

make_helpers/build_macros.mk provides 'uppercase' macro to convert
a string into uppercase, but 'lowercase' does not exist.  We can
implement it if we like, but it would be more straightforward to
change the argument of TOOL_ADD_IMG.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agoBuild: make tools depend on $(BIN) instead of PHONY target
Masahiro Yamada [Fri, 26 Jan 2018 02:42:01 +0000 (11:42 +0900)]
Build: make tools depend on $(BIN) instead of PHONY target

The PHONY target "bl*" generate $(BIN) and $(DUMP), but host tools
(fiptool, cert_create) only need $(BIN).

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agoBuild: remove third argument of CERT_ADD_CMD_OPT
Masahiro Yamada [Fri, 26 Jan 2018 02:42:01 +0000 (11:42 +0900)]
Build: remove third argument of CERT_ADD_CMD_OPT

The third argument was given "true" by images, but it was moved
to TOOL_ADD_PAYLOAD.  No more caller of CERT_ADD_CMD_OPT uses this.
So, the third argument is always empty.  Remove it.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agoBuild: rename FIP_ADD_IMG to TOOL_ADD_IMG
Masahiro Yamada [Fri, 26 Jan 2018 02:42:01 +0000 (11:42 +0900)]
Build: rename FIP_ADD_IMG to TOOL_ADD_IMG

Now FIP_ADD_IMG takes care of both fiptool and cert_create
symmetrically.  Rename it so that it matches the behavior.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agoBuild: rename FIP_ADD_PAYLOAD to TOOL_ADD_PAYLOAD
Masahiro Yamada [Fri, 26 Jan 2018 02:42:01 +0000 (11:42 +0900)]
Build: rename FIP_ADD_PAYLOAD to TOOL_ADD_PAYLOAD

Now FIP_ADD_PAYLOAD takes care of both fiptool and cert_create
symmetrically.  Rename it so that it matches the behavior.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agoBuild: move cert_create arguments and dependency to FIP_ADD_PAYLOAD
Masahiro Yamada [Fri, 26 Jan 2018 02:42:01 +0000 (11:42 +0900)]
Build: move cert_create arguments and dependency to FIP_ADD_PAYLOAD

The fiptool and cert_create use the same command options for images.
It is pretty easy to handle both in the same, symmetrical way.

Move CRT_ARGS and CRT_DEPS to FIP_ADD_PAYLOAD.  This refactoring makes
sense because FIP_ADD_PAYLOAD is called from MAKE_BL (when building
images from source), and from FIP_ADD_IMG (when including external
images).  (FIP_ADD_PAYLOAD will be renamed later on since it now
caters to both fiptool and cert_create).

We can delete CERT_ADD_CMD_OPT for images in tbbr.mk.  It still
needs to call CERT_ADD_CMD_OPT directly for certificates.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agoBuild: rip off unneeded $(eval ...) from buid macros
Masahiro Yamada [Fri, 26 Jan 2018 02:42:01 +0000 (11:42 +0900)]
Build: rip off unneeded $(eval ...) from buid macros

The callers of these macros are supposed to use $(eval $(call, ...)).
The $(eval ...) on the callee side is unneeded.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agoBuild: merge build macros between FIP_ and FWU_FIP_
Masahiro Yamada [Fri, 26 Jan 2018 02:42:01 +0000 (11:42 +0900)]
Build: merge build macros between FIP_ and FWU_FIP_

The build system supports generating two FIP images, fip and fwu_fip.
Accordingly, we have similar build macros.

   FIP_ADD_PAYLOAD   <-->  FWU_FIP_ADD_PAYLOAD
   CERT_ADD_CMD_OPT  <-->  FWU_CERT_ADD_CMD_OPT
   FIP_ADD_IMG       <-->  FWU_FIP_ADD_IMG

The duplicated code increases the maintenance burden.  Also, the build
rule of BL2U looks clumsy - we want to call MAKE_BL to compile it from
source files, but we want to put it in fwu_fip.  We can not do it in a
single macro call since the current MAKE_BL does not support fwu_fip.

To refactor those in a clean way is to support one more argument to
specify the FIP prefix.  If it is empty, the images are targeted to
fip, whereas if the argument is "FWU_", targeted to fwu_fip.

The build macros prefixed with FWU_ go away.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agoBuild: squash MAKE_TOOL_ARGS into MAKE_BL
Masahiro Yamada [Fri, 26 Jan 2018 02:42:01 +0000 (11:42 +0900)]
Build: squash MAKE_TOOL_ARGS into MAKE_BL

Now, MAKE_TOOL_ARGS is only called from MAKE_BL.  Squash it.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agoBuild: refactor BL32 build rules
Masahiro Yamada [Fri, 26 Jan 2018 02:42:01 +0000 (11:42 +0900)]
Build: refactor BL32 build rules

This complicated if-conditional combo was introduced by commit
70d1fc5383b9 ("Fix build error when `BL32` is not defined") in order
to fix the compile error of "make all" when SPD=opteed is given.

The requirement for the build system is like follows:

 - If both BL32 and BL32_SOURCES are defined, the former takes
   precedence.

 - If BL32 is undefined but BL32_SOURCES is defined, we compile
   BL32 from the source files.

 - We want to let the build fail if neither of them is defined,
   but we want to check it only when we are building FIP.

Refactor the code to not call FIP_ADD_IMG twice.  The behavior is
still the same.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agoBuild: replace $(call MAKE_TOOL_ARGS,...) with $(call FIP_ADD_IMG,...)
Masahiro Yamada [Fri, 26 Jan 2018 02:42:01 +0000 (11:42 +0900)]
Build: replace $(call MAKE_TOOL_ARGS,...) with $(call FIP_ADD_IMG,...)

We use $(call MAKE_TOOL_ARGS,...) or $(call FIP_ADD_IMG,...) where we
expect externally built images.  The difference between the two is
check_* target.  It now checks if the given path exists, so it is a
good thing to use $(call FIP_ADD_IMG,...) in all the places.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agoBuild: check if specified external image exists
Masahiro Yamada [Fri, 26 Jan 2018 02:42:01 +0000 (11:42 +0900)]
Build: check if specified external image exists

check_* targets check if the required option are given, but do not
check the validity of the argument.  If the specified file does not
exist, let the build fail immediately instead of passing the invalid
file path to tools.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agoMerge pull request #1240 from dp-arm/dp/smccc
davidcunado-arm [Thu, 1 Feb 2018 10:39:05 +0000 (10:39 +0000)]
Merge pull request #1240 from dp-arm/dp/smccc

Implement support for SMCCC v1.1 and optimize security mitigations for CVE-2017-5715 on AArch64

6 years agoMerge pull request #1236 from dbasehore/gic-save-restore
davidcunado-arm [Thu, 1 Feb 2018 08:58:23 +0000 (08:58 +0000)]
Merge pull request #1236 from dbasehore/gic-save-restore

RK3399 GIC save/restore

6 years agomisc_helpers: fix zero_normalmem() for BL2_AT_EL3
Masahiro Yamada [Thu, 1 Feb 2018 04:17:29 +0000 (13:17 +0900)]
misc_helpers: fix zero_normalmem() for BL2_AT_EL3

The assertion in zero_normalmem() fails for BL2_AT_EL3.  This mode is
executed in EL3, so it should check sctlr_el3 instead of sctlr_el1.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
6 years agoAMU: Implement context save/restore for aarch32
Joel Hutton [Thu, 21 Dec 2017 15:21:20 +0000 (15:21 +0000)]
AMU: Implement context save/restore for aarch32

Add amu_context_save() and amu_context_restore() functions for aarch32

Change-Id: I4df83d447adeaa9d9f203e16dc5a919ffc04d87a
Signed-off-by: Joel Hutton <joel.hutton@arm.com>
6 years agoAMU: Add assembler helper functions for aarch32
Joel Hutton [Tue, 12 Dec 2017 15:47:55 +0000 (15:47 +0000)]
AMU: Add assembler helper functions for aarch32

Change-Id: Id6dfe885a63561b1d2649521bd020367b96ae1af
Signed-off-by: Joel Hutton <joel.hutton@arm.com>
6 years agoMerge pull request #1242 from afaerber/fiptool-hikey-pad
davidcunado-arm [Tue, 30 Jan 2018 20:50:16 +0000 (20:50 +0000)]
Merge pull request #1242 from afaerber/fiptool-hikey-pad

fiptool: Fix use after free

6 years agoMerge pull request #1220 from jwerner-chromium/JW_ld_bfd
davidcunado-arm [Tue, 30 Jan 2018 12:45:52 +0000 (12:45 +0000)]
Merge pull request #1220 from jwerner-chromium/JW_ld_bfd

Makefile: Use ld.bfd linker if available

6 years agoMerge pull request #1248 from stevecapperarm/fixes/pie-logic
davidcunado-arm [Tue, 30 Jan 2018 11:15:20 +0000 (11:15 +0000)]
Merge pull request #1248 from stevecapperarm/fixes/pie-logic

Correct the Makefile logic for disabling PIE

6 years agoMerge pull request #1235 from jwerner-chromium/JW_udelay
davidcunado-arm [Tue, 30 Jan 2018 08:59:35 +0000 (08:59 +0000)]
Merge pull request #1235 from jwerner-chromium/JW_udelay

Fix udelay issues that can make duration slightly too short

6 years agorockchip/rk3399: Fix memory corruptions or illegal memory access
Caesar Wang [Tue, 30 Jan 2018 01:11:24 +0000 (09:11 +0800)]
rockchip/rk3399: Fix memory corruptions or illegal memory access

Coverity scan done for the coreboot project found the issue:
Coverity (*** CID 1385418: Memory - illegal accesses (OVERRUN))
Coverity (*** CID 1385419: Memory - corruptions  (OVERRUN))

Fix the Converity error issue with store_cru[] loop needs to be one
element bigger.

Fixes: ARM-software/tf-issues#544
Change-Id: I420f0a660b24baaa5fc5e78fca242cf750c9bbc7
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
6 years agoMerge pull request #1237 from sandrine-bailleux-arm/sb/spm-timer
davidcunado-arm [Mon, 29 Jan 2018 23:16:27 +0000 (23:16 +0000)]
Merge pull request #1237 from sandrine-bailleux-arm/sb/spm-timer

SPM: Map devices in the 1st GB

6 years agoMerge pull request #1246 from sandrine-bailleux-arm/topics/sb/fix-cnp-doc
davidcunado-arm [Mon, 29 Jan 2018 22:46:27 +0000 (22:46 +0000)]
Merge pull request #1246 from sandrine-bailleux-arm/topics/sb/fix-cnp-doc

Fix documentation for CnP bit

6 years agoMerge pull request #1243 from afaerber/hikey-docs
davidcunado-arm [Mon, 29 Jan 2018 22:45:35 +0000 (22:45 +0000)]
Merge pull request #1243 from afaerber/hikey-docs

docs: hikey: Fix typo

6 years agoMakefile: Use ld.bfd linker if available
Julius Werner [Wed, 10 Jan 2018 23:12:47 +0000 (15:12 -0800)]
Makefile: Use ld.bfd linker if available

Some toolchain distributions install both the BFD and GOLD linkers under
the names <target>-ld.bfd and <target>-ld.gold. <target>-ld will then be
a symlink that may point to either one of these.

Trusted Firmware should always be linked with the BFD linker, since GOLD
is meant primarily for userspace programs and doesn't support many of
the more obscure linker script features that may be needed for firmware.
With this patch the Makefile will auto-detect if ld.bfd is available and
use it explicitly in that case.

Change-Id: I7017055f67db3bd57d191d20a7af06ca646937d7
Signed-off-by: Julius Werner <jwerner@chromium.org>
6 years agoFix documentation for CnP bit
Sandrine Bailleux [Mon, 29 Jan 2018 13:48:15 +0000 (14:48 +0100)]
Fix documentation for CnP bit

The CnP bit documentation in the Firmware Design Guide incorrectly
used the term "Page Entries" instead of "Processing Elements".
Fix that.

Change-Id: Ie44ee99c281b7b1a9ad90fba2c7d109f12425507
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>