aboutsummaryrefslogtreecommitdiff
path: root/services
diff options
context:
space:
mode:
authorManish V Badarkhe <Manish.Badarkhe@arm.com>2020-07-14 14:43:12 +0100
committerManish V Badarkhe <Manish.Badarkhe@arm.com>2020-08-18 10:49:27 +0100
commit86ba585300aa784160bbcb8441ace3df8e06e1bd (patch)
tree466f8ec4804da549ce0baf9916165e3c9a654edb /services
parent3b8456bd1c9fd2303483f0675786e3fbda81a0af (diff)
downloadtrusted-firmware-a-86ba585300aa784160bbcb8441ace3df8e06e1bd.tar.gz
Add wrapper for AT instruction
In case of AT speculative workaround applied, page table walk is disabled for lower ELs (EL1 and EL0) in EL3. Hence added a wrapper function which temporarily enables page table walk to execute AT instruction for lower ELs and then disables page table walk. Execute AT instructions directly for lower ELs (EL1 and EL0) assuming page table walk is enabled always when AT speculative workaround is not applied. Change-Id: I4ad4c0bcbb761448af257e9f72ae979473c0dde8 Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
Diffstat (limited to 'services')
-rw-r--r--services/spd/tlkd/tlkd_common.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/services/spd/tlkd/tlkd_common.c b/services/spd/tlkd/tlkd_common.c
index dbe6c2e34b..820bd8a720 100644
--- a/services/spd/tlkd/tlkd_common.c
+++ b/services/spd/tlkd/tlkd_common.c
@@ -38,16 +38,16 @@ uint64_t tlkd_va_translate(uintptr_t va, int type)
int at = type & AT_MASK;
switch (at) {
case 0:
- ats12e1r(va);
+ AT(ats12e1r, va);
break;
case 1:
- ats12e1w(va);
+ AT(ats12e1w, va);
break;
case 2:
- ats12e0r(va);
+ AT(ats12e0r, va);
break;
case 3:
- ats12e0w(va);
+ AT(ats12e0w, va);
break;
default:
assert(0); /* Unreachable */