summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorInochi Amaoto <[email protected]>2023-10-12 09:54:18 +0800
committerAnup Patel <[email protected]>2023-11-16 09:42:12 +0530
commit88ae718d361aa47b4f23537d4b00cfc93b4e739e (patch)
treeeae9aed7cd82762c671c9a4d8815a61375f51e02
parenta140a4e862ce04584dee208424714952609e5b2c (diff)
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 <[email protected]> Reviewed-by: Guo Ren <[email protected]> Reviewed-by: Anup Patel <[email protected]>
-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 861c0292..120daa73 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