]> git.baikalelectronics.ru Git - arm-tf.git/log
arm-tf.git
5 years agoplat/arm/fvp: Support performing SDEI platform setup in runtime
Balint Dobszay [Wed, 18 Dec 2019 14:28:00 +0000 (15:28 +0100)]
plat/arm/fvp: Support performing SDEI platform setup in runtime

This patch introduces dynamic configuration for SDEI setup and is supported
when the new build flag SDEI_IN_FCONF is enabled. Instead of using C arrays
and processing the configuration at compile time, the config is moved to
dts files. It will be retrieved at runtime during SDEI init, using the fconf
layer.

Change-Id: If5c35a7517ba00a9f258d7f3e7c8c20cee169a31
Signed-off-by: Balint Dobszay <balint.dobszay@arm.com>
Co-authored-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
5 years agoMerge "Tegra: introduce support for SMCCC_ARCH_SOC_ID" into integration
Manish Pandey [Fri, 15 May 2020 08:57:42 +0000 (08:57 +0000)]
Merge "Tegra: introduce support for SMCCC_ARCH_SOC_ID" into integration

5 years agoMerge "Implement workaround for AT speculative behaviour" into integration
Mark Dykes [Thu, 14 May 2020 14:53:55 +0000 (14:53 +0000)]
Merge "Implement workaround for AT speculative behaviour" into integration

5 years agoImplement workaround for AT speculative behaviour
Manish V Badarkhe [Tue, 28 Apr 2020 03:53:32 +0000 (04:53 +0100)]
Implement workaround for AT speculative behaviour

During context switching from higher EL (EL2 or higher)
to lower EL can cause incorrect translation in TLB due to
speculative execution of AT instruction using out-of-context
translation regime.

Workaround is implemented as below during EL's (EL1 or EL2)
"context_restore" operation:
1. Disable page table walk using SCTLR.M and TCR.EPD0 & EPD1
   bits for EL1 or EL2 (stage1 and stage2 disabled)
2. Save all system registers except TCR and SCTLR (for EL1 and EL2)
3. Do memory barrier operation (isb) to ensure all
   system register writes are done.
4. Restore TCR and SCTLR registers (for EL1 and EL2)

Errata details are available for various CPUs as below:
Cortex-A76: 1165522
Cortex-A72: 1319367
Cortex-A57: 1319537
Cortex-A55: 1530923
Cortex-A53: 1530924

More details can be found in mail-chain:
https://lists.trustedfirmware.org/pipermail/tf-a/2020-April/000445.html

Currently, Workaround is implemented as build option which is default
disabled.

Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
Change-Id: If8545e61f782cb0c2dda7ffbaf50681c825bd2f0

5 years agoMerge changes I35c5abd9,I99e64245 into integration
Manish Pandey [Wed, 13 May 2020 16:06:42 +0000 (16:06 +0000)]
Merge changes I35c5abd9,I99e64245 into integration

* changes:
  SPMD: extract SPMC DTB header size from SPMD
  SPMD: code/comments cleanup

5 years agoMerge "doc: Reorganize maintainers.rst file" into integration
joanna.farley [Wed, 13 May 2020 09:27:41 +0000 (09:27 +0000)]
Merge "doc: Reorganize maintainers.rst file" into integration

5 years agoMerge "doc: Update various process documents" into integration
joanna.farley [Wed, 13 May 2020 09:21:19 +0000 (09:21 +0000)]
Merge "doc: Update various process documents" into integration

5 years agodoc: Reorganize maintainers.rst file
Sandrine Bailleux [Wed, 13 May 2020 06:57:41 +0000 (08:57 +0200)]
doc: Reorganize maintainers.rst file

The maintainers.rst file provides the list of all TF-A modules and their
code owners. As there are quite a lot of modules (and more to come) in
TF-A, it is sometimes hard to find the information.

Introduce categories (core code, drivers/libraries/framework, ...) and
classify each module in the right one.

Note that the core code category is pretty much empty right now but the
plan would be to expand it with further modules (e.g. PSCI, SDEI, TBBR,
...) in a future patch.

Change-Id: Id68a2dd79a8f6b68af5364bbf1c59b20c05f8fe7
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
5 years agodoc: Update various process documents
Sandrine Bailleux [Tue, 12 May 2020 08:36:05 +0000 (10:36 +0200)]
doc: Update various process documents

Most of the changes consist in using the new code owners terminology
(from [1]).

[1] https://developer.trustedfirmware.org/w/collaboration/project-maintenance-process/

Change-Id: Icead20e9335af12aa47d3f1ac5d04ca157b20c82
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
5 years agoSPMD: extract SPMC DTB header size from SPMD
Olivier Deprez [Fri, 7 Feb 2020 14:44:43 +0000 (15:44 +0100)]
SPMD: extract SPMC DTB header size from SPMD

Currently BL2 passes TOS_FW_CONFIG address and size through registers to
BL31. This corresponds to SPMC manifest load address and size. The SPMC
manifest is mapped in BL31 by dynamic mapping. This patch removes BL2
changes from generic code (which were enclosed by SPD=spmd) and retrieves
SPMC manifest size directly from within SPMD. The SPMC manifest load
address is still passed through a register by generic code.

Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
Change-Id: I35c5abd95c616ae25677302f0b1d0c45c51c042f

5 years agoSPMD: code/comments cleanup
Olivier Deprez [Thu, 16 Apr 2020 11:39:06 +0000 (13:39 +0200)]
SPMD: code/comments cleanup

As a follow-up to bdd2596d4, and related to SPM Dispatcher
EL3 component and SPM Core S-EL2/S-EL1 component: update
with cosmetic and coding rules changes. In addition:
-Add Armv8.4-SecEL2 arch detection helper.
-Add an SPMC context (on current core) get helper.
-Return more meaningful error return codes.
-Remove complexity in few spmd_smc_handler switch-cases.
-Remove unused defines and structures from spmd_private.h

Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
Change-Id: I99e642450b0dafb19d3218a2f0e2d3107e8ca3fe

5 years agoTegra: introduce support for SMCCC_ARCH_SOC_ID
Varun Wadekar [Tue, 12 May 2020 21:04:10 +0000 (14:04 -0700)]
Tegra: introduce support for SMCCC_ARCH_SOC_ID

This patch returns the SOC version and revision values from
the 'plat_get_soc_version' and 'plat_get_soc_revision' handlers.

Verified using TFTF SMCCC_ARCH_SOC_ID test.

<snip>
> Executing 'SMCCC_ARCH_SOC_ID test'
  TEST COMPLETE                                                 Passed
