project/bcm63xx/atf.git
6 years agozynqmp: pm_service: Support multiple SDIO modes
Rajan Vaja [Thu, 22 Feb 2018 09:06:52 +0000 (01:06 -0800)]
zynqmp: pm_service: Support multiple SDIO modes

Existing database allows to set only single mode for SDIO.
SDIO can have different groups (8 bit, 4 bit and 1 bit).
As there is only single SDIO group in each pin, it is not
 possible to use different mode groups for SDIO.

Extend database in generic way to allow multiuple function
groups in single pin. Add different SDIO groups to pins and
create separate functions for each modes.

Signed-off-by: Rajan Vaja <rajanv@xilinx.com>
6 years agozynqmp: pm: Support ATF PM version check
Rajan Vaja [Thu, 15 Feb 2018 07:10:54 +0000 (23:10 -0800)]
zynqmp: pm: Support ATF PM version check

Add SMC call to query ATF PM version. This version
can be used by Linux to match with expected version.

Signed-off-by: Rajan Vaja <rajanv@xilinx.com>
6 years agozynqmp: pm: Update API version to 1.0
Jolly Shah [Wed, 7 Feb 2018 23:37:01 +0000 (15:37 -0800)]
zynqmp: pm: Update API version to 1.0

With new EEMI APIs addition, version is updated to 1.0

Signed-off-by: Jolly Shah <jollys@xilinx.com>
6 years agozynqmp: Use DDR memory when DEBUG is enabled
Jolly Shah [Tue, 30 Jan 2018 19:31:53 +0000 (11:31 -0800)]
zynqmp: Use DDR memory when DEBUG is enabled

Define default DDR location to which ATF has to compiled
if DEBUG option is enabled. This is required now, as the ATF cant fit
in OCM with DEBUG option enabled. The default value is 0x1000 and can be
used till 0x7ffff. User can still override as per wish/requirement
using current commandline options.

Signed-off-by: Jolly Shah <jollys@xilinx.com>
6 years agozynqmp: pm: Add APIs for pin control queries
Rajan Vaja [Tue, 30 Jan 2018 12:16:31 +0000 (04:16 -0800)]
zynqmp: pm: Add APIs for pin control queries

Add pin control APIs which driver can use to query
pin information from firmware. Using these APIs,
driver do not need to maintain hard-coded pin database.

Major changes in patch are:
- Add pin database with pins, functions and function groups
  information
- Implement APIs for pin information queries
- Update pin control APIs for get/set functions to use new
  pin control database. Remove pin database which was added
  earlier.

Signed-off-by: Rajan Vaja <rajanv@xilinx.com>
Signed-off-by: Jolly Shah <jollys@xilinx.com>
6 years agozynqmp: pm: Add IOCTLs for global storage access
Rajan Vaja [Wed, 17 Jan 2018 10:39:27 +0000 (02:39 -0800)]
zynqmp: pm: Add IOCTLs for global storage access

Add IOCTLs to read/write global general storage and
persistent global general storage registers access.

Signed-off-by: Rajan Vaja <rajanv@xilinx.com>
Signed-off-by: Jolly Shah <jollys@xilinx.com>
6 years agozynqmp: pm: Implement clock APIs
Rajan Vaja [Wed, 17 Jan 2018 10:39:26 +0000 (02:39 -0800)]
zynqmp: pm: Implement clock APIs

- Add clock entries and information to clock database.
- Implement APIs to provide clock topology and other
  information to caller.
- Implement APIs to control clocks and PLLs.

Signed-off-by: Rajan Vaja <rajanv@xilinx.com>
Signed-off-by: Jolly Shah <jollys@xilinx.com>
6 years agozynqmp: pm: Add clock control EEMI API and ioctl functions
Rajan Vaja [Wed, 17 Jan 2018 10:39:25 +0000 (02:39 -0800)]
zynqmp: pm: Add clock control EEMI API and ioctl functions

These are empty functions with no logic right now. Code
will be added in subsequent commits.

Signed-off-by: Rajan Vaja <rajanv@xilinx.com>
Signed-off-by: Jolly Shah <jollys@xilinx.com>
6 years agozynqmp: pm: Implement IOCTL APIs for device control
Rajan Vaja [Wed, 17 Jan 2018 10:39:24 +0000 (02:39 -0800)]
zynqmp: pm: Implement IOCTL APIs for device control

Implement ioctl APIs which uses MMIO operations
to configure devices. Below IOCTLs are supported
in this patch:
  * Set tap delay bypass
  * Set SGMII mode
  * SD reset
  * Set SD/MMC tap delay

Signed-off-by: Rajan Vaja <rajanv@xilinx.com>
Signed-off-by: Jolly Shah <jollys@xilinx.com>
6 years agozynqmp: pm: Implement IOCTL APIs for remoteproc
Rajan Vaja [Wed, 17 Jan 2018 10:39:23 +0000 (02:39 -0800)]
zynqmp: pm: Implement IOCTL APIs for remoteproc

Implement ioctl APIs which uses MMIO operations
to control RPU operations. Below IOCTLs are supported
in this patch:
  * Get RPU operation mode
  * Set RPU operation mode
  * Configure RPU boot address (OCM/TCM)
  * Configure TCM combined mode

Signed-off-by: Rajan Vaja <rajanv@xilinx.com>
Signed-off-by: Jolly Shah <jollys@xilinx.com>
6 years agozynqmp: pm: Implement pin control APIs for configurations
Rajan Vaja [Wed, 17 Jan 2018 10:39:22 +0000 (02:39 -0800)]
zynqmp: pm: Implement pin control APIs for configurations

Implement pin control APIs which uses MMIO operations
to set/get values of configuration parameters.

Signed-off-by: Rajan Vaja <rajanv@xilinx.com>
Signed-off-by: Jolly Shah <jollys@xilinx.com>
6 years agozynqmp: pm: Implement pin control APIs for get/set functions
Rajan Vaja [Wed, 17 Jan 2018 10:39:21 +0000 (02:39 -0800)]
zynqmp: pm: Implement pin control APIs for get/set functions

