project/bcm63xx/atf.git
5 years agodoc: Enable automatic labels for page titles
Paul Beesley [Fri, 17 May 2019 10:45:36 +0000 (11:45 +0100)]
doc: Enable automatic labels for page titles

Automatic labelling of document titles is a prerequisite for
converting the format of cross-document links. Sphinx will
generate (via the enabled extension) a hidden link target for
each document title and this can be referred to later, from
another page, to link to the target.

The plugin options being used require Sphinx >= 2.0.0 so a
requirements.txt file has been added. This file is used with
the pip package manager for Python so that the correct
dependencies are installed.

Change-Id: Ic2049db5804aa4a6447608ba4299de958ce0a87d
Signed-off-by: Paul Beesley <paul.beesley@arm.com>
5 years agoMerge "Cortex-A55: workarounds for errata 1221012" into integration
Paul Beesley [Wed, 29 May 2019 11:29:12 +0000 (11:29 +0000)]
Merge "Cortex-A55: workarounds for errata 1221012" into integration

5 years agoMerge "Beautify "make help"" into integration
Paul Beesley [Wed, 29 May 2019 09:35:04 +0000 (09:35 +0000)]
Merge "Beautify "make help"" into integration

5 years agoMerge "Makefile: Add default warning flags" into integration
Paul Beesley [Wed, 29 May 2019 09:31:41 +0000 (09:31 +0000)]
Merge "Makefile: Add default warning flags" into integration

5 years agoCortex-A55: workarounds for errata 1221012
Ambroise Vincent [Tue, 28 May 2019 08:52:48 +0000 (09:52 +0100)]
Cortex-A55: workarounds for errata 1221012

The workaround is added to the Cortex-A55 cpu specific file. The
workaround is disabled by default and have to be explicitly enabled by
the platform integrator.

Change-Id: I3e6fd10df6444122a8ee7d08058946ff1cc912f8
Signed-off-by: Ambroise Vincent <ambroise.vincent@arm.com>
5 years agoMerge "plat: imx8m: Add the aipstz init to config peripheral access" into integration
Soby Mathew [Tue, 28 May 2019 13:18:56 +0000 (13:18 +0000)]
Merge "plat: imx8m: Add the aipstz init to config peripheral access" into integration

5 years agoMerge changes from topic "for-upstream" into integration
Soby Mathew [Tue, 28 May 2019 13:18:41 +0000 (13:18 +0000)]
Merge changes from topic "for-upstream" into integration

* changes:
  ti: k3: common: Set L2 latency on A72 cores
  ti: k3: common: Add support for J721E

5 years agoMerge "Fix documentation links" into integration
John Tsichritzis [Tue, 28 May 2019 11:53:58 +0000 (11:53 +0000)]
Merge "Fix documentation links" into integration

5 years agoFix documentation links
John Tsichritzis [Tue, 28 May 2019 11:45:06 +0000 (12:45 +0100)]
Fix documentation links

Change-Id: Ic09e74f22b43fba51ee17cd02b5e1dc5d8e0bb63
Signed-off-by: John Tsichritzis <john.tsichritzis@arm.com>
5 years agoMerge "Add support for Branch Target Identification" into integration
Paul Beesley [Fri, 24 May 2019 16:47:25 +0000 (16:47 +0000)]
Merge "Add support for Branch Target Identification" into integration

5 years agoMerge changes from topic "jts/docs" into integration
Paul Beesley [Fri, 24 May 2019 16:46:59 +0000 (16:46 +0000)]
Merge changes from topic "jts/docs" into integration

* changes:
  Docs fixes
  Update security documentation

5 years agoAdd support for Branch Target Identification
Alexei Fedorov [Fri, 24 May 2019 11:17:09 +0000 (12:17 +0100)]
Add support for Branch Target Identification

This patch adds the functionality needed for platforms to provide
Branch Target Identification (BTI) extension, introduced to AArch64
in Armv8.5-A by adding BTI instruction used to mark valid targets
for indirect branches. The patch sets new GP bit [50] to the stage 1
Translation Table Block and Page entries to denote guarded EL3 code
pages which will cause processor to trap instructions in protected
pages trying to perform an indirect branch to any instruction other
than BTI.
BTI feature is selected by BRANCH_PROTECTION option which supersedes
the previous ENABLE_PAUTH used for Armv8.3-A Pointer Authentication
and is disabled by default. Enabling BTI requires compiler support
and was tested with GCC versions 9.0.0, 9.0.1 and 10.0.0.
The assembly macros and helpers are modified to accommodate the BTI
instruction.
This is an experimental feature.
Note. The previous ENABLE_PAUTH build option to enable PAuth in EL3
is now made as an internal flag and BRANCH_PROTECTION flag should be
used instead to enable Pointer Authentication.
Note. USE_LIBROM=1 option is currently not supported.

Change-Id: Ifaf4438609b16647dc79468b70cd1f47a623362e
Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
5 years agoMakefile: Add default warning flags
Ambroise Vincent [Fri, 24 May 2019 11:47:43 +0000 (12:47 +0100)]
Makefile: Add default warning flags

The flags are taken from the different warning levels of the build
system when they do not generate any error with the current upstreamed
platforms.

Change-Id: Ia70cff83bedefb6d2f0dd266394ef77fe47e7f65
Signed-off-by: Ambroise Vincent <ambroise.vincent@arm.com>
5 years agoDocs fixes
John Tsichritzis [Fri, 24 May 2019 11:27:49 +0000 (12:27 +0100)]
Docs fixes

1) Fix links in "about" page
2) Put back the "contents" page with adjusted links

Change-Id: Id09140b91df5cf0a275149801d05d8cfeeda1c6e
Signed-off-by: John Tsichritzis <john.tsichritzis@arm.com>
5 years agoUpdate security documentation
John Tsichritzis [Tue, 21 May 2019 09:37:55 +0000 (10:37 +0100)]
Update security documentation

