project/bcm63xx/atf.git
7 years agoAdd support to link an external lib with ARM TF
Soby Mathew [Wed, 10 May 2017 10:48:04 +0000 (11:48 +0100)]
Add support to link an external lib with ARM TF

This patch defines the variable `LDLIBS` which allows external
libraries to be specified to 'ld' to enable it to link the
libraries.

Change-Id: I02a490eca1074063d00153ccb0ee974ef8859a0e
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
7 years agoMerge pull request #1008 from douglas-raillard-arm/dr/add_TF_LDFLAGS
danh-arm [Wed, 28 Jun 2017 14:50:20 +0000 (15:50 +0100)]
Merge pull request #1008 from douglas-raillard-arm/dr/add_TF_LDFLAGS

Introduce TF_LDFLAGS and improve CFLAGS documentation

7 years agoDocument CFLAGS make option
Douglas Raillard [Thu, 22 Jun 2017 14:03:50 +0000 (15:03 +0100)]
Document CFLAGS make option

CFLAGS content can be set on the command line to allow passing extra
options to the compiler. Its content is appended after the options set
by the Makefile (TF_CFLAGS).

The Makefiles must use TF_CFLAGS instead of CFLAGS, as the latter can be
completely overriden by setting it on the command line.

Also tell about LDFLAGS in the "Debugging options" section.

Change-Id: Iaf27b424002898ef3040133f78cb133983a37aee
Signed-off-by: Douglas Raillard <douglas.raillard@arm.com>
7 years agoIntroduce TF_LDFLAGS
Douglas Raillard [Thu, 22 Jun 2017 13:44:48 +0000 (14:44 +0100)]
Introduce TF_LDFLAGS

Use TF_LDFLAGS from the Makefiles, and still append LDFLAGS as well to
the compiler's invocation. This allows passing extra options from the
make command line using LDFLAGS.

Document new LDFLAGS Makefile option.

Change-Id: I88c5ac26ca12ac2b2d60a6f150ae027639991f27
Signed-off-by: Douglas Raillard <douglas.raillard@arm.com>
7 years agoMerge pull request #1009 from islmit01/im/aarch32_juno
danh-arm [Wed, 28 Jun 2017 13:51:37 +0000 (14:51 +0100)]
Merge pull request #1009 from islmit01/im/aarch32_juno

Add Juno AArch32 and AArch64 User Guide instructions

7 years agoAdd Juno AArch32 and AArch64 User Guide instructions
Isla Mitchell [Mon, 26 Jun 2017 13:25:44 +0000 (14:25 +0100)]
Add Juno AArch32 and AArch64 User Guide instructions

Updated section 6, building a FIP for Juno and FVP, adding
instructions for AArch32 and AArch64.

Updated section 4.1, summary of build options, to include a
description of the `JUNO_AARCH32_EL3_RUNTIME` build flag.

Change-Id: I4ed006522cab981371c382859063f088fbfcb8f7
Signed-off-by: Isla Mitchell <isla.mitchell@arm.com>
7 years agoMerge pull request #1006 from robertovargas-arm/doc-format
danh-arm [Wed, 28 Jun 2017 12:48:31 +0000 (13:48 +0100)]
Merge pull request #1006 from robertovargas-arm/doc-format

Improve format of exception vectors in BL1 description

7 years agoMerge pull request #1004 from rockchip-linux/erratum-rk3399
danh-arm [Wed, 28 Jun 2017 12:48:14 +0000 (13:48 +0100)]
Merge pull request #1004 from rockchip-linux/erratum-rk3399

rockchip: enable A53's erratum 855873 for rk3399

7 years agoMerge pull request #1003 from douglas-raillard-arm/dr/doc_fix_broken_link
danh-arm [Wed, 28 Jun 2017 12:47:57 +0000 (13:47 +0100)]
Merge pull request #1003 from douglas-raillard-arm/dr/doc_fix_broken_link

Fix broken link in documentation

7 years agoMerge pull request #1002 from douglas-raillard-arm/dr/fix_errata_a53
danh-arm [Wed, 28 Jun 2017 12:47:40 +0000 (13:47 +0100)]
Merge pull request #1002 from douglas-raillard-arm/dr/fix_errata_a53

Apply workarounds for A53 Cat A Errata 835769 and 843419

7 years agoMerge pull request #1001 from davidcunado-arm/dc/fix-signed-comparisons
danh-arm [Wed, 28 Jun 2017 12:46:46 +0000 (13:46 +0100)]
Merge pull request #1001 from davidcunado-arm/dc/fix-signed-comparisons

Resolve signed-unsigned comparison issues

7 years agoMerge pull request #978 from etienne-lms/minor-build
danh-arm [Wed, 28 Jun 2017 12:46:19 +0000 (13:46 +0100)]
Merge pull request #978 from etienne-lms/minor-build

Minor build fixes

7 years agoImprove format of exception vectors in BL1 description
Roberto Vargas [Mon, 19 Jun 2017 08:39:09 +0000 (09:39 +0100)]
Improve format of exception vectors in BL1 description

Without the additional newlines all the text becomes a single paragraph
and next newlines are ignored.

Change-Id: I783198477f654e3923fcabb21248f2bc62c33e9d
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
7 years agorockchip: enable A53's erratum 855873 for rk3399
Caesar Wang [Wed, 28 Jun 2017 00:40:26 +0000 (08:40 +0800)]
rockchip: enable A53's erratum 855873 for rk3399

For rk3399, the L2ACTLR[14] is 0 by default, as ACE CCI-500 doesn't
support WriteEvict. and you will hit the condition L2ACTLR[3] with 0,
as the Evict transactions should propagate to CCI-500 since it has
snoop filters.