SOC Rev = 0x102
SOC Ver = 0x36b0019
<snip>

Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
Change-Id: Ibd7101619143b74f6f6660732daeac1a8bca3e44

5 years agoMerge "Fix SMCCC_ARCH_SOC_ID implementation" into integration
Mark Dykes [Fri, 8 May 2020 18:18:34 +0000 (18:18 +0000)]
Merge "Fix SMCCC_ARCH_SOC_ID implementation" into integration

5 years agoMerge changes from topic "fdt_wrappers_rework" into integration
Sandrine Bailleux [Thu, 7 May 2020 11:51:31 +0000 (11:51 +0000)]
Merge changes from topic "fdt_wrappers_rework" into integration

* changes:
  arm_fpga: Read UART address from DT
  arm_fpga: Read GICD and GICR base addresses from DT
  arm_fpga: Read generic timer counter frequency from DT
  arm_fpga: Use Generic UART

5 years agoMerge changes from topic "fdt_wrappers_rework" into integration
Sandrine Bailleux [Thu, 7 May 2020 08:59:33 +0000 (08:59 +0000)]
Merge changes from topic "fdt_wrappers_rework" into integration

* changes:
  plat/stm32: Use generic fdt_get_stdout_node_offset()
  fdt/wrappers: Introduce code to find UART DT node
  plat/stm32: Use generic fdt_get_reg_props_by_name()

5 years agoarm_fpga: Read UART address from DT
Andre Przywara [Thu, 9 Apr 2020 09:25:43 +0000 (10:25 +0100)]
arm_fpga: Read UART address from DT

The arm_fpga port requires a DTB, to launch a BL33 payload.
To make this port more flexible, we can also use the information in the
DT to configure the console driver.
For a start, find the DT node pointed to by the stdout-path property, and
read the base address from there.
This assumes for now that the stdout-path points to a PL011 UART.

This allows to remove platform specific addresses from the image. We
keep the original base address for the crash console.

Change-Id: I46a990de2315f81cae4d7913ae99a07b0bec5cb1
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
5 years agoplat/stm32: Use generic fdt_get_stdout_node_offset()
Andre Przywara [Thu, 9 Apr 2020 10:27:21 +0000 (11:27 +0100)]
plat/stm32: Use generic fdt_get_stdout_node_offset()

Now that we have an implementation for getting the node offset of the
stdout-path property in the generic fdt_wrappers code, use that to
replace the current ST platform specific implementation.

Change-Id: I5dd05684e7ca3cb563b5f71c885e1066393e057e
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
5 years agoarm_fpga: Read GICD and GICR base addresses from DT
Andre Przywara [Fri, 24 Jan 2020 15:46:05 +0000 (15:46 +0000)]
arm_fpga: Read GICD and GICR base addresses from DT

Since we use a DTB with all platform information to pass this on to a
kernel loaded as BL33, we can as well make use of it for our own
purposes.

Every DT would contain a node for the GIC(v3) interrupt controller, so
we can read the base address for the distributor and redistributors from
there.

This avoids hard coding this information in the code and allows for a more
flexible binary.

Change-Id: Ic530e223a21a45bc30a07a21048116d5af69e972
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
5 years agofdt/wrappers: Introduce code to find UART DT node
Andre Przywara [Thu, 26 Mar 2020 12:52:06 +0000 (12:52 +0000)]
fdt/wrappers: Introduce code to find UART DT node

The stdout-path property in the /chosen node of a DTB points to a device
node, which is used for boot console output.
On most (if not all) ARM based platforms this is the debug UART.
The ST platform code contains a function to parse this property and
chase down eventual aliases to learn the node offset of this UART node.

Introduce a slightly more generalised version of this ST platform function
in the generic fdt_wrappers code. This will be useful for other platforms
as well.

Change-Id: Ie6da47ace7833861b5e35fe8cba49835db3659a5
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
5 years agoarm_fpga: Read generic timer counter frequency from DT
Andre Przywara [Fri, 24 Jan 2020 15:02:27 +0000 (15:02 +0000)]
arm_fpga: Read generic timer counter frequency from DT

The ARM Generic Timer DT binding describes an (optional) property to
declare the counter frequency. Its usage is normally discouraged, as the
value should be read from the CNTFRQ_EL0 system register.

However in our case we can use it to program this register in the first
place, which avoids us to hard code a counter frequency into the code.
We keep some default value in, if the DT lacks that property for
whatever reason.

Change-Id: I5b71176db413f904f21eb16f3302fbb799cb0305
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
5 years agoplat/stm32: Use generic fdt_get_reg_props_by_name()
Andre Przywara [Thu, 26 Mar 2020 12:11:34 +0000 (12:11 +0000)]
plat/stm32: Use generic fdt_get_reg_props_by_name()

The STM32 platform port parse DT nodes to find base address to
peripherals. It does this by using its own implementation, even though
this functionality is generic and actually widely useful outside of the
STM32 code.

Re-implement fdt_get_reg_props_by_name() on top of the newly introduced
fdt_get_reg_props_by_index() function, and move it to fdt_wrapper.c.
This is removes the assumption that #address-cells and #size-cells are
always one.

Change-Id: I6d584930262c732b6e0356d98aea50b2654f789d
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
5 years agoarm_fpga: Use Generic UART
Andre Przywara [Thu, 9 Apr 2020 09:10:09 +0000 (10:10 +0100)]
arm_fpga: Use Generic UART

The SCP firmware on the ARM FPGA initialises the UART already. This allows
us to treat the PL011 as an SBSA Generic UART, which does not require
any further setup.

This in particular removes the need for any baudrate and base clock related
settings to be hard coded into the BL31 image.

Change-Id: I16fc943526267356b97166a7068459e06ff77f0f
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
5 years agoMerge "rcar_gen3: plat: Zero-terminate the string in unsigned_num_print()" into integ...
Sandrine Bailleux [Tue, 5 May 2020 13:12:33 +0000 (13:12 +0000)]
Merge "rcar_gen3: plat: Zero-terminate the string in unsigned_num_print()" into integration

5 years agoMerge changes I85eb75cf,Ic6d9f927 into integration
Sandrine Bailleux [Tue, 5 May 2020 12:01:48 +0000 (12:01 +0000)]
Merge changes I85eb75cf,Ic6d9f927 into integration

* changes:
  fconf: Update dyn_config compatible string
  doc: Add binding document for fconf.

5 years agoMerge "Fix build type is empty in version string" into integration
Sandrine Bailleux [Tue, 5 May 2020 08:37:47 +0000 (08:37 +0000)]
Merge "Fix build type is empty in version string" into integration