1) Replace references to "Arm Trusted Firmware" with "TF-A"
2) Update issue tracker link

Change-Id: I12d827d49f6cc34e46936d7f7ccf44e32b26a0bd
Signed-off-by: John Tsichritzis <john.tsichritzis@arm.com>
5 years agoBeautify "make help"
John Tsichritzis [Tue, 21 May 2019 14:57:31 +0000 (15:57 +0100)]
Beautify "make help"

Changes to make the help text a bit more readable:
1) The "usage" part is now a one-liner
2) The supported platforms list is printed separately

Change-Id: I93e48a6cf1d28f0ef9f3db16ce17725e4dff33c9
Signed-off-by: John Tsichritzis <john.tsichritzis@arm.com>
5 years agoMerge "plat/meson/gxl: BL31: remove BL2 dependency" into integration
Sandrine Bailleux [Thu, 23 May 2019 13:19:09 +0000 (13:19 +0000)]
Merge "plat/meson/gxl: BL31: remove BL2 dependency" into integration

5 years agoMerge changes from topic "pb/sphinx-doc" into integration
Sandrine Bailleux [Thu, 23 May 2019 13:14:00 +0000 (13:14 +0000)]
Merge changes from topic "pb/sphinx-doc" into integration

* changes:
  doc: Use proper note and warning annotations
  doc: Refactor contributor acknowledgements
  doc: Reorganise images and update links
  doc: Set correct syntax highlighting style
  doc: Add minimal glossary
  doc: Remove per-page contents lists
  doc: Make checkpatch ignore rst files
  doc: Format security advisory titles and headings
  doc: Reformat platform port documents
  doc: Normalise section numbering and headings
  doc: Reword document titles

5 years agoMerge "drivers: scmi: scmi_sq: Modify wrong payload length" into integration
Sandrine Bailleux [Thu, 23 May 2019 09:09:52 +0000 (09:09 +0000)]
Merge "drivers: scmi: scmi_sq: Modify wrong payload length" into integration

5 years agodrivers: scmi: scmi_sq: Modify wrong payload length
Masahisa Kojima [Thu, 23 May 2019 05:41:35 +0000 (14:41 +0900)]
drivers: scmi: scmi_sq: Modify wrong payload length

Payload length of the get dram mapping information message is 0.
The mbx_mem->len parameter should be 4, it only contains
message header.

Fixes: b67d202 ("plat/synquacer: enable SCMI support")
Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org>
Change-Id: If1cd4c855da2dc5dc4b6da3bea152b8441971de7

5 years agoti: k3: common: Set L2 latency on A72 cores
Andrew F. Davis [Fri, 10 May 2019 15:20:50 +0000 (11:20 -0400)]
ti: k3: common: Set L2 latency on A72 cores

The Cortex-A72 based cores on K3 platforms can be clocked fast
enough that an extra latency cycle is needed to ensure correct
L2 access. Set the latency here for all A72 cores.

Signed-off-by: Andrew F. Davis <afd@ti.com>
Change-Id: Id534316dec1c1f326908efbfd964f219cda7386a

5 years agoti: k3: common: Add support for J721E
Nishanth Menon [Fri, 22 Jun 2018 11:36:29 +0000 (06:36 -0500)]
ti: k3: common: Add support for J721E

Enable Cortex-A72 support for J721E.

Change-Id: I5bea5fb6ec45d1a9f8f2192d42da2cc03ae0f7ec
Signed-off-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Andrew F. Davis <afd@ti.com>
5 years agodoc: Use proper note and warning annotations
Paul Beesley [Wed, 13 Mar 2019 16:20:44 +0000 (16:20 +0000)]
doc: Use proper note and warning annotations

The documentation contains plenty of notes and warnings. Enable
special rendering of these blocks by converting the note prefix
into a .. note:: annotation.

Change-Id: I34e26ca6bf313d335672ab6c2645741900338822
Signed-off-by: Paul Beesley <paul.beesley@arm.com>
5 years agodoc: Refactor contributor acknowledgements
Paul Beesley [Wed, 13 Mar 2019 16:02:25 +0000 (16:02 +0000)]
doc: Refactor contributor acknowledgements

- Make the list of contributors into an actual list
- Use note syntax for the note
- Remove the Individuals heading since there are none

This file could be considered for removal as it is a legacy
document, as its note explains.

Change-Id: Idf984bc192af7a0ec367a6642ab99ccccf5df1a8
Signed-off-by: Paul Beesley <paul.beesley@arm.com>
5 years agodoc: Reorganise images and update links
Paul Beesley [Wed, 13 Mar 2019 15:49:27 +0000 (15:49 +0000)]
doc: Reorganise images and update links

Change-Id: I679d1499376a524bef1cfc33df995b0a719b5ac8
Signed-off-by: Paul Beesley <paul.beesley@arm.com>
5 years agodoc: Set correct syntax highlighting style
Paul Beesley [Wed, 13 Mar 2019 15:11:04 +0000 (15:11 +0000)]
doc: Set correct syntax highlighting style

Several code blocks do not specify a language for syntax
highlighting. This results in Sphinx using a default highlighter
which is Python.

This patch adds the correct language to each code block that doesn't
already specify it.

Change-Id: Icce1949aabfdc11a334a42d49edf55fa673cddc3
Signed-off-by: Paul Beesley <paul.beesley@arm.com>
5 years agodoc: Add minimal glossary
Paul Beesley [Wed, 13 Mar 2019 13:58:02 +0000 (13:58 +0000)]
doc: Add minimal glossary

One of the current issues with the documentation is that terms and
abbreviations are frequently redefined. For example, we might have
a sentence like "... the SCP (System Control Processor) will ...".

These definitions might be repeated several times across pages, or
even within the same document. Equally, some of these abbreviations
are missed and are never expanded.