Maybe this erratum applies to all Cortex-A53 cores so far, especially
if RK3399's A53 is a r0p4. we should enable it to avoid data corruption,

Change-Id: Ib86933f1fc84f8919c8e43dac41af60fd0c3ce2f
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
7 years agoMerge pull request #1000 from dp-arm/dp/aarch32-boot
davidcunado-arm [Tue, 27 Jun 2017 22:10:47 +0000 (23:10 +0100)]
Merge pull request #1000 from dp-arm/dp/aarch32-boot

juno/aarch32: Fix boot on Cortex A57 and A72

7 years agoFix broken link in documentation
Douglas Raillard [Thu, 22 Jun 2017 14:36:02 +0000 (15:36 +0100)]
Fix broken link in documentation

Fix link in docs/firmware-update.md and docs/change-log.md:
https://github.com/ARM-software/arm-trusted-firmware/wiki/ARM-Trusted-Firmware-Image-Terminology

Change-Id: I2d51d373fd0f7da59b548cd6bed52c47772014fd
Signed-off-by: Douglas Raillard <douglas.raillard@arm.com>
7 years agoResolve signed-unsigned comparison issues
David Cunado [Wed, 21 Jun 2017 15:52:45 +0000 (16:52 +0100)]
Resolve signed-unsigned comparison issues

A recent commit 030567e6f51731982a7e71cbd387de93bc0e35fd added U()/ULL()
macro to TF constants. This has caused some signed-unsigned comparison
warnings / errors in the TF static analysis.

This patch addresses these issues by migrating impacted variables from
signed ints to unsigned ints and vice verse where applicable.

Change-Id: I4b4c739a3fa64aaf13b69ad1702c66ec79247e53
Signed-off-by: David Cunado <david.cunado@arm.com>
7 years agoMerge pull request #999 from douglas-raillard-arm/dr/fix_tegra_CFLAGS
davidcunado-arm [Tue, 27 Jun 2017 08:51:56 +0000 (09:51 +0100)]
Merge pull request #999 from douglas-raillard-arm/dr/fix_tegra_CFLAGS

Fix Tegra CFLAGS usage

7 years agojuno: Invalidate all caches before warm reset to AArch32 state.
Dimitris Papastamos [Mon, 19 Jun 2017 13:15:31 +0000 (14:15 +0100)]
juno: Invalidate all caches before warm reset to AArch32 state.

On Juno AArch32, the L2 cache may contain garbage after the warm reset
from AArch64 to AArch32.  This is all fine until the MMU is configured
and the data caches enabled.  To avoid fetching stale data from the L2
unified cache, invalidate it before the warm reset to AArch32 state.

Change-Id: I7d27e810692c02c3e83c9f31de67f6bae59a960a
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
7 years agojuno/aarch32: Restore `SCP_BOOT_CFG_ADDR` to the cold boot value
Dimitris Papastamos [Wed, 14 Jun 2017 13:47:36 +0000 (14:47 +0100)]
juno/aarch32: Restore `SCP_BOOT_CFG_ADDR` to the cold boot value

Before BL2 loads the SCP ram firmware, `SCP_BOOT_CFG_ADDR` specifies
the primary core.  After the SCP ram firmware has started executing,
`SCP_BOOT_CFG_ADDR` is modified.  This is not normally an issue but
the Juno AArch32 boot flow is a special case.  BL1 does a warm reset
into AArch32 and the core jumps to the `sp_min` entrypoint.  This is
effectively a `RESET_TO_SP_MIN` configuration.  `sp_min` has to be
able to determine the primary core and hence we need to restore
`SCP_BOOT_CFG_ADDR` to the cold boot value before `sp_min` runs.

This magically worked when booting on A53 because the core index was
zero and it just so happened to match with the new value in
`SCP_BOOT_CFG_ADDR`.

Change-Id: I105425c680cf6238948625c1d1017b01d3517c01
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
7 years agoMerge pull request #994 from soby-mathew/sm/fwu_fix
davidcunado-arm [Mon, 26 Jun 2017 08:54:24 +0000 (09:54 +0100)]
Merge pull request #994 from soby-mathew/sm/fwu_fix

Fix FWU and cache helper optimization

7 years agoMerge pull request #976 from etienne-lms/minor-psci
davidcunado-arm [Fri, 23 Jun 2017 13:42:06 +0000 (14:42 +0100)]
Merge pull request #976 from etienne-lms/minor-psci

psci: minor fixes in lib

7 years agoMerge pull request #997 from dp-arm/dp/spe
davidcunado-arm [Fri, 23 Jun 2017 11:48:11 +0000 (12:48 +0100)]
Merge pull request #997 from dp-arm/dp/spe

aarch64: Enable Statistical Profiling Extensions for lower ELs

7 years agoFix Tegra CFLAGS usage
Douglas Raillard [Thu, 22 Jun 2017 13:47:01 +0000 (14:47 +0100)]
Fix Tegra CFLAGS usage

Use TF_CFLAGS instead of CFLAGS, to allow CFLAGS to be overriden from
the make command line.

Change-Id: I3e5726c04bcd0176f232581b8be2c94413374ac7
Signed-off-by: Douglas Raillard <douglas.raillard@arm.com>
7 years agoMerge pull request #995 from davidcunado-arm/dc/init_reg
davidcunado-arm [Fri, 23 Jun 2017 07:39:19 +0000 (08:39 +0100)]
Merge pull request #995 from davidcunado-arm/dc/init_reg

Fully initialise essential control registers

