arm-trusted-firmware/include/lib
Jeenu Viswambharan 0cc7aa8964 xlat v2: Split MMU setup and enable
At present, the function provided by the translation library to enable
MMU constructs appropriate values for translation library, and programs
them to the right registers. The construction of initial values,
however, is only required once as both the primary and secondaries
program the same values.

Additionally, the MMU-enabling function is written in C, which means
there's an active stack at the time of enabling MMU. On some systems,
like Arm DynamIQ, having active stack while enabling MMU during warm
boot might lead to coherency problems.

This patch addresses both the above problems by:

  - Splitting the MMU-enabling function into two: one that sets up
    values to be programmed into the registers, and another one that
    takes the pre-computed values and writes to the appropriate
    registers. With this, the primary effectively calls both functions
    to have the MMU enabled, but secondaries only need to call the
    latter.

  - Rewriting the function that enables MMU in assembly so that it
    doesn't use stack.

This patch fixes a bunch of MISRA issues on the way.

Change-Id: I0faca97263a970ffe765f0e731a1417e43fbfc45
Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
2018-06-27 11:31:30 +01:00
..
aarch32 xlat v2: Split MMU setup and enable 2018-06-27 11:31:30 +01:00
aarch64 BL31: Introduce jump primitives 2018-06-21 16:15:23 +01:00
cpus Implement dynamic mitigation for CVE-2018-3639 on Cortex-A76 2018-06-08 11:46:31 +01:00
el3_runtime SDEI: Ensure SDEI handler executes with CVE-2018-3639 mitigation enabled 2018-06-08 11:46:31 +01:00
extensions RAS: Allow individual interrupt registration 2018-05-04 08:33:17 +01:00
libfdt libfdt: Replace v1.4.1 by v1.4.2 2017-01-16 17:26:04 +00:00
pmf lib: fix switch statements to comply with MISRA rules 2018-03-26 12:43:05 +01:00
psci Update PSCI version to 1.1 2017-10-13 12:39:08 +01:00
stdlib types: use int-ll64 for both aarch32 and aarch64 2018-04-27 18:35:02 +09:00
xlat_tables xlat v2: Split MMU setup and enable 2018-06-27 11:31:30 +01:00
zlib zlib: add gunzip() support 2018-02-02 00:18:54 +09:00
bakery_lock.h Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
cassert.h Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
coreboot.h Add platform-independent coreboot support library 2018-01-19 15:21:12 -08:00
mmio.h Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
optee_utils.h Add Trusted OS extra image parsing support for ARM standard platforms 2017-08-09 18:06:05 +08:00
runtime_instr.h Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
semihosting.h Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
smcc.h Rename 'smcc' to 'smccc' 2018-03-21 10:49:27 +00:00
smccc.h Make TF UUID RFC 4122 compliant 2018-06-14 14:41:00 +01:00
smccc_v1.h Add support for the SMC Calling Convention 2.0 2018-04-23 15:43:29 +01:00
smccc_v2.h Add support for the SMC Calling Convention 2.0 2018-04-23 15:43:29 +01:00
spinlock.h Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
utils.h ARM platforms: Demonstrate mem_protect from el3_runtime 2018-05-01 15:25:25 +01:00
utils_def.h xlat v2: Split MMU setup and enable 2018-06-27 11:31:30 +01:00