Sphinx provides a :term: keyword that takes some text and,
if that text is defined in a glossary document, links to its glossary
entry. Using this functionality will prevent repeated definitions
and will make the docs more maintainable by using a single
definition source.

The glossary added in this patch was created from a quick scrub of
the source code - there may be missing entries. The SDEI abbreviation
was used as an example.

Note that a global_substitutions file was created. This file contains
the RST 'replace' statements that convert plain text terms into linked
terms (by adding the ':term:' keyword to them). An example is:

.. |TF-A| replace:: :term:`TF-A`

The 'rst_prolog' variable in conf.py is used to inject this list of
replacements into each page. Terms must be surrounded with the pipe
character to be turned into links - this means that we can still
prevent certain terms from being linked if we don't want them to be.

Change-Id: I87010ed9cfa4a60011a9b4a431b98cb4bb7baa28
Signed-off-by: Paul Beesley <paul.beesley@arm.com>
5 years agodoc: Remove per-page contents lists
Paul Beesley [Thu, 7 Mar 2019 17:03:22 +0000 (17:03 +0000)]
doc: Remove per-page contents lists

These are no longer needed as there will always be a table of contents
rendered to the left of every page.

Some of these lists can be quite long and, when opening a page, the
reader sees nothing but a huge list of contents! After this patch,
the document contents are front-and-centre and the contents are
nicely rendered in the sidebar without duplication.

Change-Id: I444754d548ec91d00f2b04e861de8dde8856aa62
Signed-off-by: Paul Beesley <paul.beesley@arm.com>
5 years agodoc: Make checkpatch ignore rst files
Paul Beesley [Thu, 7 Mar 2019 16:42:31 +0000 (16:42 +0000)]
doc: Make checkpatch ignore rst files

Previously checkpatch was invoked with options to make it ignore
Markdown (md) files as this was the dominant format for TF-A
documents. Now that rst is being used everywhere this option needs
updating.

Change-Id: I59b5a0bcc45d2386df4f880b8d333baef0bbee77
Signed-off-by: Paul Beesley <paul.beesley@arm.com>
5 years agodoc: Format security advisory titles and headings
Paul Beesley [Thu, 7 Mar 2019 16:22:44 +0000 (16:22 +0000)]
doc: Format security advisory titles and headings

Required so that the advisory documents are all valid RST files (with a
header) and that they all integrate into the document tree.

Change-Id: I68ca2b0b9e648e24b460deb772c471a38518da26
Signed-off-by: Paul Beesley <paul.beesley@arm.com>
5 years agodoc: Reformat platform port documents
Paul Beesley [Wed, 22 May 2019 10:22:44 +0000 (11:22 +0100)]
doc: Reformat platform port documents

The platform port documents are not very standardised right now and
they don't integrate properly into the document tree so:

1) Make sure each port has a proper name and title (incl. owner)
2) Correct use of headings, subheadings, etc in each port
3) Resolve any naming conflicts between documents

Change-Id: I4c2da6f57172b7f2af3512e766ae9ce3b840b50f
Signed-off-by: Paul Beesley <paul.beesley@arm.com>
5 years agodoc: Normalise section numbering and headings
Paul Beesley [Thu, 7 Mar 2019 15:53:44 +0000 (15:53 +0000)]
doc: Normalise section numbering and headings

Required work to make all documents sit at the correct levels within
the document tree and any derived content like the table of contents
and the categories in the sidebar.

Change-Id: I4885fbe30864a87c8822ee67482b71fb46a8fbc6
Signed-off-by: Paul Beesley <paul.beesley@arm.com>
5 years agodoc: Reword document titles
Paul Beesley [Thu, 7 Mar 2019 15:47:15 +0000 (15:47 +0000)]
doc: Reword document titles

This patch attempts to standardise the document titles as well as
adding titles to documents that were missing one. The aim is to
remove needless references to "TF-A" or "Trusted Firmware" in the
title of every document and to make sure that the title matches
with the document content.

Change-Id: I9b93ccf43b5d57e8dc793a5311b8ed7c4dd245cc
Signed-off-by: Paul Beesley <paul.beesley@arm.com>
5 years agoMerge "rcar_gen3: drivers: qos: update QoS setting" into integration
Sandrine Bailleux [Wed, 22 May 2019 08:01:02 +0000 (08:01 +0000)]
Merge "rcar_gen3: drivers: qos: update QoS setting" into integration

5 years agoMerge changes Icf1ea76c,I9ca3f278 into integration
Sandrine Bailleux [Wed, 22 May 2019 07:06:39 +0000 (07:06 +0000)]
Merge changes Icf1ea76c,I9ca3f278 into integration

* changes:
  imx8: Replace PLAT_IMX8* with automatic PLAT_imx8*
  plat: imx8mq: Implement IMX_SIP_GET_SOC_INFO

5 years agoMerge "Rework smc_unknown return code path in smc_handler" into integration
Sandrine Bailleux [Wed, 22 May 2019 06:22:03 +0000 (06:22 +0000)]
Merge "Rework smc_unknown return code path in smc_handler" into integration

5 years agorcar_gen3: drivers: qos: update QoS setting
Yoshifumi Hosoya [Fri, 12 Apr 2019 08:08:15 +0000 (17:08 +0900)]
rcar_gen3: drivers: qos: update QoS setting

Update M3 Ver.3.0 QoS setting rev.0.03.

Change-Id: I892521d456c606ac3d30f2b2ac6b4e16faa5fc48
Signed-off-by: Yoshifumi Hosoya <yoshifumi.hosoya.wj@renesas.com>
Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
5 years agoMerge "doc: Move content out of readme and create new index page" into integration
Sandrine Bailleux [Tue, 21 May 2019 14:57:07 +0000 (14:57 +0000)]
Merge "doc: Move content out of readme and create new index page" into integration

5 years agoMerge "doc: Move documents into subdirectories" into integration
Sandrine Bailleux [Tue, 21 May 2019 14:56:08 +0000 (14:56 +0000)]
Merge "doc: Move documents into subdirectories" into integration

