aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorInochi Amaoto <inochiama@outlook.com>2023-10-12 09:54:18 +0800
committerAnup Patel <anup@brainfault.org>2023-11-16 09:42:12 +0530
commit88ae718d361aa47b4f23537d4b00cfc93b4e739e (patch)
treeeae9aed7cd82762c671c9a4d8815a61375f51e02
parenta140a4e862ce04584dee208424714952609e5b2c (diff)
downloadopensbi-88ae718d361aa47b4f23537d4b00cfc93b4e739e.zip
opensbi-88ae718d361aa47b4f23537d4b00cfc93b4e739e.tar.gz
opensbi-88ae718d361aa47b4f23537d4b00cfc93b4e739e.tar.bz2
platform: generic: thead: improve tlb flush errata
Flushing the tlb entries can solve the thead tlb problem, but flushing it by address will miss something and lead to a exception in some rare cases, and this is more common for sg2042. To solve this problem, flush the tlb entries by asid in the custom trap handler to ensure it is refreshed. Signed-off-by: Inochi Amaoto <inochiama@outlook.com> Reviewed-by: Guo Ren <guoren@kernel.org> Reviewed-by: Anup Patel <anup@brainfault.org>
-rw-r--r--platform/generic/thead/thead_c9xx_tlb_trap_handler.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/platform/generic/thead/thead_c9xx_tlb_trap_handler.S b/platform/generic/thead/thead_c9xx_tlb_trap_handler.S
index 861c029..120daa7 100644
--- a/platform/generic/thead/thead_c9xx_tlb_trap_handler.S
+++ b/platform/generic/thead/thead_c9xx_tlb_trap_handler.S
@@ -9,5 +9,5 @@
.align 3
.globl _thead_tlb_flush_fixup_trap_handler
_thead_tlb_flush_fixup_trap_handler:
- sfence.vma t0, zero
+ sfence.vma zero, t0
j _trap_handler