7 years agoio_dummy: correct sparse warnings
Etienne Carriere [Wed, 7 Jun 2017 14:45:15 +0000 (16:45 +0200)]
io_dummy: correct sparse warnings

Include io_dummy.h header file.
Use static for device_type_dummy function.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
7 years agoio_storage: use unsigned int for index
Etienne Carriere [Wed, 7 Jun 2017 14:43:19 +0000 (16:43 +0200)]
io_storage: use unsigned int for index

This change avoids warning about type conversion.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
7 years agoPSCI: use same function prototype as in header file
Etienne Carriere [Wed, 7 Jun 2017 14:42:42 +0000 (16:42 +0200)]
PSCI: use same function prototype as in header file

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
7 years agodelay_timer: correct sparse issues and warnings
Etienne Carriere [Wed, 7 Jun 2017 14:42:26 +0000 (16:42 +0200)]
delay_timer: correct sparse issues and warnings

Use NULL instead of 0 where required.
Include headers to have the prototype of the functions.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
7 years agobl1: include bl1_private.h in aarch* files
Etienne Carriere [Wed, 7 Jun 2017 14:41:50 +0000 (16:41 +0200)]
bl1: include bl1_private.h in aarch* files

This change avoids warnings when setting -Wmissing-prototypes or when
using sparse tool.

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
7 years agocontext_mgmt: declare extern cm_set_next_context() for AArch32
Etienne Carriere [Fri, 23 Jun 2017 07:37:49 +0000 (09:37 +0200)]
context_mgmt: declare extern cm_set_next_context() for AArch32

This change avoids warning when setting -Wmissing-prototypes to
compile bl1_context_mgmt.c.

Reported-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
7 years agobl: security_state should be of type unsigned int
Etienne Carriere [Wed, 7 Jun 2017 14:45:42 +0000 (16:45 +0200)]
bl: security_state should be of type unsigned int

security_state is either 0 or 1. Prevent sign conversion potential
error (setting -Werror=sign-conversion results in a build error).

Signed-off-by: Yann Gautier <yann.gautier@st.com>
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
7 years agopsci: minor fixes in lib
Etienne Carriere [Thu, 22 Jun 2017 20:10:32 +0000 (22:10 +0200)]
psci: minor fixes in lib

Call svc_suspend_finish if registered.
psci_get_stat() is static to psci_stat.c
Fix types used in comparison.
Fix coding style (empty line between variable definition and instructions
block).

Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
7 years agoMerge pull request #996 from dp-arm/dp/aarch32-813419
davidcunado-arm [Thu, 22 Jun 2017 20:07:26 +0000 (21:07 +0100)]
Merge pull request #996 from dp-arm/dp/aarch32-813419

aarch32: Apply workaround for errata 813419 of Cortex-A57

7 years agoApply workarounds for A53 Cat A Errata 835769 and 843419
Douglas Raillard [Mon, 19 Jun 2017 14:38:02 +0000 (15:38 +0100)]
Apply workarounds for A53 Cat A Errata 835769 and 843419

These errata are only applicable to AArch64 state. See the errata notice
for more details:
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.epm048406/index.html

Introduce the build options ERRATA_A53_835769 and ERRATA_A53_843419.
Enable both of them for Juno.

Apply the 835769 workaround as following:
* Compile with -mfix-cortex-a53-835769
* Link with --fix-cortex-a53-835769

Apply the 843419 workaround as following:
* Link with --fix-cortex-a53-843419

The erratum 843419 workaround can lead the linker to create new sections
suffixed with "*.stub*" and 4KB aligned. The erratum 835769 can lead the
linker to create new "*.stub" sections with no particular alignment.

Also add support for LDFLAGS_aarch32 and LDFLAGS_aarch64 in Makefile for
architecture-specific linker options.

Change-Id: Iab3337e338b7a0a16b0d102404d9db98c154f8f8
Signed-off-by: Douglas Raillard <douglas.raillard@arm.com>
7 years agoaarch32: Apply workaround for errata 813419 of Cortex-A57
Dimitris Papastamos [Tue, 20 Jun 2017 08:25:10 +0000 (09:25 +0100)]
aarch32: Apply workaround for errata 813419 of Cortex-A57

TLBI instructions for monitor mode won't have the desired effect under
specific circumstances in Cortex-A57 r0p0. The workaround is to
execute DSB and TLBI twice each time.

Even though this errata is only needed in r0p0, the current errata
framework is not prepared to apply run-time workarounds. The current one
is always applied if compiled in, regardless of the CPU or its revision.

The `DSB` instruction used when initializing the translation tables has
been changed to `DSB ISH` as an optimization and to be consistent with
the barriers used for the workaround.

NOTE: This workaround is present in AArch64 TF and already enabled by
default on Juno.

Change-Id: I10b0baa304ed64b13b7b26ea766e61461e759dfa
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
7 years agoMerge pull request #990 from masahir0y/uniphier
davidcunado-arm [Thu, 22 Jun 2017 14:12:20 +0000 (15:12 +0100)]
Merge pull request #990 from masahir0y/uniphier

uniphier: embed ROTPK hash into BL1/BL2

7 years agoMerge pull request #988 from Leo-Yan/fix_cpu_off_v1
davidcunado-arm [Thu, 22 Jun 2017 14:09:51 +0000 (15:09 +0100)]
Merge pull request #988 from Leo-Yan/fix_cpu_off_v1

plat: Hikey960: fix the CPU hotplug

7 years agoaarch64: Enable Statistical Profiling Extensions for lower ELs
dp-arm [Tue, 23 May 2017 08:32:49 +0000 (09:32 +0100)]
aarch64: Enable Statistical Profiling Extensions for lower ELs