Implement pin control APIs which uses MMIO operations
to set/get functions for the given pin.

Signed-off-by: Rajan Vaja <rajanv@xilinx.com>
Signed-off-by: Jolly Shah <jollys@xilinx.com>
6 years agozynqmp: pm: Add wrappers for Pin control APIs
Rajan Vaja [Wed, 17 Jan 2018 10:39:20 +0000 (02:39 -0800)]
zynqmp: pm: Add wrappers for Pin control APIs

Add wrappers for pin control APIs. Actual implementation of
these APIs would be done in subsequent changes.

Signed-off-by: Rajan Vaja <rajanv@xilinx.com>
Signed-off-by: Jolly Shah <jollys@xilinx.com>
6 years agozynqmp: Add new function and node IDs
Rajan Vaja [Fri, 19 Jan 2018 06:54:07 +0000 (22:54 -0800)]
zynqmp: Add new function and node IDs

Add new function and node IDs supported by PMUFW in
function list and node list respectively.

Signed-off-by: Rajan Vaja <rajanv@xilinx.com>
Signed-off-by: Jolly Shah <jollys@xilinx.com>
6 years agoMerge pull request #1308 from soby-mathew/sm/doc_dyn_cfg
davidcunado-arm [Thu, 15 Mar 2018 15:27:08 +0000 (15:27 +0000)]
Merge pull request #1308 from soby-mathew/sm/doc_dyn_cfg

Docs: Update design guide for dynamic config

6 years agoMerge pull request #1310 from JoelHutton/jh/aarch32_mem_protect_fix
davidcunado-arm [Thu, 15 Mar 2018 15:24:37 +0000 (15:24 +0000)]
Merge pull request #1310 from JoelHutton/jh/aarch32_mem_protect_fix

FVP AArch32: Fix flash access in BL32 for mem_protect

6 years agoFVP AArch32: Fix flash access in BL32 for mem_protect
Joel Hutton [Thu, 15 Mar 2018 11:33:44 +0000 (11:33 +0000)]
FVP AArch32: Fix flash access in BL32 for mem_protect

The FVP platform port for SP_MIN (BL32) didn't map the flash memory
in BL32 for stroring the mem_protect enable state information leading
to synchronous exception. The patch fixes it by adding the region to
the BL32 mmap tables.

Change-Id: I37eec83c3e1ea43d1b5504d3683eebc32a57eadf
Signed-off-by: Joel Hutton <Joel.Hutton@Arm.com>
6 years agoMerge pull request #1305 from dp-arm/dp/smccc
davidcunado-arm [Wed, 14 Mar 2018 14:24:25 +0000 (14:24 +0000)]
Merge pull request #1305 from dp-arm/dp/smccc

Implement support for v1.2 of firmware interfaces spec (ARM DEN 0070A)

6 years agoFixup `SMCCC_ARCH_FEATURES` semantics
Dimitris Papastamos [Mon, 12 Mar 2018 14:47:09 +0000 (14:47 +0000)]
Fixup `SMCCC_ARCH_FEATURES` semantics

When querying `SMCCC_ARCH_WORKAROUND_1` through `SMCCC_ARCH_FEATURES`,
return either:
  * -1 to indicate the PE on which `SMCCC_ARCH_FEATURES` is called
    requires firmware mitigation for CVE-2017-5715 but the mitigation
    is not compiled in.
  * 0 to indicate that firmware mitigation is required, or
  * 1 to indicate that no firmware mitigation is required.

This patch complies with v1.2 of the firmware interfaces
specification (ARM DEN 0070A).

Change-Id: Ibc32d6620efdac6c340758ec502d95554a55f02a
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
6 years agoUse PFR0 to identify need for mitigation of CVE-2017-5715
Dimitris Papastamos [Mon, 12 Mar 2018 13:27:02 +0000 (13:27 +0000)]
Use PFR0 to identify need for mitigation of CVE-2017-5715

If the CSV2 field reads as 1 then branch targets trained in one
context cannot affect speculative execution in a different context.
In that case skip the workaround on Cortex A72 and A73.

Change-Id: Ide24fb6efc77c548e4296295adc38dca87d042ee
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
6 years agoDocs: Update design guide for dynamic config
Soby Mathew [Fri, 16 Feb 2018 14:52:52 +0000 (14:52 +0000)]
Docs: Update design guide for dynamic config

This patch updates the `firmware-design.rst` document for
changes in ARM-TF for supporting dynamic configuration features
as presented in `Secure Firmware BoF SFO'17`[1].

The patch also updates the user-guide for 2 build options for FVP
pertaining to dynamic config.

[1] https://www.slideshare.net/linaroorg/bof-device-tree-and-secure-firmware-bof-sfo17310

Change-Id: Ic099cf41e7f1a98718c39854e6286d884011d445
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
6 years agoMerge pull request #1303 from soby-mathew/sm/fix_juno_fwu
davidcunado-arm [Thu, 8 Mar 2018 11:33:41 +0000 (11:33 +0000)]
Merge pull request #1303 from soby-mathew/sm/fix_juno_fwu

Juno: Fixes for firmware update

6 years agoMerge pull request #1277 from hzhuang1/testing/bl2_el3_v0.6
davidcunado-arm [Thu, 8 Mar 2018 10:39:52 +0000 (10:39 +0000)]
Merge pull request #1277 from hzhuang1/testing/bl2_el3_v0.6

hikey: migrate to BL2_EL3

6 years agoJuno: Change the Firmware update detect mechanism
Soby Mathew [Wed, 7 Mar 2018 11:32:04 +0000 (11:32 +0000)]
Juno: Change the Firmware update detect mechanism

Previously, Juno used to depend on the SSC_GPRETN register to inform
about the reset syndrome. This method was removed when SCP migrated
to the SDS framework. But even the SDS framework doesn't report the
reset syndrome correctly and hence Juno failed to enter Firmware
update mode if BL2 authentication failed.

In addition to that, the error code populated in V2M_SYS_NVFLAGS register
does not seem to be retained any more on Juno across resets. This could
be down to the motherboard firmware not doing the necessary to preserve
the value.