5 years agodoc: Move content out of readme and create new index page
Paul Beesley [Thu, 7 Mar 2019 15:25:14 +0000 (15:25 +0000)]
doc: Move content out of readme and create new index page

Previously the readme.rst file served as the entrypoint for the
documentation. With a Sphinx build the top-level document is set
to be index.rst as it contains the primary document index.

This patch moves some content from readme.rst into index.rst and
splits the license information out into license.rst.

Change-Id: I5c50250b81136fe36aa9ceedaae302b44ec11e47
Signed-off-by: Paul Beesley <paul.beesley@arm.com>
5 years agodoc: Move documents into subdirectories
Paul Beesley [Mon, 11 Feb 2019 17:54:45 +0000 (17:54 +0000)]
doc: Move documents into subdirectories

This change creates the following directories under docs/
in order to provide a grouping for the content:

- components
- design
- getting_started
- perf
- process

In each of these directories an index.rst file is created
and this serves as an index / landing page for each of the
groups when the pages are compiled. Proper layout of the
top-level table of contents relies on this directory/index
structure.

Without this patch it is possible to build the documents
correctly with Sphinx but the output looks messy because
there is no overall hierarchy.

Change-Id: I3c9f4443ec98571a56a6edf775f2c8d74d7f429f
Signed-off-by: Paul Beesley <paul.beesley@arm.com>
5 years agoMerge "doc: Add minimal Sphinx support" into integration
Sandrine Bailleux [Tue, 21 May 2019 13:42:17 +0000 (13:42 +0000)]
Merge "doc: Add minimal Sphinx support" into integration

5 years agoplat: imx8m: Add the aipstz init to config peripheral access
Jacky Bai [Tue, 21 May 2019 12:24:52 +0000 (20:24 +0800)]
plat: imx8m: Add the aipstz init to config peripheral access

AIPSTZ provide access control for all the peripherals connected
to it. In this patch all the perperals are configured accessible
to all the master. it can be customized based the actual use
case.

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Change-Id: I5ef5baa1da6906f13a60923d27ede336c61e319a

5 years agoMerge "romlib: Improve compilation flags definition" into integration
Sandrine Bailleux [Tue, 21 May 2019 12:33:18 +0000 (12:33 +0000)]
Merge "romlib: Improve compilation flags definition" into integration

5 years agodoc: Add minimal Sphinx support
Paul Beesley [Wed, 23 Jan 2019 15:39:39 +0000 (15:39 +0000)]
doc: Add minimal Sphinx support

Add the essentials for supporting a Sphinx documentation build:

- A makefile under docs/ to invoke Sphinx with the desired output
  format
- A Sphinx master configuration file (conf.py)
- A single, top-level index page (index.rst)
- The TF.org logo that is integrated in the the sidebar of the
  rendered output

Change-Id: I85e67e939658638337ca7972936a354878083a25
Signed-off-by: Paul Beesley <paul.beesley@arm.com>
5 years agoMerge "Fix docs references to header files" into integration
Sandrine Bailleux [Tue, 21 May 2019 08:55:31 +0000 (08:55 +0000)]
Merge "Fix docs references to header files" into integration

5 years agoFix docs references to header files
John Tsichritzis [Mon, 13 May 2019 10:20:05 +0000 (11:20 +0100)]
Fix docs references to header files

Change-Id: I5c06e777d93ac653a853997c2b7c1c9d09b1e49c
Signed-off-by: John Tsichritzis <john.tsichritzis@arm.com>
5 years agoRework smc_unknown return code path in smc_handler
Madhukar Pappireddy [Wed, 8 May 2019 20:41:41 +0000 (15:41 -0500)]
Rework smc_unknown return code path in smc_handler

The intention of this patch is to leverage the existing el3_exit() return
routine for smc_unknown return path rather than a custom set of instructions.
In order to leverage el3_exit(), the necessary counteraction (i.e., saving the
system registers apart from GP registers) must be performed. Hence a series of
instructions which save system registers( like SPSR_EL3, SCR_EL3 etc) to stack
are moved to the top of group of instructions which essentially decode the OEN
from the smc function identifier and obtain the specific service handler in
rt_svc_descs_array. This ensures that the control flow for both known and
unknown smc calls will be similar.

Change-Id: I67f94cfcba176bf8aee1a446fb58a4e383905a87
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
5 years agoMerge "Update docs for FVP v11.6" into integration
Sandrine Bailleux [Tue, 21 May 2019 08:17:16 +0000 (08:17 +0000)]
Merge "Update docs for FVP v11.6" into integration

5 years agoromlib: Improve compilation flags definition
Louis Mayencourt [Mon, 29 Apr 2019 15:35:30 +0000 (16:35 +0100)]
romlib: Improve compilation flags definition

* Optimization flags were only provided for debug build.
* Set optimisation level to -O1
* Remove CFLAGS which is never used for romlib
* Remove the ignored -g flag from LDFLAGS

Change-Id: Id4b69026d8a322ed4cb0acf06c350f13d31571ad
Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
5 years agoUpdate docs for FVP v11.6
John Tsichritzis [Mon, 20 May 2019 12:09:34 +0000 (13:09 +0100)]
Update docs for FVP v11.6

Change-Id: I33c1bf49aa10867e1a2ca4c167112b99bf756dda
Signed-off-by: John Tsichritzis <john.tsichritzis@arm.com>
5 years agoimx8: Replace PLAT_IMX8* with automatic PLAT_imx8*
Leonard Crestez [Mon, 20 May 2019 08:28:50 +0000 (11:28 +0300)]
imx8: Replace PLAT_IMX8* with automatic PLAT_imx8*

Platform defines are already provided by the build system so let's not
duplicate them.

