Skip to content
Snippets Groups Projects
Commit afb75ee8 authored by Patrick Delaunay's avatar Patrick Delaunay
Browse files

arm: cp15: update DACR value to activate access control

Update the initial value of Domain Access Control Register (DACR)
and set by default the access permission to client (DACR_Dn_CLIENT = 1U)
for each of the 16 domains and no more to all-supervisor
(DACR_Dn_MANAGER = 3U).

This patch allows to activate the domain checking in MMU against the
permission bits in the translation tables and avoids prefetching issue
on ARMv7 [1].

Today it was already done for OMAP2 architecture
./arch/arm/mach-omap2/omap-cache.c::arm_init_domains
introduced by commit de63ac27 ("ARM: mmu: Set domain permissions
to client access") which fixes lot of speculative prefetch aborts seen
on OMAP5 secure devices.

[1] https://developer.arm.com/documentation/ddi0406/b/System-Level-Architecture/Virtual-Memory-System-Architecture--VMSA-/Memory-access-control/The-Execute-Never--XN--attribute-and-instruction-prefetching



Signed-off-by: default avatarPatrick Delaunay <patrick.delaunay@st.com>
Reported-by: default avatarArd Biesheuvel <ardb@kernel.org>
Signed-off-by: default avatarPatrick Delaunay <patrick.delaunay@foss.st.com>
Change-Id: I7ab5a1fc95ca9fae01a4ec194a67374ba6872638
Reviewed-on: https://gerrit.st.com/c/mpu/oe/st/u-boot/+/201218


Reviewed-by: default avatarCITOOLS <MDG-smet-aci-reviews@list.st.com>
Reviewed-by: default avatarCIBUILD <MDG-smet-aci-builds@list.st.com>
parent d2db4685
No related branches found
No related tags found
No related merge requests found
......@@ -209,9 +209,12 @@ static inline void mmu_setup(void)
asm volatile("mcr p15, 0, %0, c2, c0, 0"
: : "r" (gd->arch.tlb_addr) : "memory");
#endif
/* Set the access control to all-supervisor */
/*
* initial value of Domain Access Control Register (DACR)
* Set the access control to client (1U) for each of the 16 domains
*/
asm volatile("mcr p15, 0, %0, c3, c0, 0"
: : "r" (~0));
: : "r" (0x55555555));
arm_init_domains();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment