diff options
author | danh-arm <dan.handley@arm.com> | 2014-07-28 14:24:52 +0100 |
---|---|---|
committer | danh-arm <dan.handley@arm.com> | 2014-07-28 14:24:52 +0100 |
commit | d9b1128b438748ce7ccfd33804321da2eed6fcfd (patch) | |
tree | 838d8022c6db8516721432ec43bd64f7614516a9 /lib | |
parent | 592dd7cbe658cc33ae2818c9ed543ac57e97f784 (diff) | |
parent | 539a7b383d52493a94df4f5da8f74aa102429fa0 (diff) |
Merge pull request #169 from achingupta/ag/tf-issues#198
Ag/tf issues#198
Diffstat (limited to 'lib')
-rw-r--r-- | lib/aarch64/xlat_tables.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/aarch64/xlat_tables.c b/lib/aarch64/xlat_tables.c index f1d658d5..d4941129 100644 --- a/lib/aarch64/xlat_tables.c +++ b/lib/aarch64/xlat_tables.c @@ -292,7 +292,7 @@ void init_xlat_tables(void) * exception level ******************************************************************************/ #define DEFINE_ENABLE_MMU_EL(_el, _tcr_extra, _tlbi_fct) \ - void enable_mmu_el##_el(void) \ + void enable_mmu_el##_el(uint32_t flags) \ { \ uint64_t mair, tcr, ttbr; \ uint32_t sctlr; \ @@ -330,7 +330,13 @@ void init_xlat_tables(void) \ sctlr = read_sctlr_el##_el(); \ sctlr |= SCTLR_WXN_BIT | SCTLR_M_BIT | SCTLR_I_BIT; \ - sctlr |= SCTLR_A_BIT | SCTLR_C_BIT; \ + sctlr |= SCTLR_A_BIT; \ + \ + if (flags & DISABLE_DCACHE) \ + sctlr &= ~SCTLR_C_BIT; \ + else \ + sctlr |= SCTLR_C_BIT; \ + \ write_sctlr_el##_el(sctlr); \ \ /* Ensure the MMU enable takes effect immediately */ \ |