Antonio Nino Diaz [Tue, 27 Mar 2018 08:39:47 +0000 (09:39 +0100)]
rpi3: Use new console APIs
Switch to the new console APIs enabled by setting MULTI_CONSOLE_API=1.
The crash console doesn't use this API, it uses internally the core
functions of the 16550 console.
`bl31_plat_runtime_setup` is no longer needed. When this platform port
was introduced, that function used to disable the console. It was needed
to override that behaviour. The new behaviour is to switch to the
runtime console. The console is registered for all scopes (boot, crash
and runtime) in `rpi3_console_init` so it is not needed to override the
default behaviour anymore.
Update documentation.
Change-Id: If2ee8f91044216183b7ef142e5c05ad6220ae92f
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
Antonio Nino Diaz [Thu, 22 Mar 2018 20:13:44 +0000 (20:13 +0000)]
drivers: ti: 16550: Implement console flush
Replace placeholder by actual implementation.
Change-Id: I0861b1ac5304b0d2d7c32d7d9a48bd985e258e92
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
davidcunado-arm [Thu, 22 Mar 2018 07:57:55 +0000 (07:57 +0000)]
Merge pull request #1299 from michpappas/tf-issues#561_qemu_support_MULTI_CONSOLE
qemu: Support MULTI_CONSOLE_API
davidcunado-arm [Thu, 22 Mar 2018 07:57:19 +0000 (07:57 +0000)]
Merge pull request #1307 from wangfeng-64/master
FVP: change the method for translating MPIDR values to a linear indices
davidcunado-arm [Thu, 22 Mar 2018 06:17:37 +0000 (06:17 +0000)]
Merge pull request #1311 from jonathanwright-ARM/jw/MISRA-EOF-usage
stdlib: remove comparison with EOF macro to comply with MISRA
Michalis Pappas [Sun, 4 Mar 2018 07:43:38 +0000 (15:43 +0800)]
[PATCH 2/2] qemu: Support MULTI_CONSOLE_API
Add support for the new MULTI_CONSOLE_API
Crash information is now displayed in both the runtime and crash consoles,
if a crash occurs after the runtime console has been enabled
Enable MULTI_CONSOLE_API by default on qemu builds
Fixes ARM-software/tf-issues#561
Signed-off-by: Michalis Pappas <mpappas@fastmail.fm>
davidcunado-arm [Wed, 21 Mar 2018 20:11:19 +0000 (20:11 +0000)]
Merge pull request #1293 from swarren/issue-551-followup
Don't make build results depend on dependency files
davidcunado-arm [Wed, 21 Mar 2018 19:20:43 +0000 (19:20 +0000)]
Merge pull request #1294 from iwishguo/master
Change PLATFORM_ROOT to TF_PLATFORM_ROOT
davidcunado-arm [Wed, 21 Mar 2018 19:18:29 +0000 (19:18 +0000)]
Merge pull request #1314 from antonio-nino-diaz-arm/an/smccc-header
Rename 'smcc' to 'smccc'
davidcunado-arm [Wed, 21 Mar 2018 19:15:40 +0000 (19:15 +0000)]
Merge pull request #1304 from antonio-nino-diaz-arm/an/fix-copyright
tegra: Use SPDX license identifier
Antonio Nino Diaz [Wed, 21 Mar 2018 10:49:27 +0000 (10:49 +0000)]
Rename 'smcc' to 'smccc'
When the source code says 'SMCC' it is talking about the SMC Calling
Convention. The correct acronym is SMCCC. This affects a few definitions
and file names.
Some files have been renamed (smcc.h, smcc_helpers.h and smcc_macros.S)
but the old files have been kept for compatibility, they include the
new ones with an ERROR_DEPRECATED guard.
Change-Id: I78f94052a502436fdd97ca32c0fe86bd58173f2f
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
danh-arm [Tue, 20 Mar 2018 17:01:39 +0000 (17:01 +0000)]
Fix SDEI link in readme.rst
danh-arm [Tue, 20 Mar 2018 16:50:44 +0000 (16:50 +0000)]
Merge pull request #1316 from davidcunado-arm/dc/version_update
Release v1.5: Update minor version number to 5
danh-arm [Tue, 20 Mar 2018 16:50:29 +0000 (16:50 +0000)]
Merge pull request #1322 from danh-arm/dh/v1.5-readme
Update readme.rst for v1.5 release
danh-arm [Tue, 20 Mar 2018 15:19:48 +0000 (15:19 +0000)]
Merge pull request #1326 from JoelHutton/jh/user_guide_updates
Update user guide
Joel Hutton [Mon, 19 Mar 2018 11:59:57 +0000 (11:59 +0000)]
Update user guide
Following Out of Box testing for v1.5 release:
Update host OS version to Ubuntu 16.04
Clarify configuration files needed for checkpatch
Add note on using Linaro precompiled binaries
Change-Id: Ia4ae61e01128ddff1a288972ddf84b79370fa52c
Signed-off-by: Joel Hutton <Joel.Hutton@Arm.com>
Dan Handley [Wed, 14 Mar 2018 13:01:39 +0000 (13:01 +0000)]
Update readme.rst for v1.5 release
Change-Id: Id9bd0c20a5af4f41269a51a675018dcc59e93f6c
Signed-off-by: Dan Handley <dan.handley@arm.com>
Wang Feng [Thu, 15 Mar 2018 07:32:41 +0000 (15:32 +0800)]
FVP: change the method for translating MPIDR values to a linear indices
x3 will be assigned by the folloing instructions.
So the first instruction is not needed any more.
old method:
(ClusterId * FVP_MAX_CPUS_PER_CLUSTER)
+ (CPUId * FVP_MAX_PE_PER_CPU)
+ ThreadId
it should be
(ClusterId * FVP_MAX_CPUS_PER_CLUSTER) * FVP_MAX_PE_PER_CPU
+ (CPUId * FVP_MAX_PE_PER_CPU)
+ ThreadId
which can be simplified as:
(ClusterId * FVP_MAX_CPUS_PER_CLUSTER + CPUId) * FVP_MAX_PE_PER_CPU + ThreadId
Signed-off-by: Wang Feng <feng_feng.wang@spreadtrum.com>
David Cunado [Mon, 12 Mar 2018 09:56:56 +0000 (09:56 +0000)]
Release v1.5: Update minor version number to 5
Change-Id: Ib215150272acc2ecec43f9b69624ebbbd5d7492d
Signed-off-by: David Cunado <david.cunado@arm.com>
davidcunado-arm [Thu, 15 Mar 2018 20:41:16 +0000 (20:41 +0000)]
Merge pull request #1312 from davidcunado-arm/dc/update_docs
Docs: Update various for v1.5 release
David Cunado [Mon, 12 Mar 2018 18:47:05 +0000 (18:47 +0000)]
Update model support in User Guide
The CI has been updated to run tests against the AEMv8-A RevC
model, FVP_Base_RevC-2xAEMv8A, which is available from the Fast
Model releases on Connected Community [1].
Additionally, the CI now also includes the Cortex-A55x4, Cortex-A75x4
and Cortex-A55x4-A75x4 Base models.
[1] https://developer.arm.com/products/system-design/fixed-virtual-platforms
Change-Id: I57806f3b2a8121211490a7aa0089dcae566d8635
Signed-off-by: David Cunado <david.cunado@arm.com>
David Cunado [Wed, 14 Mar 2018 17:57:31 +0000 (17:57 +0000)]
Update change-log.rst for v1.5
Updated change-log.rst with summary of changes since
release v1.4.
Change-Id: I56b5a30d13a5a7099942535cbaeff0e2a5c5804e
Signed-off-by: David Cunado <david.cunado@arm.com>
Dan Handley [Thu, 1 Mar 2018 18:44:00 +0000 (18:44 +0000)]
Update Arm TF references to TF-A
Update Arm Trusted Firmware references in the upstream documents to
Trusted Firmware-A (TF-A). This is for consistency with and
disambiguation from Trusted Firmware-M (TF-M).
Also update other Arm trademarks, e.g. ARM->Arm, ARMv8->Armv8-A.
Change-Id: I8bb0e18af29c6744eeea2dc6c08f2c10b20ede22
Signed-off-by: Dan Handley <dan.handley@arm.com>
Signed-off-by: David Cunado <david.cunado@arm.com>
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
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
Jonathan Wright [Tue, 6 Mar 2018 16:23:28 +0000 (16:23 +0000)]
stdlib: remove comparison with EOF macro to comply with MISRA
Ensures compliance with MISRA C-2012 Rule 22.7
Change-Id: Ifbe0926a24ba0dca18174e1aa87313a63bba50fb
Signed-off-by: Jonathan Wright <jonathan.wright@arm.com>
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>
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)
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>
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>
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>
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
Antonio Nino Diaz [Thu, 8 Mar 2018 10:57:43 +0000 (10:57 +0000)]
tegra: Use SPDX license identifier
Change-Id: I770b2db68c8d115d10067bb557e32b5e269c94a5
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
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
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>
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
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>
davidcunado-arm [Wed, 7 Mar 2018 10:43:56 +0000 (10:43 +0000)]
Merge pull request #1239 from arve-android/trusty-fixes
Trusty fixes
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
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>
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>
Arve Hjønnevåg [Mon, 5 Mar 2018 20:13:22 +0000 (12:13 -0800)]
trusty: Add boot parameter documentation
Change-Id: Ibfb75145e3a31ae2106eedfbe4a91c2e31bb9f2a
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>
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
Michalis Pappas [Sun, 4 Mar 2018 06:16:01 +0000 (14:16 +0800)]
[PATCH 1/2] qemu: Support MULTI_CONSOLE_API
Include missing plat_helpers.S into pl011_console.S, to build successfully
when MULTI_CONSOLE_API is enabled.
Signed-off-by: Michalis Pappas <mpappas@fastmail.fm>
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>
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
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
Heyi Guo [Thu, 1 Mar 2018 10:57:58 +0000 (18:57 +0800)]
Change PLATFORM_ROOT to TF_PLATFORM_ROOT
Since we use "?=" to set PLATFORM_ROOT, it is better to change the
name to be more special, or else it may be overridden by some
environment variables, such as in some CI build environments.
Signed-off-by: Heyi Guo <heyi.guo@linaro.org>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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
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
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
Arve Hjønnevåg [Fri, 2 Mar 2018 18:10:00 +0000 (10:10 -0800)]
trusty: Fix another reported misra violation
Change-Id: I822ccf5852dce4c01f98382cc393331f29e1e256
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>
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>
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
Stephen Warren [Thu, 22 Feb 2018 00:13:50 +0000 (17:13 -0700)]
Make all build results depend on all makefiles
This makes incremental builds work when the only change is to a definition
in a makefile. This version of the patch has been fixed to avoid depending
on the dependency makefiles that are generated at build time.
Fixes arm-software/tf-issues#551
Signed-off-by: Stephen Warren <swarren@nvidia.com>
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>
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>
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>
Arve Hjønnevåg [Thu, 1 Mar 2018 01:18:55 +0000 (17:18 -0800)]
trusty: Fix reported static check errors
Change-Id: I9f9a8a159b41be1c865a20801d03a1b2934c3cac
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"
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
davidcunado-arm [Wed, 28 Feb 2018 20:10:29 +0000 (20:10 +0000)]
Merge pull request #1290 from jeenu-arm/dynamiq
DynamIQ on FVP
davidcunado-arm [Wed, 28 Feb 2018 18:53:30 +0000 (18:53 +0000)]
Merge pull request #1282 from robertovargas-arm/misra-changes
Misra changes
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>
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>
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>
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>
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>
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>
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>
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>
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
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>
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>
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>
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>
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
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
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
davidcunado-arm [Tue, 27 Feb 2018 23:24:30 +0000 (23:24 +0000)]
Merge pull request #1283 from jeenu-arm/sdei-fixes
SDEI fixes
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
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
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>
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>
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
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>
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>