SPE is only supported in non-secure state.  Accesses to SPE specific
registers from SEL1 will trap to EL3.  During a world switch, before
`TTBR` is modified the SPE profiling buffers are drained.  This is to
avoid a potential invalid memory access in SEL1.

SPE is architecturally specified only for AArch64.

Change-Id: I04a96427d9f9d586c331913d815fdc726855f6b0
Signed-off-by: dp-arm <dimitris.papastamos@arm.com>
7 years agoFully initialise essential control registers
David Cunado [Thu, 13 Apr 2017 21:38:29 +0000 (22:38 +0100)]
Fully initialise essential control registers

This patch updates the el3_arch_init_common macro so that it fully
initialises essential control registers rather then relying on hardware
to set the reset values.

The context management functions are also updated to fully initialise
the appropriate control registers when initialising the non-secure and
secure context structures and when preparing to leave EL3 for a lower
EL.

This gives better alignement with the ARM ARM which states that software
must initialise RES0 and RES1 fields with 0 / 1.

This patch also corrects the following typos:

"NASCR definitions" -> "NSACR definitions"

Change-Id: Ia8940b8351dc27bc09e2138b011e249655041cfc
Signed-off-by: David Cunado <david.cunado@arm.com>
7 years agoExit early if size zero for cache helpers
Soby Mathew [Thu, 15 Jun 2017 15:18:45 +0000 (16:18 +0100)]
Exit early if size zero for cache helpers

This patch enables cache helper functions `flush_dcache_range`,
`clean_dcache_range` and `invalidate_dcache_range` to exit early
if the size argument specified is zero

Change-Id: I0b63e8f4bd3d47ec08bf2a0b0b9a7ff8a269a9b0
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
7 years agoFix issues in FWU code
Soby Mathew [Thu, 15 Jun 2017 15:11:48 +0000 (16:11 +0100)]
Fix issues in FWU code

This patch fixes the following issues in Firmware Update (FWU) code:

1. The FWU layer maintains a list of loaded image ids and
   while checking for image overlaps, INVALID_IMAGE_IDs were not
   skipped. The patch now adds code to skip INVALID_IMAGE_IDs.

2. While resetting the state corresponding to an image, the code
   now resets the memory used by the image only if the image were
   copied previously via IMAGE_COPY smc. This prevents the invalid
   zeroing of image memory which are not copied but are directly
   authenticated via IMAGE_AUTH smc.

Change-Id: Idf18e69bcba7259411c88807bd0347d59d9afb8f
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
7 years agoMerge pull request #983 from dp-arm/dp/aarch32-errata
davidcunado-arm [Tue, 20 Jun 2017 21:05:48 +0000 (22:05 +0100)]
Merge pull request #983 from dp-arm/dp/aarch32-errata

aarch32: Implement errata workarounds for Cortex A53 and A57

7 years agouniphier: embed ROTPK hash into BL1/BL2
Masahiro Yamada [Wed, 14 Jun 2017 11:38:12 +0000 (20:38 +0900)]
uniphier: embed ROTPK hash into BL1/BL2

Currently, ROTPK_NOT_DEPLOYED flag is set in plat_get_rotpk_info().
It is up to users how to retrieve ROTPK if the ROT verification is
desired.  This is not nice.

This commit improves plat_get_rotpk_info() implementation and automates
the ROTPK deployment.  UniPhier platform has no ROTPK storage, so it
should be embedded in BL1/BL2, like ARM_ROTPK_LOCATION=devel_rsa case.
This makes sense because UniPhier platform implements its internal ROM
i.e. BL1 is used as updatable pseudo ROM.

Things work like this:

- ROT_KEY (default: $(BUILD_PLAT)/rot_key.pem) is created if missing.
  Users can override ROT_KEY from the command line if they want to
  use a specific ROT key.

- ROTPK_HASH is generated based on ROT_KEY.

- ROTPK_HASH is included by uniphier_rotpk.S and compiled into BL1/BL2.

- ROT_KEY is input to cert_create tool.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
7 years agoMerge pull request #992 from davidcunado-arm/dc/fix-signed-comparisons
davidcunado-arm [Tue, 20 Jun 2017 14:34:54 +0000 (15:34 +0100)]
Merge pull request #992 from davidcunado-arm/dc/fix-signed-comparisons

xlat_tables_v2: fix signed/unsigned comparisons

7 years agojuno: Fix AArch32 build
Dimitris Papastamos [Mon, 19 Jun 2017 14:54:58 +0000 (15:54 +0100)]
juno: Fix AArch32 build

Commit 6de8b24f52cf2bd74adefbaa86dd2a0676c3eaa2 broke Juno AArch32
build.

Change-Id: Ied70d9becb86e53ccb46a2e3245e2a551d1bf701
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
7 years agoaarch32: Fix L2CTRL definition for Cortex A57 and A72
Dimitris Papastamos [Tue, 13 Jun 2017 11:33:39 +0000 (12:33 +0100)]
aarch32: Fix L2CTRL definition for Cortex A57 and A72

Fixes ARM-software/tf-issues#495

Change-Id: I6a0aea78f670cc199873218a18af1d9cc2a6fafd
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
7 years agoaarch32: Implement errata workarounds for Cortex A57
Dimitris Papastamos [Mon, 5 Jun 2017 13:55:41 +0000 (14:55 +0100)]
aarch32: Implement errata workarounds for Cortex A57

This brings the implementation on par with the software
errata workarounds for AArch64.