Change-Id: Icf1ea76c3c3213e27b447c95e2b22b961fa7693e
Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
5 years agoplat: imx8mq: Implement IMX_SIP_GET_SOC_INFO
Leonard Crestez [Fri, 10 May 2019 10:07:41 +0000 (13:07 +0300)]
plat: imx8mq: Implement IMX_SIP_GET_SOC_INFO

The manual documents that 0x3036006c should contains the soc revision
for imx8mq but this always reports A0. Work around this by parsing the
ROM header and checking if OCOTP register 0x40 is stuck at 0xff0055aa.

Determining this inside TF-A makes life easier for OS, see for example
this linux discussion: https://lkml.org/lkml/2019/5/3/465

The soc revision can also be useful inside TF-A itself, for example for
the non-upstream DDR DVFS "busfreq" feature is affected by 8mq erratas.

The clock for OCOTP block can be disabled by OS so only initialize soc
revision once at boot time.

Change-Id: I9ca3f27840229ce8a28b53870e44da29f63c73aa
Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
5 years agoplat/meson/gxl: BL31: remove BL2 dependency
Kevin Hilman [Thu, 16 May 2019 21:38:02 +0000 (14:38 -0700)]
plat/meson/gxl: BL31: remove BL2 dependency

Remove an assert() that assumes a specific value being passed from
BL2.  This value is dependent on BL2 version, so makes this assert()
not portable.

Suggested-by: Remi Pommarel <repk@triplefau.lt>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
Change-Id: Ife3d934b2fa37fc1c66963dd4eb1afe2ca17d740

5 years agoMerge changes from topic "sami/550_fix_n1sdp_issues_v1" into integration
Soby Mathew [Thu, 16 May 2019 08:33:56 +0000 (08:33 +0000)]
Merge changes from topic "sami/550_fix_n1sdp_issues_v1" into integration

* changes:
  N1SDP: Initialise CNTFRQ in Non Secure CNTBaseN
  N1SDP: Fix DRAM2 start address
  Add option for defining platform DRAM2 base
  Disable speculative loads only if SSBS is supported

5 years agoMerge "plat: imx8mq: Remove duplicated linker symbols" into integration
Soby Mathew [Wed, 15 May 2019 16:00:40 +0000 (16:00 +0000)]
Merge "plat: imx8mq: Remove duplicated linker symbols" into integration

5 years agoMerge "drivers: ufs: Extend the delay after reset to wait for some slower chips"...
Soby Mathew [Wed, 15 May 2019 15:58:17 +0000 (15:58 +0000)]
Merge "drivers: ufs: Extend the delay after reset to wait for some slower chips" into integration

5 years agoMerge "Remove .arch directives from spinlock.S" into integration
Soby Mathew [Wed, 15 May 2019 15:54:32 +0000 (15:54 +0000)]
Merge "Remove .arch directives from spinlock.S" into integration

5 years agoMerge "SMMUv3: Abort DMA transactions" into integration
Soby Mathew [Wed, 15 May 2019 15:54:16 +0000 (15:54 +0000)]
Merge "SMMUv3: Abort DMA transactions" into integration

5 years agoN1SDP: Initialise CNTFRQ in Non Secure CNTBaseN
Sami Mujawar [Fri, 10 May 2019 07:52:07 +0000 (08:52 +0100)]
N1SDP: Initialise CNTFRQ in Non Secure CNTBaseN

N1SDP exhibits the behavior similar to Juno wherein CNTBaseN.CNTFRQ
can be written but does not reflect the value of the CNTFRQ register
in CNTCTLBase frame. This doesn't follow ARM ARM in that the value
updated in CNTCTLBase.CNTFRQ is not reflected in CNTBaseN.CNTFRQ.

Hence enable the workaround (applied to Juno) for N1SDP that updates
the CNTFRQ register in the Non Secure CNTBaseN frame.

Change-Id: Id89ee1bca0f25c9d62f8f794f2c4f4e618cdf092
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
5 years agoN1SDP: Fix DRAM2 start address
Sami Mujawar [Thu, 9 May 2019 12:43:30 +0000 (13:43 +0100)]
N1SDP: Fix DRAM2 start address

The default DRAM2 start address for Arm platforms
is 0x880000000. However, for N1SDP platform this is
0x8080000000.

Fix the DRAM2 start address by initialising
PLAT_ARM_DRAM2_BASE.

Without this fix there is a mismatch of the System
memory region view as seen by the BL31 runtime
firmware (PSCI) versus the view of the OS (which
is based on the description provided by UEFI. In
this case UEFI is correctly describing the DRAM2
start address).

This implicates in secondary cores failing to start
on some Operating Systems if the OS decides to place
the secondary start address in the mismatched region.

Change-Id: I57220e753219353dda429868b4c5e1a69944cc64
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
5 years agoAdd option for defining platform DRAM2 base
Sami Mujawar [Thu, 9 May 2019 12:35:02 +0000 (13:35 +0100)]
Add option for defining platform DRAM2 base

The default DRAM2 base address for Arm platforms
is 0x880000000. However, on some platforms the
firmware may want to move the start address to
a different value.

To support this introduce PLAT_ARM_DRAM2_BASE that
defaults to 0x880000000; but can be overridden by
a platform (e.g. in platform_def.h).

Change-Id: I0d81195e06070bc98f376444b48ada2db1666e28
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
5 years agoDisable speculative loads only if SSBS is supported
Sami Mujawar [Fri, 10 May 2019 13:28:37 +0000 (14:28 +0100)]
Disable speculative loads only if SSBS is supported

Examine the ID_AA64PFR1_EL1 bits 7:4 to see if speculative
loads (SSBS) is implemented, before disabling speculative
loads.

Change-Id: I7607c45ed2889260d22a94f6fd9af804520acf67
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
5 years agodrivers: ufs: Extend the delay after reset to wait for some slower chips
John Stultz [Mon, 13 May 2019 23:56:19 +0000 (16:56 -0700)]
drivers: ufs: Extend the delay after reset to wait for some slower chips