5 years agoFix SMCCC_ARCH_SOC_ID implementation
Manish V Badarkhe [Tue, 28 Apr 2020 12:25:56 +0000 (13:25 +0100)]
Fix SMCCC_ARCH_SOC_ID implementation

Commit 0e753437e75b ("Implement SMCCC_ARCH_SOC_ID SMC call") executes
and return the result of SMCCC_ARCH_SOC_ID(soc_id_type) to the
SMCCC_ARCH_FEATURES(SMCCC_ARCH_SOC_ID) itself. Moreover it expect to
pass soc_id_type for SMCCC_ARCH_FEATURES(SMCCC_ARCH_SOC_ID) which is
incorrect.

Fix the implementation by returning SMC_OK for
SMCCC_ARCH_FEATURES(SMCCC_ARCH_SOC_ID) always and move the current
implementation under "smccc_arch_id" function which gets called from
SMC handler on receiving "SMCCC_ARCH_SOC_ID" command.

This change is tested over linux operating system

Change-Id: I61a980045081eae786b907d408767ba9ecec3468
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
5 years agoMerge changes from topic "fdt_wrappers_rework" into integration
Manish Pandey [Mon, 4 May 2020 16:03:54 +0000 (16:03 +0000)]
Merge changes from topic "fdt_wrappers_rework" into integration

* changes:
  arm: fconf: Fix GICv3 dynamic configuration
  plat/stm32: Implement fdt_read_uint32_default() as a wrapper
  fdt/wrappers: Replace fdtw_read_cells() implementation
  plat/stm32: Use generic fdt_read_uint32_array() implementation
  fdt/wrappers: Generalise fdtw_read_array()

5 years agoarm: fconf: Fix GICv3 dynamic configuration
Andre Przywara [Thu, 26 Mar 2020 11:57:43 +0000 (11:57 +0000)]
arm: fconf: Fix GICv3 dynamic configuration

At the moment the fconf_populate_gicv3_config() implementation is
somewhat incomplete: First it actually fails to store the retrieved
information (the local addr[] array is going nowhere), but also it makes
quite some assumptions about the device tree passed to it: it needs to
use two address-cells and two size-cells, and also requires all five
register regions to be specified, where actually only the first two
are mandatory according to the binding (and needed by our code).

Fix this by introducing a proper generic function to retrieve "reg"
property information from a DT node:
We retrieve the #address-cells and #size-cells properties from the
parent node, then use those to extract the right values from the "reg"
property. The function takes an index to select one region of a reg
property.

This is loosely based on the STM32 implementation using "reg-names",
which we will subsume in a follow-up patch.

Change-Id: Ia59bfdf80aea4e36876c7b6ed4d153e303f482e8
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
5 years agofconf: Update dyn_config compatible string
Louis Mayencourt [Mon, 20 Apr 2020 13:17:21 +0000 (14:17 +0100)]
fconf: Update dyn_config compatible string

Dynamic configuration properties are fconf properties. Modify the
compatible string from "arm,.." to "fconf,.." to reflect this.

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

5 years agodoc: Add binding document for fconf.
Louis Mayencourt [Mon, 20 Apr 2020 13:14:10 +0000 (14:14 +0100)]
doc: Add binding document for fconf.

Complete the documentation with information on how to write a DTS for
fconf. This patch adds the bindings information for dynamic
configuration properties.

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

5 years agoplat/stm32: Implement fdt_read_uint32_default() as a wrapper
Andre Przywara [Thu, 26 Mar 2020 11:50:33 +0000 (11:50 +0000)]
plat/stm32: Implement fdt_read_uint32_default() as a wrapper

The STM32 platform code uses its own set of FDT helper functions,
although some of them are fairly generic.

Remove the implementation of fdt_read_uint32_default() and implement it
on top of the newly introduced fdt_read_uint32() function, then convert
all users over.

This also fixes two callers, which were slightly abusing the "default"
semantic.

Change-Id: I570533362b4846e58dd797a92347de3e0e5abb75
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
5 years agofdt/wrappers: Replace fdtw_read_cells() implementation
Andre Przywara [Thu, 26 Mar 2020 11:22:37 +0000 (11:22 +0000)]
fdt/wrappers: Replace fdtw_read_cells() implementation