Change-Id: I98a85fd92e32ae4259f4ec5b3e93cffc87090064
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
7 years agoaarch32: Implement errata workarounds for Cortex A53
Dimitris Papastamos [Mon, 5 Jun 2017 12:37:25 +0000 (13:37 +0100)]
aarch32: Implement errata workarounds for Cortex A53

This brings the implementation on par with the software
errata workarounds for AArch64.

Change-Id: Id103602e35b1c0ad3705a5b2b7cdb34dd8a8c5e2
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
7 years agoaarch32: Implement cpu_rev_var_hs()
Dimitris Papastamos [Mon, 5 Jun 2017 12:36:34 +0000 (13:36 +0100)]
aarch32: Implement cpu_rev_var_hs()

Helper function to assist with errata workaround application.

Change-Id: Idba42ca238442cc826f43444dbfa754e433a5e5e
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
7 years agosp_min: Flush console at end of main()
Dimitris Papastamos [Wed, 7 Jun 2017 11:22:01 +0000 (12:22 +0100)]
sp_min: Flush console at end of main()

Flush the console so the errata report is printed correctly
before exit to normal world.

Change-Id: Idd6b5199b5fb8bda9d16a7b5c6426cdda7c73167
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
7 years agosp_min: Implement `sp_min_plat_runtime_setup()`
Dimitris Papastamos [Wed, 7 Jun 2017 12:45:41 +0000 (13:45 +0100)]
sp_min: Implement `sp_min_plat_runtime_setup()`

On ARM platforms before exiting from SP_MIN ensure that
the default console is switched to the runtime serial port.

Change-Id: I0ca0d42cc47e345d56179eac16aa3d6712767c9b
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
7 years agoxlat_tables_v2: fix signed/unsigned comparisons
Varun Wadekar [Fri, 16 Jun 2017 21:15:34 +0000 (14:15 -0700)]
xlat_tables_v2: fix signed/unsigned comparisons

This patch changes input param level in xlat_tables_print_internal() to
an unsigned int to fix the signed/unsigned comparison warnings. The
compiler complains about these warnings, thus halting the build flow
for Tegra platforms.

Change-Id: Ieccc262a63daca7a26ca6a14d81466397af8b89f
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
Signed-off-by: David Cunado <david.cunado@arm.com>
7 years agoMerge pull request #966 from davidcunado-arm/dc/build_with_gcc6.2
davidcunado-arm [Tue, 20 Jun 2017 11:20:08 +0000 (12:20 +0100)]
Merge pull request #966 from davidcunado-arm/dc/build_with_gcc6.2

Resolve build errors flagged by GCC 6.2

7 years agoResolve build errors flagged by GCC 6.2
David Cunado [Thu, 1 Jun 2017 11:48:39 +0000 (12:48 +0100)]
Resolve build errors flagged by GCC 6.2

With GCC 6.2 compiler, more C undefined behaviour is being flagged as
warnings, which result in build errors in ARM TF build.

This patch addresses issue caused by enums with values that exceed
maximum value for an int. For these cases the enum is converted to
a set of defines.

Change-Id: I5114164be10d86d5beef3ea1ed9be5863855144d
Signed-off-by: David Cunado <david.cunado@arm.com>
7 years agoMerge pull request #991 from davidcunado-arm/dc/update_hikey
davidcunado-arm [Tue, 20 Jun 2017 09:21:38 +0000 (10:21 +0100)]
Merge pull request #991 from davidcunado-arm/dc/update_hikey

hikey960: migrate to use A53 specific defines

7 years agohikey960: migrate to use A53 specific defines
David Cunado [Mon, 19 Jun 2017 10:48:22 +0000 (11:48 +0100)]
hikey960: migrate to use A53 specific defines

The patch fb7d32e5881ef2445e8fe2305005f5590d4a7cfa migrated the CPU
libraries to have unique defines, prefixing them with the CPU name.

This patch migrates the hikey960 platform port to use the A53 specific
defines.

Change-Id: Id76f544b0b236bbd4974ab5ffa1203f073c20021
Signed-off-by: David Cunado <david.cunado@arm.com>
7 years agoplat: Hikey960: fix the CPU hotplug
Leo Yan [Thu, 15 Jun 2017 05:51:22 +0000 (13:51 +0800)]
plat: Hikey960: fix the CPU hotplug

In CPU off callback function, the old code uses the function
hisi_test_pwrdn_allcores() to check if all CPUs in cluster have been
powered off and if it's valid then power off the whole cluster. But the
function hisi_test_pwrdn_allcores() only maintains the different power
states only for CPU suspend/resume flow, so it cannot return correct
states for CPU on/off flow.

This patch is to change use hisi_test_cpu_down() to check if all CPUs
have been powered off, so that can power off the whole cluster properly
when all CPUs in cluster have been hotplugged off.

Signed-off-by: Tao Wang <kevin.wangtao@hisilicon.com>
Signed-off-by: Leo Yan <leo.yan@linaro.org>
7 years agoMerge pull request #953 from vwadekar/tegra-misra-fixes-v1
davidcunado-arm [Fri, 16 Jun 2017 11:06:24 +0000 (12:06 +0100)]
Merge pull request #953 from vwadekar/tegra-misra-fixes-v1

Tegra misra fixes v1

7 years agoMerge pull request #984 from masahir0y/uniphier
davidcunado-arm [Fri, 16 Jun 2017 08:17:45 +0000 (09:17 +0100)]
Merge pull request #984 from masahir0y/uniphier

uniphier memory-overrun bug fix

7 years agoMerge pull request #986 from jagadeeshujja/jagujj/fix-get-power-state
davidcunado-arm [Fri, 16 Jun 2017 08:17:28 +0000 (09:17 +0100)]
Merge pull request #986 from jagadeeshujja/jagujj/fix-get-power-state