We've seen issues with some THG based UFS chips, where
after reset the LUNs don't always enumerate properly.

After some debugging, we found that extending the mdelay
here seems to resolve the issue by giving the chips enough
time to complete reset.

Change-Id: I848f810b2438ed6ad3d33db614c61d2cef9ac400
Signed-off-by: John Stultz <john.stultz@linaro.org>
5 years agoplat: imx8mq: Remove duplicated linker symbols
Jacky Bai [Tue, 9 Apr 2019 02:55:24 +0000 (10:55 +0800)]
plat: imx8mq: Remove duplicated linker symbols

Remove duplicated linker symbols, resue the symbols
defined in bl_common.h

Change-Id: I10de450eccc78c09b61a8ae7126bf4f4029fa682
Signed-off-by: Jacky Bai <ping.bai@nxp.com>
5 years agoRemove .arch directives from spinlock.S
Alexei Fedorov [Fri, 10 May 2019 15:55:16 +0000 (16:55 +0100)]
Remove .arch directives from spinlock.S

This patch removes .arch "arm8.1-a" and "armv8-a"
directives which overwrite ASFLAGS_aarch64 option based
on ARM_ARCH_MINOR passed to Makefile and cause
translation errors like
"selected processor does not support `bti jc'"
for armv8.5-a targets when BTI support is enabled.

Change-Id: Idca5b66ed1e5d86e2188b0c0f16c3819990957c4
Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
5 years agoSMMUv3: Abort DMA transactions
Alexei Fedorov [Thu, 9 May 2019 11:14:40 +0000 (12:14 +0100)]
SMMUv3: Abort DMA transactions

For security DMA should be blocked at the SMMU by default
unless explicitly enabled for a device. SMMU is disabled
after reset with all streams bypassing the SMMU, and
abortion of all incoming transactions implements a default
deny policy on reset.
This patch also moves "bl1_platform_setup()" function from
arm_bl1_setup.c to FVP platforms' fvp_bl1_setup.c and
fvp_ve_bl1_setup.c files.

Change-Id: Ie0ffedc10219b1b884eb8af625bd4b6753749b1a
Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
5 years agoMerge "Initialize platform for MediaTek mt8183" into integration
Soby Mathew [Fri, 10 May 2019 10:42:18 +0000 (10:42 +0000)]
Merge "Initialize platform for MediaTek mt8183" into integration

5 years agoMerge "maintainers: Step down as sub-maintainer" into integration
Antonio Niño Díaz [Fri, 10 May 2019 08:57:32 +0000 (08:57 +0000)]
Merge "maintainers: Step down as sub-maintainer" into integration

5 years agoMerge "plat: imx8m: Implement IMX_SIP_BUILDINFO" into integration
Antonio Niño Díaz [Fri, 10 May 2019 08:51:29 +0000 (08:51 +0000)]
Merge "plat: imx8m: Implement IMX_SIP_BUILDINFO" into integration

5 years agoInitialize platform for MediaTek mt8183
kenny liang [Wed, 10 Apr 2019 13:09:26 +0000 (21:09 +0800)]
Initialize platform for MediaTek mt8183

- Add basic platform setup
- Add generic CPU helper functions
- Add delay timer platform implementation
- Use TI 16550 uart driver

Change-Id: I1c29569c68fe9fca5e10e88a22a29690bab7141f
Signed-off-by: kenny liang <kenny.liang@mediatek.com>
5 years agoplat: imx8m: Implement IMX_SIP_BUILDINFO
Leonard Crestez [Wed, 8 May 2019 19:29:21 +0000 (22:29 +0300)]
plat: imx8m: Implement IMX_SIP_BUILDINFO

The IMX_SIP_BUILDINFO call was implemented for imx8qm and imx8qx but
it's also applicable to imx8m.

This fixes U-Boot not printing commit hash on 8m with upstream TF-A.

Change-Id: Idcfd9729eaaccf329c24e241da325f1f6cd3c880
Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
5 years agomaintainers: Step down as sub-maintainer
Antonio Nino Diaz [Thu, 9 May 2019 13:26:22 +0000 (14:26 +0100)]
maintainers: Step down as sub-maintainer

I'm giving full maintainership of the Raspberry Pi 3 platform port to
Paul. I'm also leaving the GXBB maintainership to Andre, who is also
happy to pass it on to someone else who is more interested in it.

Change-Id: Ieb2212f5fc11ebde9fc0c857e9e305d691d4ee3f
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
5 years agoMerge "Add Makefile check for PAuth and AArch64" into integration
Antonio Niño Díaz [Thu, 9 May 2019 12:49:37 +0000 (12:49 +0000)]
Merge "Add Makefile check for PAuth and AArch64" into integration

5 years agoAdd Makefile check for PAuth and AArch64
John Tsichritzis [Tue, 7 May 2019 13:09:09 +0000 (14:09 +0100)]
Add Makefile check for PAuth and AArch64

Pointer authentication is supported only in AArch64. A relevant check is
added for that in the Makefile.

Change-Id: I021ba65a9bd5764fd33292bee42617015e04a870
Signed-off-by: John Tsichritzis <john.tsichritzis@arm.com>
5 years agoMerge "docs: Update contribution guidelines for binary components" into integration
Soby Mathew [Wed, 8 May 2019 13:41:56 +0000 (13:41 +0000)]
Merge "docs: Update contribution guidelines for binary components" into integration

5 years agoMerge changes I286b925e,I1151c2bc into integration
Antonio Niño Díaz [Wed, 8 May 2019 13:34:04 +0000 (13:34 +0000)]
Merge changes I286b925e,I1151c2bc into integration

* changes:
  plat: imx8mq: Only keep IRQ 32 unmasked
  plat: imx8mq: gpc: Enable all power domain by default

5 years agoMerge "Fix RST rendering and other typos" into integration
Soby Mathew [Wed, 8 May 2019 13:06:19 +0000 (13:06 +0000)]
Merge "Fix RST rendering and other typos" into integration