Hence this patch modifies the Juno platform to use the same mechanism to
trigger firmware update as FVP which is to corrupt the FIP TOC on
authentication failure. The implementation in `fvp_err.c` is made common
for ARM platforms and is moved to the new `arm_err.c` file in
plat/arm/common folder. The BL1 and BL2 mmap table entries for Juno
are modified to allow write to the Flash memory address.

Change-Id: Ica7d49a3e8a46a90efd4cf340f19fda3b549e945
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
6 years agoMerge pull request #1302 from hzhuang1/fix_build
davidcunado-arm [Wed, 7 Mar 2018 22:49:59 +0000 (22:49 +0000)]
Merge pull request #1302 from hzhuang1/fix_build

Fix build with clang on hikey

6 years agoBL2U: Fix ARM platform timer initilization
Soby Mathew [Tue, 6 Mar 2018 15:22:55 +0000 (15:22 +0000)]
BL2U: Fix ARM platform timer initilization

This issue was detected when testing FWU on Juno. The Timer
`timer_ops` was not being initialized before being used by
the SDS driver on Juno. This patch adds the call to
`generic_delay_timer_init()` during bl2u_early_platform_setup().
This is done generically for all ARM platforms because the
cost involved is minimal.

Change-Id: I349cf0bd1db68406eb2298b65f9c729f792cabdc
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
6 years agoMerge pull request #1239 from arve-android/trusty-fixes
davidcunado-arm [Wed, 7 Mar 2018 10:43:56 +0000 (10:43 +0000)]
Merge pull request #1239 from arve-android/trusty-fixes

Trusty fixes

6 years agoMerge pull request #1301 from ldebieve/lde/issue-tf#562
davidcunado-arm [Tue, 6 Mar 2018 19:39:48 +0000 (19:39 +0000)]
Merge pull request #1301 from ldebieve/lde/issue-tf#562

bl2-el3: Fix bl32 lr_svc used for bl33 entry address

6 years agohikey: fix build issue with CLANG
Haojian Zhuang [Fri, 2 Mar 2018 06:25:41 +0000 (14:25 +0800)]
hikey: fix build issue with CLANG

plat/hisilicon/hikey/hikey_bl1_setup.c:565:47:
error: value size does not match register size specified by the
constraint and modifier [-Werror,-Wasm-operand-widths]
        __asm__ volatile ("mrs  %0, cpacr_el1" : "=r"(data));

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agohikey960: fix build issue with CLANG
Haojian Zhuang [Fri, 2 Mar 2018 06:23:55 +0000 (14:23 +0800)]
hikey960: fix build issue with CLANG