CSS:Fix scpi "get_power_state" when ARM_PLAT_MT is set

7 years agoMerge pull request #980 from dp-arm/dp/make-fix
davidcunado-arm [Thu, 15 Jun 2017 22:57:04 +0000 (23:57 +0100)]
Merge pull request #980 from dp-arm/dp/make-fix

tools: Use exported quiet flag from top-level Makefile

7 years agoMerge pull request #981 from soby-mathew/sm/cov_scmi
davidcunado-arm [Thu, 15 Jun 2017 22:50:30 +0000 (23:50 +0100)]
Merge pull request #981 from soby-mathew/sm/cov_scmi

Fix coverity error in CSS SCMI driver

7 years agoMerge pull request #985 from hzhuang1/remove_mailbox
davidcunado-arm [Thu, 15 Jun 2017 22:26:01 +0000 (23:26 +0100)]
Merge pull request #985 from hzhuang1/remove_mailbox

hikey960: remove mailbox driver

7 years agoCSS:Fix scpi "get_power_state" when ARM_PLAT_MT is set
jagadeesh ujja [Thu, 11 May 2017 11:02:18 +0000 (16:32 +0530)]
CSS:Fix scpi "get_power_state" when ARM_PLAT_MT is set

The ARM_PLAT_MT bit enables the support for MT bit in
MPIDR format. This means that the level 0 affinity
represents the thread and CPU / Cluster levels are
at affinity level 1 and 2 respectively.
This was not catered for in the scpi 'css_scp_get_power_state, API.
Since the SCPI driver can only cater for single threaded CPUs,
this patch fixes the problem by catering for this shift by
effectively ignoring the Thread (level 0) affinity level.

Change-Id: If44f55c9fb2773c8d3f8a9bbcf5420a6f7409dfe
Signed-off-by: jagadeesh ujja <jagadeesh.ujja@arm.com>
7 years agohikey960: remove mailbox driver
Haojian Zhuang [Thu, 15 Jun 2017 02:30:37 +0000 (10:30 +0800)]
hikey960: remove mailbox driver

Since this mailbox driver is abandoned, remove it.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
7 years agouniphier: fix memory over-run bug
Masahiro Yamada [Thu, 15 Jun 2017 00:32:12 +0000 (09:32 +0900)]
uniphier: fix memory over-run bug

Check the array index before the write.  This issue was found by a
static analysis tool.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
7 years agoTegra186: mce: fix MISRA defects
Anthony Zhou [Mon, 6 Mar 2017 08:06:45 +0000 (16:06 +0800)]
Tegra186: mce: fix MISRA defects

Main fixes:

* Added explicit casts (e.g. 0U) to integers in order for them to be
  compatible with whatever operation they're used in [Rule 10.1]
* Force operands of an operator to the same type category [Rule 10.4]
* Added curly braces ({}) around if/while statements in order to
  make them compound [Rule 15.6]
* Added parentheses [Rule 12.1]
* Voided non C-library functions whose return types are not used [Rule 17.7]

Change-Id: I91404edec2e2194b1ce2672d2a3fc6a1f5bf41f1
Signed-off-by: Anthony Zhou <anzhou@nvidia.com>
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
7 years agoTegra: delay_timer: fix MISRA defects
Anthony Zhou [Thu, 27 Apr 2017 14:00:54 +0000 (22:00 +0800)]
Tegra: delay_timer: fix MISRA defects

Main fixes:

* Include header file for function declarations [Rule 8.4]
* Move global object into function [Rule 8.9]

Change-Id: I1bc9f3f0ebd4ffc0b8444ac856cd97b0cb56bda4
Signed-off-by: Anthony Zhou <anzhou@nvidia.com>
7 years agoTegra: gic: fix MISRA defects
Varun Wadekar [Fri, 26 May 2017 01:06:59 +0000 (18:06 -0700)]
Tegra: gic: fix MISRA defects

Main fixes:

* Use int32_t replace int, use uint32_t replace unsign int [Rule 4.6]
* Added explicit casts (e.g. 0U) to integers in order for them to be
  compatible with whatever operation they're used in [Rule 10.1]
* Force operands of an operator to the same type category [Rule 10.4]
* Fixed assert/if statements conditions to be essentially boolean [Rule 14.4]
* Added curly braces ({}) around if statements in order to
  make them compound [Rule 15.6]
* Convert macros form headers to unsigned ints

Change-Id: I8051cc16499cece2039c9751bd347645f40f0901
Signed-off-by: Anthony Zhou <anzhou@nvidia.com>
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
7 years agoTegra: fiq_glue: fix MISRA defects
Anthony Zhou [Fri, 24 Feb 2017 06:44:21 +0000 (14:44 +0800)]
Tegra: fiq_glue: fix MISRA defects

Main fixes:

* Added explicit casts (e.g. 0U) to integers in order for them to be
  compatible with whatever operation they're used in [Rule 10.1]

* Convert object type to match the type of function parameters
  [Rule 10.3]

* Added curly braces ({}) around if statements in order to
  make them compound [Rule 15.6]

* Expressions resulting from the expansion of macro parameters
  shall be enclosed in parentheses[Rule 20.7]

Change-Id: I5cf83caafcc1650b545ca731bf3eb8f0bfeb362b
Signed-off-by: Anthony Zhou <anzhou@nvidia.com>
7 years agoTegra: pmc: fix defects flagged during MISRA analysis
Anthony Zhou [Mon, 13 Mar 2017 08:47:58 +0000 (16:47 +0800)]
Tegra: pmc: fix defects flagged during MISRA analysis

Main fixes:

* Fixed if/while statement conditional to be essentially boolean [Rule 14.4]

* Added curly braces ({}) around if/for/while statements in order to
  make them compound [Rule 15.6]

* Added explicit casts (e.g. 0U) to integers in order for them to be
  compatible with whatever operation they're used in [Rule 10.1]

Change-Id: Ic72b248aeede6cf18bf85051188ea7b8fd8ae829
Signed-off-by: Anthony Zhou <anzhou@nvidia.com>
7 years agoTegra: memctrl: check GPU reset state from common place
Varun Wadekar [Wed, 26 Apr 2017 15:31:50 +0000 (08:31 -0700)]
Tegra: memctrl: check GPU reset state from common place

This patch moves the GPU reset state check, during VideoMem resize, to the
common SiP handler, to reduce code duplication.

Change-Id: I3818c5f104b809da83dc2a61d6a8149606f81c13
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
7 years agoTegra: memctrl_v2: fix software logic to check "flush complete"
Varun Wadekar [Tue, 18 Apr 2017 16:55:54 +0000 (09:55 -0700)]
Tegra: memctrl_v2: fix software logic to check "flush complete"

This patch fixes the logic to check if the command written to the
MC_CLIENT_HOTRESET_CTRLx registers, was accepted by the hardware module.

Change-Id: If94fff9424555cb4688042eda17b4b20f4eb399a
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
7 years agoTegra: add explicit casts for integer macros
Varun Wadekar [Mon, 24 Apr 2017 21:17:12 +0000 (14:17 -0700)]
Tegra: add explicit casts for integer macros

This patch adds explicit casts (U(x)) to integers in the tegra_def.h
headers, to make them compatible with whatever operation they're used
in [MISRA-C Rule 10.1]

Change-Id: Ic5fc611aad986a2c6e6e6f625e0753ab9b69eb02
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
7 years agoinclude: add U()/ULL() macros for constants
Varun Wadekar [Fri, 26 May 2017 01:04:48 +0000 (18:04 -0700)]
include: add U()/ULL() macros for constants

This patch uses the U() and ULL() macros for constants, to fix some
of the signed-ness defects flagged by the MISRA scanner.

Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
7 years agoAdd U() macro to share constants between C and other sources
Varun Wadekar [Thu, 18 May 2017 17:32:51 +0000 (10:32 -0700)]
Add U() macro to share constants between C and other sources

This patch adds the U(_x) macros to utils_def.h to allow constants to
be shared between C and other sources.

Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
7 years agoUnique names for defines in the CPU libraries
Varun Wadekar [Mon, 5 Jun 2017 21:54:46 +0000 (14:54 -0700)]
Unique names for defines in the CPU libraries

This patch makes all the defines in the CPU libraries unique,
by prefixing them with the CPU name.

NOTE: PLATFORMS USING THESE MACROS WILL HAVE TO UPDATE THEIR CODE
TO START USING THE UPDATED NAMES

Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
7 years agoTegra: enable 'signed-comparison' compilation warning/errors
Varun Wadekar [Wed, 7 Jun 2017 16:57:42 +0000 (09:57 -0700)]
Tegra: enable 'signed-comparison' compilation warning/errors

This patch enables the 'sign-compare' flag, to enable warning/errors
for comparisons between signed/unsigned variables. The warning has
been enabled for all the Tegra platforms, to start with.

Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
7 years agoMerge pull request #979 from soby-mathew/sm/aarch32_macro_fix
davidcunado-arm [Wed, 14 Jun 2017 13:59:36 +0000 (14:59 +0100)]
Merge pull request #979 from soby-mathew/sm/aarch32_macro_fix

Fix stdlib defines for AArch32

7 years agoMerge pull request #974 from masahir0y/uniphier
davidcunado-arm [Tue, 13 Jun 2017 21:18:17 +0000 (22:18 +0100)]
Merge pull request #974 from masahir0y/uniphier

UniPhier Initial Support

7 years agoMerge pull request #982 from hzhuang1/fix_hikey960
davidcunado-arm [Tue, 13 Jun 2017 08:21:09 +0000 (09:21 +0100)]
Merge pull request #982 from hzhuang1/fix_hikey960

Fix hikey960

7 years agohikey960: fix the calculation in boardid
Haojian Zhuang [Mon, 12 Jun 2017 14:20:38 +0000 (22:20 +0800)]
hikey960: fix the calculation in boardid

Since the type of ADC value is always unsigned int, don't
need to check the value with negative value.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
7 years agoufs: fix the and operator
Haojian Zhuang [Mon, 12 Jun 2017 14:18:15 +0000 (22:18 +0800)]
ufs: fix the and operator

Should use AND (&), not &&.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
7 years agouniphier: add TSP support
Masahiro Yamada [Mon, 15 May 2017 04:00:00 +0000 (13:00 +0900)]
uniphier: add TSP support

Add TSP to test BL32 without relying on external projects.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
7 years agouniphier: support Socionext UniPhier platform
Masahiro Yamada [Sat, 3 Sep 2016 02:37:40 +0000 (11:37 +0900)]
uniphier: support Socionext UniPhier platform

Initial commit for Socionext UniPhier SoC support.  BL1, Bl2, and
BL31 are supported.  Refer to docs/plat/socionext-uniphier.md for
more detais.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
7 years agotools: Use exported quiet flag from top-level Makefile
dp-arm [Tue, 2 May 2017 10:14:29 +0000 (11:14 +0100)]
tools: Use exported quiet flag from top-level Makefile

When V is set from the command line, the value is passed to the tools'
Makefiles as well.