Our fdtw_read_cells() implementation goes to great lengths to
sanity-check every parameter and result, but leaves a big hole open:
The size of the storage the value pointer points at needs to match the
number of cells given. This can't be easily checked at compile time,
since we lose the size information by using a void pointer.
Regardless the current usage of this function is somewhat wrong anyways,
since we use it on single-element, fixed-length properties only, for
which the DT binding specifies the size.
Typically we use those functions dealing with a number of cells in DT
context to deal with *dynamically* sized properties, which depend on
other properties (#size-cells, #clock-cells, ...), to specify the number
of cells needed.

Another problem with the current implementation is the use of
ambiguously sized types (uintptr_t, size_t) together with a certain
expectation about their size. In general there is no relation between
the length of a DT property and the bitness of the code that parses the
DTB: AArch64 code could encounter 32-bit addresses (where the physical
address space is limited to 4GB [1]), while AArch32 code could read
64-bit sized properties (/memory nodes on LPAE systems, [2]).

To make this more clear, fix the potential issues and also align more
with other DT users (Linux and U-Boot), introduce functions to explicitly
read uint32 and uint64 properties. As the other DT consumers, we do this
based on the generic "read array" function.
Convert all users to use either of those two new functions, and make
sure we never use a pointer to anything other than uint32_t or uint64_t
variables directly.

This reveals (and fixes) a bug in plat_spmd_manifest.c, where we write
4 bytes into a uint16_t variable (passed via a void pointer).

Also we change the implementation of the function to better align with
other libfdt users, by using the right types (fdt32_t) and common
variable names (*prop, prop_names).

[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi#n874
[2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/ecx-2000.dts

Change-Id: I718de960515117ac7a3331a1b177d2ec224a3890
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
5 years agoplat/stm32: Use generic fdt_read_uint32_array() implementation
Andre Przywara [Thu, 26 Mar 2020 12:51:21 +0000 (12:51 +0000)]
plat/stm32: Use generic fdt_read_uint32_array() implementation

The device tree parsing code for the STM32 platform is using its own FDT
helper functions, some of them being rather generic.
In particular the existing fdt_read_uint32_array() implementation is now
almost identical to the new generic code in fdt_wrappers.c, so we can
remove the ST specific version and adjust the existing callers.

Compared to the original ST implementation the new version takes a
pointer to the DTB as the first argument, and also swaps the order of
the number of cells and the pointer.

Change-Id: Id06b0f1ba4db1ad1f733be40e82c34f46638551a
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
5 years agofdt/wrappers: Generalise fdtw_read_array()
Andre Przywara [Mon, 30 Mar 2020 22:21:13 +0000 (23:21 +0100)]
fdt/wrappers: Generalise fdtw_read_array()

Currently our fdtw_read_array() implementation requires the length of
the property to exactly match the requested size, which makes it less
flexible for parsing generic device trees.
Also the name is slightly misleading, since we treat the cells of the
array as 32 bit unsigned integers, performing the endianess conversion.

To fix those issues and align the code more with other DT users (Linux
kernel or U-Boot), rename the function to "fdt_read_uint32_array", and
relax the length check to only check if the property covers at least the
number of cells we request.
This also changes the variable names to be more in-line with other DT
users, and switches to the proper data types.

This makes this function more useful in later patches.

Change-Id: Id86f4f588ffcb5106d4476763ecdfe35a735fa6c
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
5 years agorcar_gen3: plat: Zero-terminate the string in unsigned_num_print()
Marek Vasut [Sat, 11 Apr 2020 17:02:29 +0000 (19:02 +0200)]
rcar_gen3: plat: Zero-terminate the string in unsigned_num_print()

Make sure the string generated in unsigned_num_print() is zero-terminated.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Change-Id: Ic0ac1ebca255002522159a9152ab41991f043d05

5 years agoMerge changes from topic "linker-script" into integration
Sandrine Bailleux [Mon, 27 Apr 2020 08:45:34 +0000 (08:45 +0000)]
Merge changes from topic "linker-script" into integration

* changes:
  linker_script: move .data section to bl_common.ld.h
  linker_script: move stacks section to bl_common.ld.h
  bl1: remove '.' from stacks section in linker script

5 years agolinker_script: move .data section to bl_common.ld.h
Masahiro Yamada [Wed, 22 Apr 2020 01:50:12 +0000 (10:50 +0900)]
linker_script: move .data section to bl_common.ld.h

Move the data section to the common header.

I slightly tweaked some scripts as follows:

[1] bl1.ld.S has ALIGN(16). I added DATA_ALIGN macro, which is 1
    by default, but overridden by bl1.ld.S. Currently, ALIGN(16)
    of the .data section is redundant because commit 412865907699
    ("Fix boot failures on some builds linked with ld.lld.") padded
    out the previous section to work around the issue of LLD version
    <= 10.0. This will be fixed in the future release of LLVM, so
    I am keeping the proper way to align LMA.

[2] bl1.ld.S and bl2_el3.ld.S define __DATA_RAM_{START,END}__ instead
    of __DATA_{START,END}__. I put them out of the .data section.

[3] SORT_BY_ALIGNMENT() is missing tsp.ld.S, sp_min.ld.S, and
    mediatek/mt6795/bl31.ld.S. This commit adds SORT_BY_ALIGNMENT()
    for all images, so the symbol order in those three will change,
    but I do not think it is a big deal.

Change-Id: I215bb23c319f045cd88e6f4e8ee2518c67f03692
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
5 years agoFix build type is empty in version string
Peiyuan Song [Sat, 25 Apr 2020 08:53:43 +0000 (16:53 +0800)]
Fix build type is empty in version string

Signed-off-by: Peiyuan Song <squallatf@gmail.com>
Change-Id: I97c2e6f8c12ecf828605811019d47a24293c1ebb

5 years agolinker_script: move stacks section to bl_common.ld.h
Masahiro Yamada [Tue, 7 Apr 2020 04:04:24 +0000 (13:04 +0900)]
linker_script: move stacks section to bl_common.ld.h

The stacks section is the same for all BL linker scripts.

Move it to the common header file.

Change-Id: Ibd253488667ab4f69702d56ff9e9929376704f6c
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
5 years agobl1: remove '.' from stacks section in linker script
Masahiro Yamada [Tue, 7 Apr 2020 02:17:38 +0000 (11:17 +0900)]
bl1: remove '.' from stacks section in linker script

Only BL1 specifies '.' in the address field of the stacks section.

Commit 4f59d8359f97 ("Make BL1 RO and RW base addresses configurable")
added '.' on purpose but the commit message does not help to understand
why.

This commit gets rid of it in order to factor out the stacks section
into include/common/bl_common.ld.h

I compared the build result for PLAT=qemu.

'aarch64-linux-gnu-nm -n build/qemu/release/bl1/bl1.elf' will change
as follows:

@@ -336,8 +336,8 @@
 000000000e04e0e0 d max_log_level
 000000000e04e0e4 D console_state
 000000000e04e0e5 D __DATA_RAM_END__
-000000000e04e0e5 B __STACKS_START__
 000000000e04e100 b platform_normal_stacks
+000000000e04e100 B __STACKS_START__
 000000000e04f100 b bl1_cpu_context
 000000000e04f100 B __BSS_START__
 000000000e04f100 B __STACKS_END__

After this change, __STACKS_START__ will match to platform_normal_stacks,
and I think it makes more sense.

'aarch64-linux-gnu-objdump -h build/qemu/release/bl1/bl1.elf' will change
as follows:

@@ -9,11 +9,11 @@
                   CONTENTS, ALLOC, LOAD, READONLY, DATA
   2 .data         000000e5  000000000e04e000  0000000000004a60  0001e000  2**4
                   CONTENTS, ALLOC, LOAD, DATA
-  3 stacks        0000101b  000000000e04e0e5  000000000e04e0e5  0001e0e5  2**6
+  3 stacks        00001000  000000000e04e100  0000000000004b45  0001e100  2**6
                   ALLOC
-  4 .bss          000007e0  000000000e04f100  000000000e04f100  0001e0e5  2**5
+  4 .bss          000007e0  000000000e04f100  0000000000004b50  0001f100  2**5
                   ALLOC
-  5 xlat_table    00006000  000000000e050000  000000000e050000  0001e0e5  2**12
+  5 xlat_table    00006000  000000000e050000  0000000000004b45  00020000  2**12
                   ALLOC
   6 coherent_ram  00000000  000000000e056000  000000000e056000  0001f000  2**12
                   CONTENTS

Sandrine pointed me to a useful document [1] to understand why LMAs of
stacks, .bss, and xlat_table section have changed.

Before this patch, they fell into this scenario:
 "If the section has a specific VMA address, then this is used as the
  LMA address as well."

With this commit, the following applies:
 "Otherwise if a memory region can be found that is compatible with the
  current section, and this region contains at least one section, then
  the LMA is set so the difference between the VMA and LMA is the same
  as the difference between the VMA and LMA of the last section in the
  located region."

Anyway, those three sections are not loaded, so the LMA changes will not
be a problem. The size of bl1.bin is still the same.

QEMU still boots successfully with this change.

A good thing is, this fixes the error for the latest LLD. If I use the
mainline LLVM, I see the following error. The alignment check will probably
be included in the LLVM 11 release, so it is better to fix it now.

$ PLAT=qemu CC=clang CROSS_COMPILE=aarch64-linux-gnu-
  [ snip ]
ld.lld: error: address (0xe04e0e5) of section stacks is not a multiple of alignment (64)
make: *** [Makefile:1050: build/qemu/release/bl1/bl1.elf] Error 1

[1]: https://sourceware.org/binutils/docs/ld/Output-Section-LMA.html#Output-Section-LMA

Change-Id: I3d2f3cc2858be8b3ce2eab3812a76d1e0b5f3a32
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
5 years agoMerge "Provide a hint to power controller for DSU cluster power down" into integration
Sandrine Bailleux [Fri, 24 Apr 2020 09:08:33 +0000 (09:08 +0000)]
Merge "Provide a hint to power controller for DSU cluster power down" into integration

5 years agoMerge "board/rddanielxlr: add support for rd-daniel config-xlr platform" into integration
Manish Pandey [Thu, 23 Apr 2020 20:35:48 +0000 (20:35 +0000)]
Merge "board/rddanielxlr: add support for rd-daniel config-xlr platform" into integration

5 years agoMerge "spm: Normalize the style of spm core manifest" into integration
Manish Pandey [Thu, 23 Apr 2020 11:33:55 +0000 (11:33 +0000)]
Merge "spm: Normalize the style of spm core manifest" into integration

5 years agospm: Normalize the style of spm core manifest
Louis Mayencourt [Tue, 31 Mar 2020 09:51:46 +0000 (10:51 +0100)]
spm: Normalize the style of spm core manifest

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

5 years agoboard/rddanielxlr: add support for rd-daniel config-xlr platform
Aditya Angadi [Mon, 6 Apr 2020 11:41:23 +0000 (17:11 +0530)]
board/rddanielxlr: add support for rd-daniel config-xlr platform

RD-Daniel Config-XLR platform has four identical chips connected via a
high speed coherent CCIX link. Each chip has four Neoverse cores
connected via coherent CMN interconnect.

Change-Id: I37d1b91f2b6ba08f61c64d0288bc16a429836c08
Signed-off-by: Aditya Angadi <aditya.angadi@arm.com>
5 years agoMerge "fdts: a5ds: Fix for the system timer issue." into integration
Sandrine Bailleux [Wed, 22 Apr 2020 06:35:15 +0000 (06:35 +0000)]
Merge "fdts: a5ds: Fix for the system timer issue." into integration

5 years agoMerge "doc: Treat Sphinx warnings as errors" into integration
Sandrine Bailleux [Tue, 21 Apr 2020 09:38:01 +0000 (09:38 +0000)]
Merge "doc: Treat Sphinx warnings as errors" into integration

5 years agodoc: Treat Sphinx warnings as errors
Sandrine Bailleux [Fri, 17 Apr 2020 12:19:20 +0000 (14:19 +0200)]
doc: Treat Sphinx warnings as errors

'make doc' will now fail if Sphinx outputs any warning messages during
documentation generation.

Change-Id: I3e466af58ccf29b14a7e61037539b79ab6fc6037
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
5 years agoMerge "Incrementing the minor version to reflect upcoming v2.3 release" into integration
Mark Dykes [Mon, 20 Apr 2020 15:56:43 +0000 (15:56 +0000)]
Merge "Incrementing the minor version to reflect upcoming v2.3 release" into integration

5 years agoIncrementing the minor version to reflect upcoming v2.3 release
Madhukar Pappireddy [Mon, 20 Apr 2020 05:01:09 +0000 (00:01 -0500)]
Incrementing the minor version to reflect upcoming v2.3 release

Change-Id: I27f7d92988fc16f68041c2ddaa8dd3a60362ddd1
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
5 years agofdts: a5ds: Fix for the system timer issue.
lakshmi Kailasanathan [Fri, 17 Apr 2020 11:52:19 +0000 (12:52 +0100)]
fdts: a5ds: Fix for the system timer issue.

A5DS FPGA system timer clock frequency is 7.5Mhz.
The dt is file updated inline with the hardware
clock frequency.

Change-Id: I3f6c2e0d4a7b293175a42cf398a8730448504af9
Signed-off-by: lakshmi Kailasanathan <lakshmi.Kailasanathan@arm.com>
5 years agoMerge "juno/sgm: Align SCP_BL2 to page boundary" into integration
Mark Dykes [Fri, 17 Apr 2020 15:25:21 +0000 (15:25 +0000)]
Merge "juno/sgm: Align SCP_BL2 to page boundary" into integration

5 years agoMerge "doc: Fixup some SMCCC links" into integration
Mark Dykes [Fri, 17 Apr 2020 15:23:47 +0000 (15:23 +0000)]
Merge "doc: Fixup some SMCCC links" into integration

5 years agojuno/sgm: Align SCP_BL2 to page boundary
Chris Kay [Fri, 17 Apr 2020 09:36:34 +0000 (10:36 +0100)]
juno/sgm: Align SCP_BL2 to page boundary

This commit fixes an assertion that was triggering in certain contexts:

    ERROR: mmap_add_region_check() failed. error -22
    ASSERT: lib/xlat_tables_v2/xlat_tables_core.c:790

Change-Id: Ia55b3fb4f496c8cd791ea6093d122edae0a7e92a
Signed-off-by: Chris Kay <chris.kay@arm.com>
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
5 years agodoc: Fixup some SMCCC links
Sandrine Bailleux [Fri, 17 Apr 2020 12:06:52 +0000 (14:06 +0200)]
doc: Fixup some SMCCC links

This is a fixup for patch 3ba55a3c5fa260c9218be1adff8f39fc2a568d68
("docs: Update SMCCC doc, other changes for release"), where some
links names got changed but their references didn't.

Change-Id: I980d04dde338f3539a2ec1ae2e807440587b1cf5
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
5 years agoMerge "doc: Set fconf as experimental feature" into integration
Sandrine Bailleux [Fri, 17 Apr 2020 08:35:33 +0000 (08:35 +0000)]
Merge "doc: Set fconf as experimental feature" into integration

5 years agoMerge "docs: Update SMCCC doc, other changes for release" into integration
Mark Dykes [Thu, 16 Apr 2020 21:04:44 +0000 (21:04 +0000)]
Merge "docs: Update SMCCC doc, other changes for release" into integration

5 years agoMerge "docs: Updating Change log for v2.3 Release" into integration
Mark Dykes [Thu, 16 Apr 2020 21:04:17 +0000 (21:04 +0000)]
Merge "docs: Updating Change log for v2.3 Release" into integration

5 years agodoc: Set fconf as experimental feature
Louis Mayencourt [Thu, 9 Apr 2020 15:32:20 +0000 (16:32 +0100)]
doc: Set fconf as experimental feature

Following the messages on the mailing list regarding the possible issue around
reading DTB's information, we decided to flag the fconf feature as experimental.
A uniform approach should be used to handle properties miss and DTB validation.

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

5 years agodocs: Updating Change log for v2.3 Release
laurenw-arm [Tue, 14 Apr 2020 21:44:52 +0000 (16:44 -0500)]
docs: Updating Change log for v2.3 Release

Updating the change log for the v2.3 release and the upcoming change log
template for v2.4 release.

Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com>
Change-Id: Ice875d3c93227069738a429d4b945512af8470e9

5 years agodocs: Update SMCCC doc, other changes for release
laurenw-arm [Thu, 16 Apr 2020 15:02:17 +0000 (10:02 -0500)]
docs: Update SMCCC doc, other changes for release

Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com>
Change-Id: Ie842d6a9919776de151a4e9304f870aede07c47a

5 years agoMerge "docs: Fixes and updates for the v2.3 release" into integration
Sandrine Bailleux [Thu, 16 Apr 2020 07:42:55 +0000 (07:42 +0000)]
Merge "docs: Fixes and updates for the v2.3 release" into integration

5 years agoMerge "docs: Updating Release information for v2.4" into integration
joanna.farley [Thu, 16 Apr 2020 07:12:39 +0000 (07:12 +0000)]
Merge "docs: Updating Release information for v2.4" into integration

5 years agodocs: Fixes and updates for the v2.3 release
laurenw-arm [Wed, 15 Apr 2020 22:48:36 +0000 (17:48 -0500)]
docs: Fixes and updates for the v2.3 release

A small set of misc changes to ensure correctness before the v2.3
release.

Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com>
Change-Id: I5b4e35b3b46616df0453cecff61f5a414951cd62

5 years agodocs: Updating Release information for v2.4
laurenw-arm [Wed, 15 Apr 2020 20:19:50 +0000 (15:19 -0500)]
docs: Updating Release information for v2.4

Signed-off-by: Lauren Wehrmeister <lauren.wehrmeister@arm.com>
Change-Id: I5a7ae778999295f3453b7ab0bfc26351e545fb8f

5 years agoProvide a hint to power controller for DSU cluster power down
Madhukar Pappireddy [Wed, 30 Oct 2019 19:24:39 +0000 (14:24 -0500)]
Provide a hint to power controller for DSU cluster power down

By writing 0 to CLUSTERPWRDN DSU register bit 0, we send an
advisory to the power controller that cluster power is not required
when all cores are powered down.

The AArch32 CLUSTERPWRDN register is architecturally mapped to the
AArch64 CLUSTERPWRDN_EL1 register

Change-Id: Ie6e67c1c7d811fa25c51e2e405ca7f59bd20c81b
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
5 years agoMerge "plat/arm/sgi: update mmap and xlat count" into integration
Manish Pandey [Wed, 15 Apr 2020 11:25:08 +0000 (11:25 +0000)]
Merge "plat/arm/sgi: update mmap and xlat count" into integration

5 years agoMerge "Fix Broadcom Stingray platform documentation" into integration
Sandrine Bailleux [Wed, 15 Apr 2020 10:29:27 +0000 (10:29 +0000)]
Merge "Fix Broadcom Stingray platform documentation" into integration

5 years agoFix Broadcom Stingray platform documentation
Sandrine Bailleux [Wed, 15 Apr 2020 09:13:38 +0000 (11:13 +0200)]
Fix Broadcom Stingray platform documentation

 - Include the platform documentation in the table of contents.

 - Add a title for the document. Without this, the platform
   documentation was listed under a 'Description' title on page
   https://trustedfirmware-a.readthedocs.io/en/latest/plat/index.html

 - Change TF-A git repository URL to point to tf.org (rather than the
   deprecated read-only mirror on Github).

 - Fix the restructuredText syntax for the FIP command line. It was
   not displayed at all on the rendered version.

Change-Id: I7a0f062bcf8e0dfc65e8f8bdd6775c497a47e619
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
5 years agoplat/arm/sgi: update mmap and xlat count
Aditya Angadi [Wed, 8 Apr 2020 08:47:08 +0000 (14:17 +0530)]
plat/arm/sgi: update mmap and xlat count

A single chip platform requires five mmap entries and a corresponding
number of translation tables. For every additional chip in the system,
three additional mmap entries are required to map the shared SRAM and
the IO regions. A corresponding number of additional translation
tables are required as well.

Change-Id: I1332a1305f2af62181387cf36954f6fb0e6f11ed
Signed-off-by: Aditya Angadi <aditya.angadi@arm.com>
5 years agoMerge "stingray: fix coverity reported issues on brcm platform" into integration
Sandrine Bailleux [Tue, 14 Apr 2020 07:54:26 +0000 (07:54 +0000)]
Merge "stingray: fix coverity reported issues on brcm platform" into integration

5 years agostingray: fix coverity reported issues on brcm platform
Sheetal Tigadoli [Mon, 13 Apr 2020 13:13:29 +0000 (18:43 +0530)]
stingray: fix coverity reported issues on brcm platform

fix coverity reported issues
1. uninitialized var,
2. check for negative val on unsigned variable

Signed-off-by: Sheetal Tigadoli <sheetal.tigadoli@broadcom.com>
Change-Id: I28b7517135ba6c1ba0df04f0c73189cf84ba89e6

5 years agoMerge "arm_fpga: Remove bogus timer initialisation" into integration
Sandrine Bailleux [Thu, 9 Apr 2020 15:03:20 +0000 (15:03 +0000)]
Merge "arm_fpga: Remove bogus timer initialisation" into integration

5 years agoarm_fpga: Remove bogus timer initialisation
Andre Przywara [Thu, 9 Apr 2020 10:27:21 +0000 (11:27 +0100)]
arm_fpga: Remove bogus timer initialisation

The arm_fpga platform code contains an dubious line to initialise some
timer. On closer inspection this turn out to be bogus, as this was only
needed on some special (older) FPGA board, and is actually not needed on
the current model. Also the base address was wrong anyways.

Remove the code entirely.

Change-Id: I02e71aea645051b5addb42d972d7a79f04b81106
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
5 years agoMerge "TF-A GICv3 driver: Change API for GICR_IPRIORITYR accessors" into integration
joanna.farley [Tue, 7 Apr 2020 22:48:39 +0000 (22:48 +0000)]
Merge "TF-A GICv3 driver: Change API for GICR_IPRIORITYR accessors" into integration

5 years agoTF-A GICv3 driver: Change API for GICR_IPRIORITYR accessors
Alexei Fedorov [Tue, 7 Apr 2020 17:16:18 +0000 (18:16 +0100)]
TF-A GICv3 driver: Change API for GICR_IPRIORITYR accessors

To support compatibility with previous GICv3 driver version
this patch:
- restores original API for gicr_read_ipriority() and
gicr_wrtite_ipriority() functions;
- adds accessor functions for GICR_XXX0,1 registers, e.g.
GICR_IGROUPR0, GICR_ICFGR0, GICR_ICFGR1, etc.

Change-Id: I796a312a61665ff384e3d9de2f4b3c60f700b43b
Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
5 years agoMerge "plat/arm/rddaniel: enabled GICv4 extension" into integration
Alexei Fedorov [Tue, 7 Apr 2020 17:31:53 +0000 (17:31 +0000)]
Merge "plat/arm/rddaniel: enabled GICv4 extension" into integration

5 years agoMerge "gic multichip: add support for clayton" into integration
Alexei Fedorov [Tue, 7 Apr 2020 17:30:40 +0000 (17:30 +0000)]
Merge "gic multichip: add support for clayton" into integration

5 years agoplat/arm/rddaniel: enabled GICv4 extension
Vijayenthiran Subramaniam [Mon, 6 Apr 2020 12:24:42 +0000 (17:54 +0530)]
plat/arm/rddaniel: enabled GICv4 extension

RD-Daniel uses GIC-Clayton as its interrupt controller which is an
implementation of GICv4.1 architecture. Hence for RD-Daniel, enable
GICv4 extension support.

Change-Id: I45ae8c82376f8fe8fc0666306822ae2db74e71b8
Signed-off-by: Vijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
5 years agogic multichip: add support for clayton
Vijayenthiran Subramaniam [Mon, 6 Apr 2020 08:24:50 +0000 (13:54 +0530)]
gic multichip: add support for clayton

GIC-Clayton supports multichip operation mode which allows it to connect
upto 16 other GIC-Clayton instances. GIC-Clayton's multichip programming
and operation remains same as GIC-600 with a minor change in the
SPI_BLOCKS and SPI_BLOCK_MIN shifts to accommodate additional SPI
ranges. So identify if the GIC v4 extension is enabled by the platform
makefile and appropriately select the SPI_BLOCKS and SPI_BLOCK_MIN
shifts.

Change-Id: I95fd80ef16af6c7ca09e2335539187b133052d41
Signed-off-by: Vijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
5 years agoMerge changes from topics "af/fvp_gicv4", "af/gicv4", "af/gic_extended" into integration
Olivier Deprez [Tue, 7 Apr 2020 12:52:46 +0000 (12:52 +0000)]
Merge changes from topics "af/fvp_gicv4", "af/gicv4", "af/gic_extended" into integration

* changes:
  FVP: Add support for GICv4 extension
  TF-A: Add GICv4 extension for GIC driver
  TF-A GICv3 driver: Add extended PPI and SPI range

5 years agoFVP: Add support for GICv4 extension
Alexei Fedorov [Tue, 7 Apr 2020 10:48:00 +0000 (11:48 +0100)]
FVP: Add support for GICv4 extension

This patch adds support for GICv4 extension for FVP platform.

Change-Id: Ia389b61266af669b1ca9b999a8b76476cab214f4
Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
5 years agoTF-A: Add GICv4 extension for GIC driver
Alexei Fedorov [Mon, 6 Apr 2020 18:00:35 +0000 (19:00 +0100)]
TF-A: Add GICv4 extension for GIC driver

This patch adds support for GICv4 extension.
New `GIC_ENABLE_V4_EXTN` option passed to gicv3.mk makefile
was added, and enables GICv4 related changes when set to 1.
This option defaults to 0.

Change-Id: I30ebe1b7a98d3a54863900f37eda4589c707a288
Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
5 years agoMerge "coreboot: Add memory range parsing" into integration
Sandrine Bailleux [Tue, 7 Apr 2020 07:35:29 +0000 (07:35 +0000)]
Merge "coreboot: Add memory range parsing" into integration

5 years agocoreboot: Add memory range parsing
Julius Werner [Fri, 27 Mar 2020 01:06:21 +0000 (18:06 -0700)]
coreboot: Add memory range parsing

This patch adds code to parse memory range information passed by
coreboot, and a simple helper to test whether a specific address belongs
to a range. This may be useful for coreboot-using platforms that need to
know information about the system's memory layout (e.g. to check whether
an address passed in via SMC targets valid DRAM).

Signed-off-by: Julius Werner <jwerner@chromium.org>
Change-Id: I3bea326c426db27d1a8b7d6e17418e4850e884b4

5 years agoIncrease maximum size of BL2 image
Manish V Badarkhe [Thu, 2 Apr 2020 12:23:45 +0000 (13:23 +0100)]
Increase maximum size of BL2 image

Increased the maximum size of BL2 image in order to
accommodate the BL2 image when TF-A build with no compiler
optimization for ARM platform.

Note: As of now, "no compiler optimization" build works
only when TRUSTED_BOOT_BOARD option is set to 0.

This change is verified using below CI configuration:
1. juno-no-optimize-default:juno-linux.uboot
2. fvp-no-optimize-default,fvp-default:fvp-tftf-fip.tftf-aemv8a-debug

Change-Id: I5932621237f8acd1b510682388f3ba78eae90ea4
Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
5 years agolocks: bakery: use is_dcache_enabled() helper
Masahiro Yamada [Thu, 2 Apr 2020 06:35:19 +0000 (15:35 +0900)]
locks: bakery: use is_dcache_enabled() helper

bakery_lock_normal.c uses the raw register accessor, read_sctlr(_el3)
to check whether the dcache is enabled.

Using is_dcache_enabled() is cleaner, and a good abstraction for
the library code like this.

A problem is is_dcache_enabled() is declared in the local header,
lib/xlat_tables_v2/xlat_tables_private.h

I searched for a good place to declare this helper. Moving it to
arch_helpers.h, closed to cache operation helpers, looks good enough
to me.

I also changed the type of 'is_cached' to bool for consistency,
and to avoid MISRA warnings.

Change-Id: I9b016f67bc8eade25c316aa9c0db0fa4cd375b79
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
5 years agoMerge "stingray: Fix board configuration typo."
Mark Dykes [Mon, 6 Apr 2020 18:16:43 +0000 (18:16 +0000)]
Merge "stingray: Fix board configuration typo."

5 years agoTF-A GICv3 driver: Add extended PPI and SPI range
Alexei Fedorov [Mon, 6 Apr 2020 15:27:54 +0000 (16:27 +0100)]
TF-A GICv3 driver: Add extended PPI and SPI range

This patch provides support for GICv3.1 extended PPI and SPI
range. The option is enabled by setting to 1 and passing
`GIC_EXT_INTID` build flag to gicv3.mk makefile.
This option defaults to 0 with no extended range support.

Change-Id: I7d09086fe22ea531c5df51a8a1efd8928458d394
Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
5 years agostingray: Fix board configuration typo.
Max Shvetsov [Mon, 6 Apr 2020 10:32:38 +0000 (11:32 +0100)]
stingray: Fix board configuration typo.

Default board configuration was set to bcm958742k which is not present
in current codebase. This causes a default platform build to fail.
Changing to bcm958742t.

Signed-off-by: Max Shvetsov <maksims.svecovs@arm.com>
Change-Id: Ie24f94ef0ef316ff56fe142df5de45d70ba93c28

5 years agoMerge "Fix MISRA C issues in BL1/BL2/BL31" into integration
Mark Dykes [Sat, 4 Apr 2020 19:58:56 +0000 (19:58 +0000)]
Merge "Fix MISRA C issues in BL1/BL2/BL31" into integration

5 years agoMerge "xlat_tables_v2: use get_current_el_maybe_constant() in is_dcache_enabled(...
Mark Dykes [Fri, 3 Apr 2020 21:41:05 +0000 (21:41 +0000)]
Merge "xlat_tables_v2: use get_current_el_maybe_constant() in is_dcache_enabled()" into integration

5 years agoFix MISRA C issues in BL1/BL2/BL31
John Powell [Fri, 20 Mar 2020 19:21:05 +0000 (14:21 -0500)]
Fix MISRA C issues in BL1/BL2/BL31

Attempts to address MISRA compliance issues in BL1, BL2, and BL31 code.
Mainly issues like not using boolean expressions in conditionals,
conflicting variable names, ignoring return values without (void), adding
explicit casts, etc.

Change-Id: If1fa18ab621b9c374db73fa6eaa6f6e5e55c146a
Signed-off-by: John Powell <john.powell@arm.com>
5 years agoMerge "arm_fpga: adapt to new way of including gicv3 files" into integration
Alexei Fedorov [Fri, 3 Apr 2020 19:04:45 +0000 (19:04 +0000)]
Merge "arm_fpga: adapt to new way of including gicv3 files" into integration

5 years agoarm_fpga: adapt to new way of including gicv3 files
Manish Pandey [Fri, 3 Apr 2020 17:59:20 +0000 (18:59 +0100)]
arm_fpga: adapt to new way of including gicv3 files

with commit a6ea06f5, the way platform includes gicv3 files has been
modified, this patch adapts to new method of including gicv3 files
for arm_fpga platform.

Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Change-Id: Ic5ccae842b39b7db06d4f23c5738b174c42edf63

5 years agoMerge "xlat lib v2: Add support to pass shareability attribute for normal memory...
Manish Pandey [Fri, 3 Apr 2020 18:06:52 +0000 (18:06 +0000)]
Merge "xlat lib v2: Add support to pass shareability attribute for normal memory region" into integration

5 years agoMerge changes from topic "brcm_initial_support" into integration
Manish Pandey [Fri, 3 Apr 2020 13:53:48 +0000 (13:53 +0000)]
Merge changes from topic "brcm_initial_support" into integration

* changes:
  doc: brcm: Add documentation file for brcm stingray platform
  drivers: Add SPI Nor flash support
  drivers: Add iproc spi driver
  drivers: Add emmc driver for Broadcom platforms
  Add BL31 support for Broadcom stingray platform
  Add BL2 support for Broadcom stingray platform
  Add bl31 support common across Broadcom platforms
  Add bl2 setup code common across Broadcom platforms
  drivers: Add support to retrieve plat_toc_flags

5 years agoxlat lib v2: Add support to pass shareability attribute for normal memory region
Pramod Kumar [Wed, 19 Feb 2020 05:09:10 +0000 (10:39 +0530)]
xlat lib v2: Add support to pass shareability attribute for normal memory region

Present framework restricts platform to pass desired shareability attribute
for normal memory region mapped in MMU. it defaults to inner shareability.

There are platforms where memories (like SRAM) are not placed at snoopable
region in advaned interconnect like CCN/CMN hence snoopable transaction is
not possible to these memory. Though These memories could be mapped in MMU
as MT_NON_CACHEABLE, data caches benefits won't be available.

If these memories are mapped as cacheable with non-shareable attribute,
when only one core is running like at boot time, MMU data cached could be
used for faster execution. Hence adding support to pass the shareability
attribute for memory regions.

Signed-off-by: Pramod Kumar <pramod.kumar@broadcom.com>
Change-Id: I678cb50120a28dae4aa9d1896e8faf1dd5cf1754

5 years agodoc: brcm: Add documentation file for brcm stingray platform
Sheetal Tigadoli [Fri, 20 Mar 2020 18:42:50 +0000 (00:12 +0530)]
doc: brcm: Add documentation file for brcm stingray platform

Signed-off-by: Sheetal Tigadoli <sheetal.tigadoli@broadcom.com>
Change-Id: I5e2c1220e9694d6ba771cc90daa0e70e967eebe6

5 years agodrivers: Add SPI Nor flash support
Sheetal Tigadoli [Sun, 5 Jan 2020 18:38:24 +0000 (00:08 +0530)]
drivers: Add SPI Nor flash support

Add SPI Nor flash support

Change-Id: I0cde3fdb4dcad5bcaf445b3bb48e279332bd28af
Signed-off-by: Sheetal Tigadoli <sheetal.tigadoli@broadcom.com>