5 years agoFix RST rendering and other typos
John Tsichritzis [Tue, 7 May 2019 13:13:07 +0000 (14:13 +0100)]
Fix RST rendering and other typos

1) One space was missing from the indentation and, hence, rendering error
was generated in the user guide.
2) Partially reword Pointer Authentication related info.

Change-Id: Id5e65d419ec51dd7764f24d1b96b6c9942d63ba4
Signed-off-by: John Tsichritzis <john.tsichritzis@arm.com>
5 years agoplat: imx8mq: Only keep IRQ 32 unmasked
Leonard Crestez [Mon, 6 May 2019 18:43:49 +0000 (21:43 +0300)]
plat: imx8mq: Only keep IRQ 32 unmasked

Only IRQ 32 (SPI 0) needs to be kept unmasked, not everything divisible
by 32.

Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Change-Id: I286b925eead89218cfeddd82f53a634f3447d212

5 years agoplat: imx8mq: gpc: Enable all power domain by default
Leonard Crestez [Mon, 6 May 2019 19:22:14 +0000 (22:22 +0300)]
plat: imx8mq: gpc: Enable all power domain by default

This is similar to imx8mm and allows uboot to run fastboot over USB otg.

There is a different set of power domains on 8mq but same bits covers
all off them.

Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Change-Id: I1151c2bc2d32b1e02b4db16285b3d30cabc0d64d

5 years agoMerge changes from topic "sm/fix_a76_errata" into integration
Soby Mathew [Tue, 7 May 2019 14:31:25 +0000 (14:31 +0000)]
Merge changes from topic "sm/fix_a76_errata" into integration

* changes:
  Workaround for cortex-A76 errata 1286807
  Cortex-A76: workarounds for errata 1257314126260612628881275112

5 years agoWorkaround for cortex-A76 errata 1286807
Soby Mathew [Fri, 3 May 2019 12:17:56 +0000 (13:17 +0100)]
Workaround for cortex-A76 errata 1286807

The workaround for Cortex-A76 errata #1286807 is implemented
in this patch.

Change-Id: I6c15af962ac99ce223e009f6d299cefb41043bed
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
5 years agoCortex-A76: workarounds for errata 1257314, 1262606, 1262888, 1275112
Soby Mathew [Wed, 1 May 2019 08:43:18 +0000 (09:43 +0100)]
Cortex-A76: workarounds for errata 1257314126260612628881275112

The workarounds for errata 125731412626061262888 and 1275112 are
added to the Cortex-A76 cpu specific file. The workarounds are disabled
by default and have to be explicitly enabled by the platform integrator.

Change-Id: I70474927374cb67725f829d159ddde9ac4edc343
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
5 years agoMerge "Add compile-time errors for HW_ASSISTED_COHERENCY flag" into integration
Soby Mathew [Fri, 3 May 2019 13:35:38 +0000 (13:35 +0000)]
Merge "Add compile-time errors for HW_ASSISTED_COHERENCY flag" into integration

5 years agoAdd compile-time errors for HW_ASSISTED_COHERENCY flag
John Tsichritzis [Tue, 19 Mar 2019 17:20:52 +0000 (17:20 +0000)]
Add compile-time errors for HW_ASSISTED_COHERENCY flag

This patch fixes this issue:
https://github.com/ARM-software/tf-issues/issues/660

The introduced changes are the following:

1) Some cores implement cache coherency maintenance operation on the
hardware level. For those cores, such as - but not only - the DynamIQ
cores, it is mandatory that TF-A is compiled with the
HW_ASSISTED_COHERENCY flag. If not, the core behaviour at runtime is
unpredictable. To prevent this, compile time checks have been added and
compilation errors are generated, if needed.

2) To enable this change for FVP, a logical separation has been done for
the core libraries. A system cannot contain cores of both groups, i.e.
cores that manage coherency on hardware and cores that don't do it. As
such, depending on the HW_ASSISTED_COHERENCY flag, FVP includes the
libraries only of the relevant cores.

3) The neoverse_e1.S file has been added to the FVP sources.

Change-Id: I787d15819b2add4ec0d238249e04bf0497dc12f3
Signed-off-by: John Tsichritzis <john.tsichritzis@arm.com>
5 years agoMerge "SMMUv3: refactor the driver code" into integration
Soby Mathew [Fri, 3 May 2019 11:09:02 +0000 (11:09 +0000)]
Merge "SMMUv3: refactor the driver code" into integration

5 years agoSMMUv3: refactor the driver code
Alexei Fedorov [Fri, 26 Apr 2019 11:07:07 +0000 (12:07 +0100)]
SMMUv3: refactor the driver code

This patch is a preparation for the subsequent changes in
SMMUv3 driver. It introduces a new "smmuv3_poll" function
and replaces inline functions for accessing SMMU registers
with mmio read/write operations. Also the infinite loop
for the poll has been replaced with a counter based timeout.

Change-Id: I7a0547beb1509601f253e126b1a7a6ab3b0307e7
Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
5 years agoMerge changes from topic "rk3399q7" into integration
Soby Mathew [Thu, 2 May 2019 11:25:26 +0000 (11:25 +0000)]
Merge changes from topic "rk3399q7" into integration

* changes:
  rockchip: Disable binary generation for all SoCs.
  build_macros: Add mechanism to prevent bin generation.

5 years agorockchip: Disable binary generation for all SoCs.
Christoph Müllner [Wed, 24 Apr 2019 07:52:54 +0000 (09:52 +0200)]
rockchip: Disable binary generation for all SoCs.

All supported Rockchip SoCs (RK3288, RK3328, RK3368 and RK3399)
have non-continuous memory areas in the linker script with a huge
gap between them. This results in extremely padded binary images
with a size of about 4 GiB.

E.g. on the RK3399 we have the following memory areas (and base addresses):
RAM (0x1000), SRAM (0xFF8C0000), and PMUSRAM (0xFF3B0000).