plat/hisilicon/hikey960/drivers/pwrc/hisi_pwrc.c:290:20:
error: unused function 'hisi_pdc_set_intmask' [-Werror,-Wunused-function]
static inline void hisi_pdc_set_intmask(void *pdc_base_addr,
                   ^
1 error generated.
Makefile:605: recipe for target 'build/hikey960/release/bl31/hisi_pwrc.o' failed
make: *** [build/hikey960/release/bl31/hisi_pwrc.o] Error 1

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agotrusty: Add boot parameter documentation
Arve Hjønnevåg [Mon, 5 Mar 2018 20:13:22 +0000 (12:13 -0800)]
trusty: Add boot parameter documentation

Change-Id: Ibfb75145e3a31ae2106eedfbe4a91c2e31bb9f2a

6 years agobl2-el3: Fix bl32 lr_svc used for bl33 entry address
Lionel Debieve [Mon, 5 Mar 2018 14:21:59 +0000 (15:21 +0100)]
bl2-el3: Fix bl32 lr_svc used for bl33 entry address

When using BL2_EL3, we need to ensure that lr_svc is
properly given to bl32 as it was previously made by bl1.

Fixes ARM-Software/tf-issues#562

Signed-off-by: Lionel Debieve <lionel.debieve@st.com>
6 years agoMerge pull request #1300 from davidcunado-arm/ak/fix_args
davidcunado-arm [Mon, 5 Mar 2018 12:35:32 +0000 (12:35 +0000)]
Merge pull request #1300 from davidcunado-arm/ak/fix_args

Dynamic cfg: Do not populate args if already initialized

6 years agoDynamic cfg: Do not populate args if already initialized
Amit Daniel Kachhap [Fri, 2 Mar 2018 13:17:55 +0000 (18:47 +0530)]
Dynamic cfg: Do not populate args if already initialized

This patch modifies the common utility function
`populate_next_bl_params_config()` to only modify the entrypoint arguments
to an executable image only if they are not initialized earlier.
This issue was detected while testing Optee on ARM platforms which needed
the current arguments to be preserved in the absence of corresponding
config files.

Change-Id: I1e3fb4be8176fc173959e72442396dd33a99a316
Signed-off-by: Amit Daniel Kachhap <amit.kachhap@arm.com>
Signed-off-by: David Cunado <david.cunado@arm.com>
6 years agoMerge pull request #1288 from michpappas/tf-issues#558_qemu_separate_code_and_data
davidcunado-arm [Mon, 5 Mar 2018 10:52:41 +0000 (10:52 +0000)]
Merge pull request #1288 from michpappas/tf-issues#558_qemu_separate_code_and_data

qemu: Support SEPARATE_CODE_AND_RODATA

6 years agoMerge pull request #1298 from michpappas/tf-issues#560_qemu_UART1_data_abort
davidcunado-arm [Mon, 5 Mar 2018 09:51:25 +0000 (09:51 +0000)]
Merge pull request #1298 from michpappas/tf-issues#560_qemu_UART1_data_abort

qemu: Accessing UART1 causes a data abort

6 years agohikey960: move out duplicated code
Haojian Zhuang [Mon, 5 Mar 2018 05:20:33 +0000 (13:20 +0800)]
hikey960: move out duplicated code

Create hikey960_bl_common.c to store duplication initialization
code in both BL1 and BL2.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agohikey960: fix invoking driver init in image load driver
Haojian Zhuang [Tue, 30 Jan 2018 02:35:17 +0000 (10:35 +0800)]
hikey960: fix invoking driver init in image load driver

It's unnecessary to call platform driver initialization in image
load driver. We could make bl2_platform_setup() to executing
just before SCP_BL2 by setting flag IMAGE_ATTRIB_PLAT_SETUP.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agohikey960: migrate to bl2_el3
Haojian Zhuang [Thu, 25 Jan 2018 08:13:05 +0000 (16:13 +0800)]
hikey960: migrate to bl2_el3

Since non-TF ROM is used in HiKey960 platform (Hisilicon Hi3660 SoC),
replace BL1 by BL2_EL3 in normal boot mode.

When flush images in recovery mode, keep to use BL1.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agohikey960: drop LOAD_IMAGE v1
Haojian Zhuang [Mon, 29 Jan 2018 04:45:28 +0000 (12:45 +0800)]
hikey960: drop LOAD_IMAGE v1

Since LOAD_IMAGE_V2 is always enabled in HiKey960 platform. Drop
LOAD_IMAGE v1 to simplify code.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agohikey960: fix memory overlapped in memory map
Haojian Zhuang [Mon, 29 Jan 2018 04:36:03 +0000 (12:36 +0800)]
hikey960: fix memory overlapped in memory map

MAP_TSP_MEM could be either in SRAM or DRAM. When MAP_TSP_MEM is in
DRAM, it's overlapped with MAP_DDR.

Since TSP_MEM is always configured in DRAM case, it means
MAP_OPTEE_PAGEABLE is always disabled. Just remove it.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agohikey960: avoid to dump message when fetch boardid
Haojian Zhuang [Sat, 27 Jan 2018 11:29:36 +0000 (19:29 +0800)]
hikey960: avoid to dump message when fetch boardid

The main difference between HiKey960 v1 hardware and HiKey960 v2
hardware is on UART console.

But the function of detecting boardid dumps message before console
ready. So fix it by removing those messages.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agohikey: move out duplicated code
Haojian Zhuang [Mon, 5 Mar 2018 05:03:53 +0000 (13:03 +0800)]
hikey: move out duplicated code

Create hikey_bl_common.c to store duplicated initialization
code in BL1 and BL2.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agohikey: migrate to bl2_el3
Haojian Zhuang [Thu, 25 Jan 2018 08:10:14 +0000 (16:10 +0800)]
hikey: migrate to bl2_el3

Since non-TF ROM is used in HiKey platform (Hisilicon Hi6220 SoC),
replace BL1 by BL2_EL3 in normal boot mode.

When we recovery images in recovery mode, keep to use BL1.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agohikey: clean dcache for SRAM after initialized
Haojian Zhuang [Mon, 29 Jan 2018 03:42:42 +0000 (11:42 +0800)]
hikey: clean dcache for SRAM after initialized

Although SRAM is initialized, DCACHE should be cleaned too.
Because MCU is a parrallel core to access SRAM. We need to make
sure that initialized value is really written to SRAM before
MCU using it.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agohikey: drop LOAD_IMAGE v1
Haojian Zhuang [Sun, 28 Jan 2018 15:33:02 +0000 (23:33 +0800)]
hikey: drop LOAD_IMAGE v1

Since LOAD_IMAGE_V2 is always enabled in HiKey platform. Drop
LOAD_IMAGE v1 to simplify code.

Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org>
6 years agoqemu: Accessing UART1 causes a data abort
Michalis Pappas [Sat, 3 Mar 2018 10:26:11 +0000 (18:26 +0800)]
qemu: Accessing UART1 causes a data abort

The register address range of UART1 (crash console) are outside the
address ranges mapped for MMIO, resulting to an MMU abort when the
device registers are accessed.

Increase the size of DEVICE1 memory to include the range of UART1.

Fixes ARM-software/tf-issues#560

Signed-off-by: Michalis Pappas <mpappas@fastmail.fm>
6 years agoMerge pull request #1292 from danh-arm/dh/spurious-dep-warn
davidcunado-arm [Sat, 3 Mar 2018 13:26:18 +0000 (13:26 +0000)]
Merge pull request #1292 from danh-arm/dh/spurious-dep-warn

 Suppress spurious deprecated declaration warnings

6 years agoMerge pull request #1297 from soby-mathew/sm/fix_aarch32_plat_cmn
davidcunado-arm [Sat, 3 Mar 2018 00:25:19 +0000 (00:25 +0000)]
Merge pull request #1297 from soby-mathew/sm/fix_aarch32_plat_cmn

Remove sp_min functions from plat_common.c

6 years agoMerge pull request #1296 from robertovargas-arm/fix-dram2-size
davidcunado-arm [Sat, 3 Mar 2018 00:23:34 +0000 (00:23 +0000)]
Merge pull request #1296 from robertovargas-arm/fix-dram2-size

Fix FVP DRAM2 size

6 years agotrusty: Fix another reported misra violation
Arve Hjønnevåg [Fri, 2 Mar 2018 18:10:00 +0000 (10:10 -0800)]
trusty: Fix another reported misra violation

Change-Id: I822ccf5852dce4c01f98382cc393331f29e1e256

6 years agoRemove sp_min functions from plat_common.c
Soby Mathew [Thu, 1 Mar 2018 10:53:33 +0000 (10:53 +0000)]
Remove sp_min functions from plat_common.c

This patch removes default platform implementations of sp_min
platform APIs from plat/common/aarch32/plat_common.c. The APIs
are now implemented in `plat_sp_min_common.c` file within the
same folder.

The ARM platform layer had a weak definition of sp_min_platform_setup2()
which conflicted with the weak definition in the common file. Hence this
patch fixes that by introducing a `plat_arm_` version of the API thus
allowing individual boards within ARM platforms to override it if they
wish to.

Fixes ARM-software/tf-issues#559

Change-Id: I11a74ecae8191878ccc7ea03f12bdd5ae88faba5
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
6 years agoFix FVP DRAM2 size
Roberto Vargas [Thu, 1 Feb 2018 15:19:00 +0000 (15:19 +0000)]
Fix FVP DRAM2 size

This was correct according to the model specifications , but it seems
that FVP doesn't implement it. It is safer to use the size exposed by
the DTB which is currently used by Linux.

Change-Id: I9aabe3284a50ec2a36ed94966eb7e4ddf37cec3b
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
6 years agotrusty: Fix reported misra violation
Arve Hjønnevåg [Thu, 1 Mar 2018 19:38:18 +0000 (11:38 -0800)]
trusty: Fix reported misra violation

memset does not return a useful result here, so explitcitly ignore it

Change-Id: I33cd2228cadc280ee8e5ce3a4f8682dde9a7c16c

6 years agoEmit warnings when using deprecated GIC init
Dan Handley [Thu, 1 Mar 2018 16:00:15 +0000 (16:00 +0000)]
Emit warnings when using deprecated GIC init

Emit runtime warnings when intializing the GIC drivers using the
deprecated method of defining integer interrupt arrays in the GIC driver
data structures; interrupt_prop_t arrays should be used instead. This
helps platforms detect that they have migration work to do. Previously,
no warning was emitted in this case. This affects both the GICv2 and GICv3
drivers.

Also use the __deprecated attribute to emit a build time warning if these
deprecated fields are used. These warnings are suppressed in the GIC
driver compatibility functions but will be visible if platforms use them.

Change-Id: I6b6b8f6c3b4920c448b6dcb82fc18442cfdf6c7a
Signed-off-by: Dan Handley <dan.handley@arm.com>
6 years agoImprove MULTI_CONSOLE_API deprecation warnings
Dan Handley [Tue, 27 Feb 2018 16:03:58 +0000 (16:03 +0000)]
Improve MULTI_CONSOLE_API deprecation warnings

For platforms that have not migrated to MULTI_CONSOLE_API == 1, there
are a lot of confusing deprecated declaration warnings relating to
use of console_init() and console_uninit(). Some of these relate to use
by the generic code, not the platform code. These functions are not really
deprecated but *removed* when MULTI_CONSOLE_API == 1.

This patch consolidates these warnings into a single preprocessor warning.
The __deprecated attribute is removed from the console_init() and
console_uninit() declarations.

For preprocessor warnings like this to not cause fatal build errors,
this patch adds -Wno-error=cpp to the build flags when
ERROR_DEPRECATED == 0.
This option (and -Wno-error=deprecated-declarations) is now added to
CPPFLAGS instead of TF_CFLAGS to ensure the build flags are used in the
assembler as well as the compiler.

This patch also disentangles the MULTI_CONSOLE_API and ERROR_DEPRECATED
build flags by defaulting MULTI_CONSOLE_API to 0 instead of
ERROR_DEPRECATED. This allows platforms that have not migrated to
MULTI_CONSOLE_API to use ERROR_DEPRECATED == 1 to emit a more meaningful
build error.

Finally, this patch bans use of MULTI_CONSOLE_API == 1 and AARCH32, since
the AArch32 console implementation does not support
MULTI_CONSOLE_API == 1.

Change-Id: If762165ddcb90c28aa7a4951aba70cb15c2b709c
Signed-off-by: Dan Handley <dan.handley@arm.com>
6 years agoSuppress spurious deprecated declaration warnings
Dan Handley [Tue, 27 Feb 2018 13:00:43 +0000 (13:00 +0000)]
Suppress spurious deprecated declaration warnings

Some generic compatibility functions emit deprecated declaration warnings
even when platforms do not use the deprecated functions directly. This
can be confusing. Suppress these warnings by using:
`#pragma GCC diagnostic ignored "-Wdeprecated-declarations"`

Also emit a runtime warning if the weak plat/common implemntation of
plat_get_syscnt_freq2() is used, as this implies the platform has not
migrated from plat_get_syscnt_freq(). The deprecated  declaration warnings
only help detect when platforms are calling deprecated functions, not when
they are defining deprecated functions.

Fixes ARM-software/tf-issues#550

Change-Id: Id14a92279c2634c1e76db8ef210da8affdbb2a5d
Signed-off-by: Dan Handley <dan.handley@arm.com>
6 years agotrusty: Fix reported static check errors
Arve Hjønnevåg [Thu, 1 Mar 2018 01:18:55 +0000 (17:18 -0800)]
trusty: Fix reported static check errors

Change-Id: I9f9a8a159b41be1c865a20801d03a1b2934c3cac

6 years agoMerge pull request #1291 from dp-arm/dp/mk
davidcunado-arm [Thu, 1 Mar 2018 01:15:22 +0000 (01:15 +0000)]
Merge pull request #1291 from dp-arm/dp/mk

Revert "Make all build results depend on all makefiles"

6 years agotrusty: Change type of aarch32 flag t bool
Arve Hjønnevåg [Thu, 1 Mar 2018 01:15:06 +0000 (17:15 -0800)]
trusty: Change type of aarch32 flag t bool

Change-Id: Ie4f937808d24c9b45066c6582c4eee61699ef6df

6 years agoMerge pull request #1290 from jeenu-arm/dynamiq
davidcunado-arm [Wed, 28 Feb 2018 20:10:29 +0000 (20:10 +0000)]
Merge pull request #1290 from jeenu-arm/dynamiq

DynamIQ on FVP

6 years agoMerge pull request #1282 from robertovargas-arm/misra-changes
davidcunado-arm [Wed, 28 Feb 2018 18:53:30 +0000 (18:53 +0000)]
Merge pull request #1282 from robertovargas-arm/misra-changes

Misra changes

6 years agoFix MISRA rule 8.4 Part 2
Roberto Vargas [Mon, 12 Feb 2018 12:36:17 +0000 (12:36 +0000)]
Fix MISRA rule 8.4 Part 2

Rule 8.4: A compatible declaration shall be visible when
          an object or function with external linkage is defined

Fixed for:
make DEBUG=1 PLAT=juno LOG_LEVEL=50 all

Change-Id: Ic8f611da734f356566e8208053296e6c62b54709
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
6 years agoFix MISRA rule 8.5 Part 1
Roberto Vargas [Mon, 12 Feb 2018 12:36:17 +0000 (12:36 +0000)]
Fix MISRA rule 8.5 Part 1

Rule 8.5: An external object or function shall be declared
          once in one and only one file.

Fixed for:
make DEBUG=1 PLAT=fvp LOG_LEVEL=50 all

Change-Id: I2420c58134c280db90706cad2d5e7a190f9f9311
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
6 years agoFix MISRA rule 8.4 Part 1
Roberto Vargas [Mon, 12 Feb 2018 12:36:17 +0000 (12:36 +0000)]
Fix MISRA rule 8.4 Part 1

Rule 8.4: A compatible declaration shall be visible when
          an object or function with external linkage is defined

Fixed for:
make DEBUG=1 PLAT=fvp LOG_LEVEL=50 all

Change-Id: I7c2ad3f5c015411c202605851240d5347e4cc8c7
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
6 years agoFix MISRA rule 8.3 Part 1
Roberto Vargas [Mon, 12 Feb 2018 12:36:17 +0000 (12:36 +0000)]
Fix MISRA rule 8.3 Part 1

Rule 8.3: All declarations of an object or function shall
          use the same names and type qualifiers.

Fixed for:

make DEBUG=1 PLAT=fvp LOG_LEVEL=50 all

Change-Id: I48201c9ef022f6bd42ea8644529afce70f9b3f22
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
6 years agoFix MISRA rule 8.8 in common code
Roberto Vargas [Mon, 12 Feb 2018 12:36:17 +0000 (12:36 +0000)]
Fix MISRA rule 8.8 in common code

Rule 8.8: The static storage class specifier shall be used
          in all declarations of objects and functions that
          have internal linkage.

Change-Id: I1e94371caaadebb2cec38d0ae0fa5c59e43369e0
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
6 years agoFix MISRA rule 8.4 in common code
Roberto Vargas [Mon, 12 Feb 2018 12:36:17 +0000 (12:36 +0000)]
Fix MISRA rule 8.4 in common code

Rule 8.4: A compatible declaration shall be visible when
          an object or function with external linkage is defined.

Change-Id: I26e042cb251a6f9590afa1340fdac73e42f23979
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
6 years agoFix MISRA rule 8.3 in common code
Roberto Vargas [Mon, 12 Feb 2018 12:36:17 +0000 (12:36 +0000)]
Fix MISRA rule 8.3 in common code

Rule 8.3: All declarations of an object or function shall
          use the same names and type qualifiers.

Change-Id: Iff384187c74a598a4e73f350a1893b60e9d16cec
Signed-off-by: Roberto Vargas <roberto.vargas@arm.com>
6 years agoRevert "Make all build results depend on all makefiles"
Dimitris Papastamos [Wed, 28 Feb 2018 15:09:25 +0000 (15:09 +0000)]
Revert "Make all build results depend on all makefiles"

Seems to have unintended side-effects on the build system such as
rebuilding certain parts of TF even though nothing has changed.

This reverts commit c6f651f9a3322857c8e1f8250274a0984c024283.

Change-Id: I1472e6c630cb6371ec629b7d97a5748d9a6fd096
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
6 years agoMerge pull request #1289 from sandrine-bailleux-arm/topics/sb/juno-scmi-by-default
davidcunado-arm [Wed, 28 Feb 2018 16:58:33 +0000 (16:58 +0000)]
Merge pull request #1289 from sandrine-bailleux-arm/topics/sb/juno-scmi-by-default

Select SCMI/SDS drivers by default on Juno

6 years agoFVP: Allow building for DynamIQ systems
Jeenu Viswambharan [Wed, 31 Jan 2018 14:52:08 +0000 (14:52 +0000)]
FVP: Allow building for DynamIQ systems

FVPs that model DynamIQ configuration implements all CPUs in a single
cluster. I.e., such models have a single cluster with more than 4 CPUs.
This differs from existing default build configuration for FVP where up
to 4 CPUs are assumed per cluster.

To allow building for DynamIQ configuration, promote the macro
FVP_MAX_CPUS_PER_CLUSTER as a build option to have it set from the build
command line. The value of the build option defaults to 4.

Change-Id: Idc3853bc95f680869b434b011c2dbd733e40c6ce
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
6 years agofdts: Add DTS for DynamIQ platforms
Jeenu Viswambharan [Wed, 31 Jan 2018 10:57:46 +0000 (10:57 +0000)]
fdts: Add DTS for DynamIQ platforms

DynamIQ platforms host all CPUs in a single cluster. This patch adds a
DTS and DTB for DynamicQ platforms hosting up to 8 CPUs.

Change-Id: I2d97bc740ac3062818767e7251020644f5bb9100
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
6 years agoqemu: Support SEPARATE_CODE_AND_RODATA
Michalis Pappas [Wed, 28 Feb 2018 06:36:03 +0000 (14:36 +0800)]
qemu: Support SEPARATE_CODE_AND_RODATA

Update qemu_configure_mmu_##_el to add an additional region for code,
marked as MT_CODE | MT_SECURE. Update ro region attributes to NON_EXEC.

Update calls to QEMU_CONFIGURE_BLx_MMU() to pass an additional region for
code. Update calls to pass regions defined in common_def.h.

Increase MAX_MMAP_REGIONS to 10.

Enable SEPARATE_CODE_AND_RODATA by default on QEMU builds.

Fixes ARM-software/tf-issues#558

Signed-off-by: Michalis Pappas <mpappas@fastmail.fm>
6 years agoSelect SCMI/SDS drivers by default on Juno
Sandrine Bailleux [Wed, 28 Feb 2018 10:47:23 +0000 (11:47 +0100)]
Select SCMI/SDS drivers by default on Juno

The SCP binaries provided in the 17.10 Linaro release (and onwards)
have migrated to the SCMI/SDS protocols. Therefore, the ARM TF should
now use the corresponding drivers by default.

This patch changes the default value of the CSS_USE_SCMI_SDS_DRIVER
build option to 1 for Juno.

Change-Id: Idb7e3c6af582f49e332167a2158703c2d781b437
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
6 years agoMerge pull request #1287 from davidcunado-arm/dc/fix_misra
davidcunado-arm [Wed, 28 Feb 2018 09:48:35 +0000 (09:48 +0000)]
Merge pull request #1287 from davidcunado-arm/dc/fix_misra

Update ULL() macro and instances of ull to comply with MISRA

6 years agoMerge pull request #1286 from antonio-nino-diaz-arm/an/mmu-mismatch
davidcunado-arm [Wed, 28 Feb 2018 01:26:21 +0000 (01:26 +0000)]
Merge pull request #1286 from antonio-nino-diaz-arm/an/mmu-mismatch

Clarify comments in xlat tables lib and fixes related to the TLB

6 years agoMerge pull request #1284 from jeenu-arm/tspd-ehf
davidcunado-arm [Wed, 28 Feb 2018 00:30:55 +0000 (00:30 +0000)]
Merge pull request #1284 from jeenu-arm/tspd-ehf

TSPD and EHF

6 years agoMerge pull request #1283 from jeenu-arm/sdei-fixes
davidcunado-arm [Tue, 27 Feb 2018 23:24:30 +0000 (23:24 +0000)]
Merge pull request #1283 from jeenu-arm/sdei-fixes

SDEI fixes

6 years agoMerge pull request #1274 from dp-arm/dp/a75
davidcunado-arm [Tue, 27 Feb 2018 21:58:42 +0000 (21:58 +0000)]
Merge pull request #1274 from dp-arm/dp/a75

AMU fixes for Cortex-A75

6 years agoMerge pull request #1272 from dp-arm/dp/extensions
davidcunado-arm [Tue, 27 Feb 2018 17:27:16 +0000 (17:27 +0000)]
Merge pull request #1272 from dp-arm/dp/extensions

Refactor SPE/SVE code and fix some bugs in AMUv1 on AArch32

6 years agoUpdate ULL() macro and instances of ull to comply with MISRA
David Cunado [Fri, 16 Feb 2018 21:12:58 +0000 (21:12 +0000)]
Update ULL() macro and instances of ull to comply with MISRA

MISRA C-2012 Rule 7.3 violation: lowercase l shall not be used as literal suffixes.

This patch resolves this for the ULL() macro by using ULL suffix instead
of the ull suffix.

Change-Id: Ia8183c399e74677e676956e8653e82375d0e0a01
Signed-off-by: David Cunado <david.cunado@arm.com>
6 years agoInvalidate TLB entries during warm boot
Antonio Nino Diaz [Mon, 19 Feb 2018 16:27:06 +0000 (16:27 +0000)]
Invalidate TLB entries during warm boot

During the warm boot sequence:

1. The MMU is enabled with the data cache disabled. The MMU table walker
   is set up to access the translation tables as in cacheable memory,
   but its accesses are non-cacheable because SCTLR_EL3.C controls them
   as well.
2. The interconnect is set up and the CPU enters coherency with the
   rest of the system.
3. The data cache is enabled.

If the support for dynamic translation tables is enabled and another CPU
makes changes to a region, the changes may only be present in the data
cache, not in RAM. The CPU that is booting isn't in coherency with the
rest of the system, so the table walker of that CPU isn't either. This
means that it may read old entries from RAM and it may have invalid TLB
entries corresponding to the dynamic mappings.

This is not a problem for the boot code because the mapping is 1:1 and
the regions are static. However, the code that runs after the boot
sequence may need to access the dynamically mapped regions.

This patch invalidates all TLBs during warm boot when the dynamic
translation tables support is enabled to prevent this problem.

Change-Id: I80264802dc0aa1cb3edd77d0b66b91db6961af3d
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoMerge pull request #1285 from soby-mathew/sm/fix_win_build_dyn_cfg
davidcunado-arm [Tue, 27 Feb 2018 15:30:40 +0000 (15:30 +0000)]
Merge pull request #1285 from soby-mathew/sm/fix_win_build_dyn_cfg

FVP: restrict dynamic config to Unix build environment

6 years agoTSPD: Register preempted SMC error code with EHF
Jeenu Viswambharan [Mon, 22 Jan 2018 12:42:54 +0000 (12:42 +0000)]
TSPD: Register preempted SMC error code with EHF

An earlier patch extended ehf_allow_ns_preemption() API to also register
an error code to offer to Non-secure when a Yielding SMC is preempted by
SDEI interrupt. In TSPD's case, register the error code TSP_PREEMPTED.

Change-Id: I31992b6651f80694e83bc5092b044ef7a3eda690
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
6 years agoEHF: Introduce preempted return code parameter to ehf_allow_ns_preemption()
Jeenu Viswambharan [Mon, 22 Jan 2018 12:29:12 +0000 (12:29 +0000)]
EHF: Introduce preempted return code parameter to ehf_allow_ns_preemption()

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

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

Documentation updates to follow.

Change-Id: Ia9c3f8f03f9d72d81aa235eaae2ee0374b972e1e
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
6 years agoSDEI: Add prioritisation clarification
Jeenu Viswambharan [Tue, 16 Jan 2018 09:29:30 +0000 (09:29 +0000)]
SDEI: Add prioritisation clarification

To make exception handling amongst Secure components, require that SDEI
exception priorities must be assigned the lowest among Secure
priorities. Clarify documentation to this effect.

Change-Id: I92524b7b7e9b3fa06a10c86372bc3c4dd18c00ad
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
6 years agoSDEI: Pop dispatch context only after error checking
Jeenu Viswambharan [Mon, 22 Jan 2018 12:04:13 +0000 (12:04 +0000)]
SDEI: Pop dispatch context only after error checking

Currently, when the client attempts to do SDEI_EVENT_COMPLETE or
SDEI_EVENT_COMPLETE_AND_RESUME, the dispatcher pops off the outstanding
dispatch context for sanity check. There are however other checks
following this, which could potentially return failure. If that happens,
by popping the context, the dispatcher has inadvertently discarded a
valid context.

This patch fixes this bug by inspecting (not actually popping) the
outstanding context. The context is popped only after all error checks
are completed.

Change-Id: Ie199f6442f871a8177a8247a0c646543bad76d21
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
6 years agoFVP: restrict dynamic config to Unix build environment
Soby Mathew [Tue, 27 Feb 2018 11:17:14 +0000 (11:17 +0000)]
FVP: restrict dynamic config to Unix build environment

This patch restricts building the dynamic config DTBs to the Unix
build environment as the Device Tree compiler may not be available
on other build environments.

Change-Id: Ie690e80010a174300e966240fd977b37561156e0
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
6 years agoMISRA fixes for Cortex A75 AMU implementation
Dimitris Papastamos [Tue, 27 Feb 2018 10:55:39 +0000 (10:55 +0000)]
MISRA fixes for Cortex A75 AMU implementation

Change-Id: I61c9fdfda0c0b3c3ec6249519db23602cf4c2100
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
6 years agoRefactor AMU support for Cortex A75
Dimitris Papastamos [Wed, 14 Feb 2018 10:28:36 +0000 (10:28 +0000)]
Refactor AMU support for Cortex A75

This patch also fixes the assumption that the counters are disabled on
the resume path.  This is incorrect as the AMU counters are enabled
early in the CPU reset function before `cpuamu_context_restore()`
runs.

Change-Id: I38a94eb166a523f00de18e86860434ffccff2131
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
6 years agoFactor out CPU AMU helpers
Dimitris Papastamos [Wed, 14 Feb 2018 10:00:06 +0000 (10:00 +0000)]
Factor out CPU AMU helpers

This patch also fixes `cpuamu_write_cpuamcntenclr_el0()` to use an MSR
instruction instead of an MRS instruction.

Change-Id: Ia6531f64b5ebc60ba432124eaa8d8eaccba40ed0
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
6 years agoMISRA fixes for AMU/SPE and SVE
Dimitris Papastamos [Mon, 26 Feb 2018 17:56:31 +0000 (17:56 +0000)]
MISRA fixes for AMU/SPE and SVE

Change-Id: I38470528111410cf12b187eb1397d87b812c9416
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
6 years agoaarch32: Fix multiple bugs in amu_helpers.S
Dimitris Papastamos [Tue, 20 Feb 2018 12:25:36 +0000 (12:25 +0000)]
aarch32: Fix multiple bugs in amu_helpers.S

AArch32 uses odd-even pairs when passing 64-bit arguments to
functions.  For example in `amu_group0_cnt_write_internal()` the
second argument is a uint64_t which is passed in r2 and r3.

In `amu_group1_set_evtype_internal()` the value that needs to be
written to the system register is in r1 not in r0.

Change-Id: I20196268fdb1dc9ef6c4ebe61e761fba9623b3f2
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
6 years agoAssert that group0/group1 counter config is what we expect
Dimitris Papastamos [Tue, 20 Feb 2018 11:16:44 +0000 (11:16 +0000)]
Assert that group0/group1 counter config is what we expect

Before suspend the AMU counters should be enabled and after resume
they should be disabled.  Assert that to be consistent with the
AArch64 implementation of `amu_context_{save,restore}()`.

Change-Id: Ia46f77e4062b93afb93721a2890a9b9d2a7f300e
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
6 years agoImplement {spe,sve}_supported() helpers and refactor code
Dimitris Papastamos [Mon, 19 Feb 2018 14:52:19 +0000 (14:52 +0000)]
Implement {spe,sve}_supported() helpers and refactor code

Implement helpers to test if the core supports SPE/SVE.  We have a
similar helper for AMU and this patch makes all extensions consistent
in their implementation.

Change-Id: I3e6f7522535ca358259ad142550b19fcb883ca67
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
6 years agoAdd comments about mismatched TCR_ELx and xlat tables
Antonio Nino Diaz [Fri, 23 Feb 2018 15:07:54 +0000 (15:07 +0000)]
Add comments about mismatched TCR_ELx and xlat tables

When the MMU is enabled and the translation tables are mapped, data
read/writes to the translation tables are made using the attributes
specified in the translation tables themselves. However, the MMU
performs table walks with the attributes specified in TCR_ELx. They are
completely independent, so special care has to be taken to make sure
that they are the same.

This has to be done manually because it is not practical to have a test
in the code. Such a test would need to know the virtual memory region
that contains the translation tables and check that for all of the
tables the attributes match the ones in TCR_ELx. As the tables may not
even be mapped at all, this isn't a test that can be made generic.

The flags used by enable_mmu_xxx() have been moved to the same header
where the functions are.

Also, some comments in the linker scripts related to the translation
tables have been fixed.

Change-Id: I1754768bffdae75f53561b1c4a5baf043b45a304
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
6 years agoMerge pull request #1263 from soby-mathew/sm/dyn_config
davidcunado-arm [Mon, 26 Feb 2018 22:24:12 +0000 (22:24 +0000)]
Merge pull request #1263 from soby-mathew/sm/dyn_config

Dynamic Configuration Prototype

6 years agoDynamic cfg: MISRA fixes
Soby Mathew [Wed, 21 Feb 2018 01:16:39 +0000 (01:16 +0000)]
Dynamic cfg: MISRA fixes

Change-Id: I1d85b76af002b8b672fcaeca94939b7420bc8243
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
6 years agoFVP: Add TB_FW_CONFIG and HW_CONFIG
Soby Mathew [Thu, 8 Feb 2018 11:39:38 +0000 (11:39 +0000)]
FVP: Add TB_FW_CONFIG and HW_CONFIG

This patch adds TB_FW_CONFIG for FVP and allows FVP
to select the appropriate HW_CONFIG to include in the
fip. The HW_CONFIG for FVP is selected via `FVP_HW_CONFIG_DTS`
build option. The TB_FW_CONFIG specifies the load address of
HW_CONFIG to BL2. Since currently the load address is different
between AARCH32 and AARCH64, 2 separate TB_FW_CONFIGs are
maintained for the 2 modes.

Change-Id: Ide8581e752dfa900087f5895c775073c841c0daf
Signed-Off-By: Soby Mathew <soby.mathew@arm.com>