Change-Id: I91a1f66de5c1ae6f36b6c9f0a9bd550d4a30f092
Signed-off-by: dp-arm <dimitris.papastamos@arm.com>
7 years agoFix coverity error in CSS SCMI driver
Soby Mathew [Fri, 9 Jun 2017 14:04:43 +0000 (15:04 +0100)]
Fix coverity error in CSS SCMI driver

Change-Id: Ia7d731f429e452e4bc9f9a553d7105b6394c621c
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
7 years agoFix stdlib defines for AArch32
Soby Mathew [Tue, 6 Jun 2017 09:01:03 +0000 (10:01 +0100)]
Fix stdlib defines for AArch32

Some of the macro defines in the header files of `include/lib/stdlib/machine/`
folder are not correct for AArch32. This patch fixes the same.

Change-Id: I8bfaf638a7986fd902648d2074537bd26c313cb3
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
7 years agoMerge pull request #972 from achingupta/ag/freebsd-dt-change
davidcunado-arm [Fri, 9 Jun 2017 12:49:39 +0000 (13:49 +0100)]
Merge pull request #972 from achingupta/ag/freebsd-dt-change

Device tree changes to boot FreeBSD on FVPs

7 years agoMerge pull request #971 from Xilinx/tegra
davidcunado-arm [Fri, 9 Jun 2017 12:49:25 +0000 (13:49 +0100)]
Merge pull request #971 from Xilinx/tegra

tegra: Fix build errors

7 years agoMerge pull request #973 from danh-arm/dh/add-maintainers
davidcunado-arm [Fri, 9 Jun 2017 11:03:52 +0000 (12:03 +0100)]
Merge pull request #973 from danh-arm/dh/add-maintainers

Docs: Clarify copyright requirements

7 years agoMerge pull request #968 from antonio-nino-diaz-arm/an/snprintf-alt
davidcunado-arm [Fri, 9 Jun 2017 11:03:35 +0000 (12:03 +0100)]
Merge pull request #968 from antonio-nino-diaz-arm/an/snprintf-alt

mbedtls: Don't use tf_snprintf if option not defined

7 years agoMerge pull request #967 from rockchip-linux/rockchip-cleanup-20170606
davidcunado-arm [Thu, 8 Jun 2017 16:34:44 +0000 (17:34 +0100)]
Merge pull request #967 from rockchip-linux/rockchip-cleanup-20170606

 RK3399: Shrink M0 SRAM code to fit in PMUSRAM

7 years agotegra: Fix build errors
Soren Brinkmann [Wed, 7 Jun 2017 16:51:26 +0000 (09:51 -0700)]
tegra: Fix build errors

The 'impl' variable is guarded by the symbol DEBUG, but used in an INFO
level print statement. INFO is defined based on LOG_LEVEL. Hence, builds
would fail when
 - DEBUG=0 && LOG_LEVEL>=LOG_LEVEL_INFO with a variable used but not defined
 - DEBUG=1 && LOG_LEVEL<LOG_LEVEL_INFO with a variable defined but not used

Fixing this by guarding impl with the same condition that guards INFO.

Fixes ARM-software/tf-issues#490
Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
7 years agoDocs: Clarify copyright requirements
Dan Handley [Tue, 6 Jun 2017 16:26:37 +0000 (17:26 +0100)]
Docs: Clarify copyright requirements

Clarify copyright requirements in contributing.md.

Also clarify maintainership structure by adding a new maintainers.md. This
imports individual maintainer details from the GitHub wiki.

Fixes ARM-software/tf-issues#488

Change-Id: I7135d3f77ea45533f667de7e1dcdf65697486a91
Signed-off-by: Dan Handley <dan.handley@arm.com>
7 years agoMerge pull request #970 from vingu-linaro/enable-pmf-rt-instr-hikey
danh-arm [Thu, 8 Jun 2017 10:46:34 +0000 (11:46 +0100)]
Merge pull request #970 from vingu-linaro/enable-pmf-rt-instr-hikey

Enable pmf rt instr hikey

7 years agoMerge pull request #959 from hzhuang1/hikey960_v1
danh-arm [Thu, 8 Jun 2017 08:50:03 +0000 (09:50 +0100)]
Merge pull request #959 from hzhuang1/hikey960_v1

Hikey960 v1

7 years agorockchip: check wakeup cpu when resume
Lin Huang [Fri, 12 May 2017 02:26:32 +0000 (10:26 +0800)]
rockchip: check wakeup cpu when resume

unlike rk3399 and rk3368, there are some rockchip 64bit SOC
do not have CPUPD, and pmu_cpuson_entrypoint() is common
function for rockchip platform, so we need to check wakeup
cpu when resume.

Change-Id: I6313e8a9d7c16b03e033414f0cb281646c2159ff
Signed-off-by: Lin Huang <hl@rock-chips.com>
7 years agorockchip/rk3399: enable PMU_PERILP_PD_EN bit when suspend
Lin Huang [Tue, 16 May 2017 08:40:46 +0000 (16:40 +0800)]
rockchip/rk3399: enable PMU_PERILP_PD_EN bit when suspend

with PMU_PERILP_PD_EN bit enable, the soc will shutdown
cm0, crypto, dcf, imem(normal SRAM), dmac, bootrom, efuse_con,
spi, i2c, uart, saradc, tsadc when suspend, we have M0 code
need to run when suspend in normal SRAM, so we need to take
care of that.

Change-Id: I8c066637e5b81d4b1d53197450b9d592cbe00793
Signed-off-by: Lin Huang <hl@rock-chips.com>
Signed-off-by: Derek Basehore <dbasehore@chromium.org>
Signed-off-by: Caesar Wang <wxt@rock-chips.com>