Consumers of the TF-A project (e.g. coreboot or U-Boot) therefore
use the ELF image instead, which has a size of a few hundred kBs.

In order to prevent the generation of a huge and useless file,
this patch disables the binary generation for all affected Rockchip
SoCs.

Signed-off-by: Christoph Müllner <christophm30@gmail.com>
Change-Id: I4ac65bdf1e598c3e1a59507897d183aee9a36916

5 years agobuild_macros: Add mechanism to prevent bin generation.
Christoph Müllner [Wed, 24 Apr 2019 07:45:30 +0000 (09:45 +0200)]
build_macros: Add mechanism to prevent bin generation.

On certain platforms it does not make sense to generate
TF-A binary images. For example a platform could make use of serveral
memory areas, which are non-continuous and the resulting binary
therefore would suffer from the padding-bytes.
Typically these platforms use the ELF image.

This patch introduces a variable DISABLE_BIN_GENERATION, which
can be set to '1' in the platform makefile to prevent the binary
generation.

Signed-off-by: Christoph Müllner <christophm30@gmail.com>
Change-Id: I62948e88bab685bb055fe6167d9660d14e604462

5 years agoMerge changes from topic "rk3399q7" into integration
Antonio Niño Díaz [Thu, 2 May 2019 10:13:08 +0000 (10:13 +0000)]
Merge changes from topic "rk3399q7" into integration

* changes:
  rockchip: Allow console device to be set by DTB.
  rockchip: Add params_setup to RK3328.
  rockchip: Streamline and complete UARTn_BASE macros.

5 years agorockchip: Allow console device to be set by DTB.
Christoph Müllner [Fri, 19 Apr 2019 12:16:27 +0000 (14:16 +0200)]
rockchip: Allow console device to be set by DTB.

Currently the compile-time constant PLAT_RK_UART_BASE defines
which UART is used as console device. E.g. on RK3399 it is set
to UART2. That means, that a single bl31 image can not be used
for two boards, which just differ on the UART console.

This patch addresses this limitation by parsing the "stdout-path"
property from the "chosen" node in the DTB. The expected property
string is expected to have the form "serialN:XXX", with
N being either 0, 1, 2, 3 or 4. When the property is found, it will
be used to override PLAT_RK_UART_BASE.

Tested on RK3399-Q7, with a stdout-path of "serial0:115200n8".

Signed-off-by: Christoph Müllner <christophm30@gmail.com>
Change-Id: Iafe1320e77ab006c121f8d52745d54cef68a48c7

5 years agorockchip: Add params_setup to RK3328.
Christoph Müllner [Wed, 1 May 2019 15:45:10 +0000 (17:45 +0200)]
rockchip: Add params_setup to RK3328.

params_setup.c provides the function params_early_setup, which
takes care of parsing ATF parameters (bl31_plat_param array,
fdt or coreboot table). As params_early_setup is defined as weak
symbol in bl31_plat_setup.c, providing a platform-specific
bl31_plat_setup implementation is optional.

This patch adds the rockchip-common params_setup.c to the sources
for RK3328. This streamlines the parameter handling for all supported
rockchip SoCs.

Signed-off-by: Christoph Müllner <christophm30@gmail.com>
Change-Id: I071c03106114364ad2fc408e49cc791fe5b35925

5 years agorockchip: Streamline and complete UARTn_BASE macros.
Christoph Müllner [Tue, 30 Apr 2019 23:37:58 +0000 (01:37 +0200)]
rockchip: Streamline and complete UARTn_BASE macros.

In order to set the UART base during bootup in common code of
plat/rockchip, we need to streamline the way the UART base addresses
are defined and add the missing definitions and mappings.

This patch does so by following the pattern UARTn_BASE, which is
already in use on RK3399 and RK3328. The numbering itself is derived
from the upstream Linux DTS files of the individual SoCs.

Signed-off-by: Christoph Müllner <christophm30@gmail.com>
Change-Id: I341a1996f4ceed5f82a2f6687d4dead9d7cc5c1f

5 years agodocs: Update contribution guidelines for binary components
Julius Werner [Thu, 18 Apr 2019 23:47:46 +0000 (16:47 -0700)]
docs: Update contribution guidelines for binary components

This patch updates the contribution guidelines to refer to the new
binary repository.

Change-Id: I898dc58973be91c3f87be53a755269fca2e93174
Signed-off-by: Julius Werner <jwerner@chromium.org>
5 years agoMerge "ti: k3: common: Remove MSMC port definitions" into integration
Soby Mathew [Tue, 30 Apr 2019 16:17:09 +0000 (16:17 +0000)]
Merge "ti: k3: common: Remove MSMC port definitions" into integration

5 years agoMerge changes from topic "lm/stack_protector" into integration
Soby Mathew [Tue, 30 Apr 2019 15:43:21 +0000 (15:43 +0000)]
Merge changes from topic "lm/stack_protector" into integration

* changes:
  juno: Add security sources for tsp-juno
  Add support for default stack-protector flag

5 years agojuno: Add security sources for tsp-juno
Louis Mayencourt [Wed, 17 Apr 2019 15:35:24 +0000 (16:35 +0100)]
juno: Add security sources for tsp-juno

Security sources are required if stack-protector is enabled.

Change-Id: Ia0071f60cf03d48b200fd1facbe50bd9e2f8f282
Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
5 years agoAdd support for default stack-protector flag
Louis Mayencourt [Tue, 26 Mar 2019 16:59:26 +0000 (16:59 +0000)]
Add support for default stack-protector flag

The current stack-protector support is for none, "strong" or "all".
The default use of the flag enables the stack-protection to all
functions that declare a character array of eight bytes or more in
length on their stack.
This option can be tuned with the --param=ssp-buffer-size=N option.

Change-Id: I11ad9568187d58de1b962b8ae04edd1dc8578fb0
Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>